玩轉(zhuǎn)容器與Kubernetes,這三家企業(yè)有什么「獨(dú)家秘訣」?
如今,各行各業(yè)都在加快數(shù)字化轉(zhuǎn)型的腳步,將數(shù)據(jù)與工作負(fù)載遷移至云端,這樣做,一是加快交付和創(chuàng)新速度,二是避免業(yè)務(wù)需求不斷增長時(shí),還要持續(xù)采購昂貴的新基礎(chǔ)設(shè)施組件。
在這個(gè)過程中,最為關(guān)鍵的因素當(dāng)然離不開容器與Kubernetes,它們?cè)谏婕岸喾N云服務(wù)時(shí)顯得尤其重要。
容器是一種獨(dú)立的軟件包,能夠?qū)?yīng)用程序的全部代碼及依賴項(xiàng)捆綁起來,確保應(yīng)用程序能夠在任何計(jì)算環(huán)境下都將可靠地運(yùn)行。以此為基礎(chǔ),容器促進(jìn)了應(yīng)用程序從開發(fā)者筆記本電腦到測(cè)試環(huán)境、從測(cè)試環(huán)境到生產(chǎn)環(huán)境,或者是從數(shù)據(jù)中心內(nèi)實(shí)體機(jī)到私有或公有云端虛擬機(jī)的順暢遷移。
但需要強(qiáng)調(diào)的是,雖然容器本身簡(jiǎn)化了工作負(fù)載在不同環(huán)境之間的遷移過程,但其同時(shí)也是一項(xiàng)需要維護(hù)的技術(shù)方案Kubernetes的意義正在于此——作為一套開源容器編排系統(tǒng),Kubernetes負(fù)責(zé)自動(dòng)執(zhí)行容器化應(yīng)用程序的部署、擴(kuò)展與管理。Kubernetes最初由谷歌公司開發(fā),目前由云原生計(jì)算基金會(huì)負(fù)責(zé)維護(hù)。
企業(yè)逐漸意識(shí)到,在多云或混合云環(huán)境下,容器與Kubernetes已經(jīng)成為保障工作負(fù)載可移植性的強(qiáng)大組合。下面,我們一起來看三個(gè)成功運(yùn)用容器與Kubernetes的案例。
Expedia Group: 增強(qiáng)在線旅行體驗(yàn)
Expedia Group(中文名“億客行”),是全球最大的旅游平臺(tái)之一,憑借強(qiáng)大的技術(shù)優(yōu)勢(shì),用戶能夠一百多萬個(gè)機(jī)票、酒店套餐等優(yōu)惠中搜索,并獲得最佳體驗(yàn)。Expedia 從2013年,就開始使用微服務(wù)架構(gòu)與Amazon Web Services (AWS)公有云服務(wù)。到2015年,Expedia開始通過Amazon EC2 Container Service (ECS)部署容器來運(yùn)行微服務(wù)應(yīng)用,借此在AWS云環(huán)境中提升應(yīng)用程序靈活性。
基于此,Expedia 能夠讓跨多環(huán)境的應(yīng)用程序擁有更好的可移植性,同時(shí)加快新產(chǎn)品及服務(wù)的上市速度。來自Expedia Group旗下負(fù)責(zé)為旅客提供住宿服務(wù)的Vrbo部門的工程師Kuldeep Chowhan表示,“容器能夠在幾秒鐘之內(nèi)啟動(dòng)并運(yùn)行,這大大縮短了我們向客戶交付新功能的時(shí)間周期,也就相當(dāng)于加快了產(chǎn)品的上市速度。”
Chowhan指出,容器在不同工作環(huán)境之間的可移植性與出色的容器部署速度,加快了企業(yè)向微服務(wù)架構(gòu)的邁進(jìn)步伐。他強(qiáng)調(diào),目前已經(jīng)有成千上萬個(gè)應(yīng)用程序運(yùn)行在多個(gè)AWS云區(qū)域中的ECS之上,這也使得Expedia得以為更多用戶及合作伙伴提供更強(qiáng)大的服務(wù)。
2015年,Vrbo開始采用Apache Mesos——一套用于管理計(jì)算機(jī)集群的開源平臺(tái),借此在本地?cái)?shù)據(jù)中心及AWS云環(huán)境當(dāng)中運(yùn)行容器化工作負(fù)載。Chowhan表示,這使得Vrbo的開發(fā)人員能夠在兩種環(huán)境中運(yùn)行相同的工作負(fù)載,借此加快從Expedia本地?cái)?shù)據(jù)中心到云端的遷移速度。
隨著近年來容器技術(shù)的普及,Expedia還開始著手使用Kubernetes。Chowhan指出,該公司的Hotels.com部門目前在AWS云端的Kubernetes上運(yùn)行著數(shù)百種應(yīng)用程序,用以為客戶提供酒店預(yù)訂等服務(wù)。而在Amazon 方面于2019年推出其Elastic Kubernetes Service(EKS)之后,Expedia Group下的數(shù)據(jù)科學(xué)、在線體驗(yàn)、流媒體等多個(gè)團(tuán)隊(duì)快速跟進(jìn),借此運(yùn)行自己的容器化工作負(fù)載。
Chowhan提到,“從長遠(yuǎn)來看,Expedia Group正朝著容器運(yùn)行時(shí)及編排需求邁出堅(jiān)實(shí)的前進(jìn)腳步。”Expedia Group向著微服務(wù)架構(gòu)及容器技術(shù)的轉(zhuǎn)變,并加快了交付創(chuàng)新速度。以往,新應(yīng)用程序的開發(fā)往往需要幾個(gè)月時(shí)間,但現(xiàn)在他們每天都能推出多項(xiàng)新功能。
通過對(duì)現(xiàn)代化應(yīng)用程序架構(gòu)及DevOps實(shí)踐的投資與嘗試,Expedia Group 將交付給客戶的功能總量提升了一個(gè)數(shù)量級(jí)。過去三年以來,Vrbo品牌的功能發(fā)布速度增長了12倍。憑借著容器強(qiáng)大的可移植性,Expedia應(yīng)用程序得以在多個(gè)AWS區(qū)域內(nèi)分布式運(yùn)行,在增強(qiáng)可用性的同時(shí),確?蛻臬@得最佳體驗(yàn)。
容器還能夠?qū)崿F(xiàn)“針對(duì)性擴(kuò)展”。Chowhan解釋道,“在當(dāng)初使用單體式應(yīng)用程序時(shí),我們必須得擴(kuò)展整個(gè)基礎(chǔ)設(shè)施才能支持不斷增長的流量。但借助容器與微服務(wù)架構(gòu),我們現(xiàn)在能夠更智能地?cái)U(kuò)展站點(diǎn)中客戶需求所指向的特定部分,借此節(jié)約基礎(chǔ)設(shè)施成本。”
當(dāng)然,容器的正常運(yùn)行仍需要一定程度的基礎(chǔ)設(shè)施管理。Chowhan表示,為了有效部署并運(yùn)行容器,他們需要一套容器運(yùn)行時(shí)與編排平臺(tái)。與其他軟件解決方案一樣,他們掌握著大量已發(fā)布及尚未發(fā)布的更新,而且需要將這些更新新部署到運(yùn)行容器平臺(tái)的現(xiàn)有服務(wù)器集群當(dāng)中。
從源代碼到運(yùn)行時(shí),圍繞容器及微服務(wù)的開發(fā)流程一直在不斷發(fā)展。他強(qiáng)調(diào),“我們需要進(jìn)行結(jié)構(gòu)重組,來適應(yīng)整個(gè)旅游行業(yè)的全新生態(tài)系統(tǒng),并通過不斷發(fā)展的跨容器生態(tài)系統(tǒng),對(duì)我們的IT工程師們進(jìn)行技能培訓(xùn)。”
Primerica: 確保使用高質(zhì)量、現(xiàn)代化代碼
金融服務(wù)與保險(xiǎn)公司Primerica,如今已經(jīng)建立起一套Kubernetes環(huán)境,立足Nutanix硬件擴(kuò)展由IBM提供的私有云解決方案。與此同時(shí),來自Docker的容器方案則幫助Primerica在不同環(huán)境之間實(shí)現(xiàn)強(qiáng)大的應(yīng)用程序一致性。
Primerica的首席技術(shù)官兼應(yīng)用程序開發(fā)與交付執(zhí)行副總裁Barry Pellas表示,“這是我們從傳統(tǒng)技術(shù)棧向現(xiàn)代混合云遷移的關(guān)鍵戰(zhàn)略步驟。”這套環(huán)境幫助Primerica不斷以新的、現(xiàn)代化的方式從過去幾十年中開發(fā)而成的應(yīng)用程序中獲取價(jià)值,并促進(jìn)企業(yè)向業(yè)務(wù)應(yīng)用程序中交付更多新功能,并在API(應(yīng)用程序編程接口)與微服務(wù)策略中發(fā)揮著關(guān)鍵作用。
容器與Kubernetes這一強(qiáng)大組合,不僅使Primerica得以輕松托管應(yīng)用程序,還能夠監(jiān)控應(yīng)用程序并在容器中出現(xiàn)問題時(shí)快速加以恢復(fù)。Pellas強(qiáng)調(diào)稱,“我們提供端到端基礎(chǔ)設(shè)施即代碼,因此能夠以統(tǒng)一方式構(gòu)建起可預(yù)測(cè)的環(huán)境,并由此消除了發(fā)生人為錯(cuò)誤的可能性。我們的持續(xù)集成與交付功能將確保產(chǎn)品團(tuán)隊(duì)隨時(shí)獲得最新變更,并保證在部署的同時(shí)對(duì)環(huán)境及應(yīng)用程序做出全面驗(yàn)證。”
Primerica使用容器與Kubernetes的主要驅(qū)動(dòng)力,在于幫助團(tuán)隊(duì)以更快的速度與更高的質(zhì)量交付應(yīng)用程序。二者還能提供一套更安全、更穩(wěn)定的環(huán)境,得以在高使用時(shí)長之下提供良好的穩(wěn)定性與可擴(kuò)展性。Pellas指出,“我們還希望能夠在各種環(huán)境之間建立起可預(yù)測(cè)性與一致性,借此幫助調(diào)試并解決問題。”
雖然Primerica的容器與Kubernetes使用之旅才剛剛起步,但他們已經(jīng)深切感受到由此帶來的團(tuán)隊(duì)生產(chǎn)率提升,及其在為用戶提供增量式、敏捷新功能方面表現(xiàn)出的強(qiáng)大能力。
Primerica的IT團(tuán)隊(duì)借助容器與Kubernetes技術(shù),在開發(fā)過程中能夠盡早發(fā)現(xiàn)問題,借此提供更安全、運(yùn)行效果更具可預(yù)測(cè)性的應(yīng)用程序。隨著Primerica將更多應(yīng)用程序遷移至容器平臺(tái)之上,能夠?qū)崿F(xiàn)應(yīng)用程序質(zhì)量持續(xù)提升,并在整個(gè)產(chǎn)品團(tuán)隊(duì)中建立起統(tǒng)一的開發(fā)體驗(yàn)。
Pellas總結(jié)道,與其他技術(shù)一樣,容器與Kubernetes確實(shí)會(huì)給企業(yè)帶來相當(dāng)困難的「學(xué)習(xí)曲線 」“必須承認(rèn),正確培養(yǎng)起掌握正確技能的團(tuán)隊(duì)絕非易事。”Primerica公司正著力為其產(chǎn)品團(tuán)隊(duì)提供教育與最佳實(shí)踐指導(dǎo),幫助他們更順暢地發(fā)布更多高質(zhì)量產(chǎn)出。
克萊姆森大學(xué):高效運(yùn)用海量計(jì)算資源
克萊姆森大學(xué)遺傳與生物化學(xué)系的Feltus實(shí)驗(yàn)室,是一支由遺傳學(xué)家、計(jì)算機(jī)科學(xué)家、計(jì)算機(jī)工程師以及生物工程師組成的跨學(xué)科團(tuán)隊(duì)。通過將軟件工程與計(jì)算生物學(xué)技術(shù)相融合,他們努力在人與植物生物系統(tǒng)內(nèi)做出更多重要的分子級(jí)科研成果。
Alex Feltus教授表示,該實(shí)驗(yàn)室使用生物信息學(xué)、統(tǒng)計(jì)與數(shù)據(jù)科學(xué)方法發(fā)現(xiàn)各種模式。“我們分析的生物學(xué)數(shù)據(jù)集一般在TB甚至PB級(jí)別,我們?cè)O(shè)計(jì)出經(jīng)過優(yōu)化的數(shù)據(jù)密集型計(jì)算工作流,確保數(shù)據(jù)能夠在各類計(jì)算平臺(tái)、包括多家商業(yè)云服務(wù)商提供的平臺(tái)上得到高效處理。”
近年來,F(xiàn)eltus實(shí)驗(yàn)室將工作重點(diǎn)放在了Kubernetes系統(tǒng)上的工作流當(dāng)中。Feltus表示,“我們堅(jiān)信,Kubernetes必將成為數(shù)據(jù)密集型計(jì)算的通用標(biāo)準(zhǔn)平臺(tái),幫助我們將軟件工程工作集中在統(tǒng)一的架構(gòu)當(dāng)中。”
如今,生物數(shù)據(jù)庫的體量正以幾何級(jí)數(shù)增長,而對(duì)數(shù)據(jù)集的深入挖掘有助于解決醫(yī)療及食品安全等重大挑戰(zhàn)。他提到,“即使是小型生物學(xué)實(shí)驗(yàn)室,也長期需要大量計(jì)算資源。研究人員很快就需要依賴千萬億次算力來解決各類生物學(xué)問題。好消息是,如今的商業(yè)云已經(jīng)能夠通過大型計(jì)算機(jī)等設(shè)備提供這種強(qiáng)大的算力,而Kubernetes集群已經(jīng)成為執(zhí)行大規(guī)模計(jì)算的絕佳平臺(tái)。”
Feltus強(qiáng)調(diào),在遷移至云端之前,“生物學(xué)研究人員需要注意使用更大眾化的、資源控制能力更強(qiáng)的云沙箱環(huán)境,確保只在這類環(huán)境下運(yùn)行大規(guī)模設(shè)計(jì)與測(cè)試工作流。這是因?yàn)?0%的科學(xué)實(shí)驗(yàn)都不可能成功,如果不加控制,研究人員很可能在發(fā)現(xiàn)方向有誤之前就耗盡自己的資源預(yù)算。”
Feltus實(shí)驗(yàn)室還與其他多支研究小組開展合作,嘗試將內(nèi)部部署與云服務(wù)整合為統(tǒng)一的可擴(kuò)展資源。在這方面,Kubernetes與容器技術(shù)同樣發(fā)揮著巨大的作用。Kubernetes與容器已經(jīng)成為計(jì)算生物學(xué)工作流的首選工程平臺(tái),這些系統(tǒng)能夠幫助回避高性能計(jì)算環(huán)境中所固有的大量配置任務(wù)。
該實(shí)驗(yàn)室還部署了思科容器平臺(tái),用以幫助團(tuán)隊(duì)在單一平臺(tái)上管理來自多家云服務(wù)商提供的多套集群。實(shí)驗(yàn)室方面在Kubernetes集群上完成工作流測(cè)試之后,即可在多種商業(yè)云環(huán)境上運(yùn)行容器化工作流。Feltus總結(jié)道,“這極大簡(jiǎn)化了最終用戶的培訓(xùn)需求,確保研究人員能夠?qū)W⒂诳茖W(xué)本身。”