Bob Violino
無論是作為數(shù)字化轉(zhuǎn)型的一部分,還是為了避免為應(yīng)對不斷增長的需求而興建昂貴的新基礎(chǔ)設(shè)施,如今各行各業(yè)的企業(yè)都在嘗試著將數(shù)據(jù)和工作負載遷移到云端。對于許多企業(yè)而言,此舉的關(guān)鍵是容器和Kubernetes,尤其是當涉及多個云服務(wù)時。
容器是獨立的軟件包,其將應(yīng)用程序的所有代碼和依賴項捆綁在一起,以確保應(yīng)用程序無論在什么計算環(huán)境中都能夠可靠地運行。正因為如此,容器可以很方便地將應(yīng)用程序從開發(fā)人員的筆記本電腦中遷移到測試環(huán)境當中,或是將應(yīng)用程序從測試環(huán)境遷移到生產(chǎn)環(huán)境,抑或是將應(yīng)用程序從數(shù)據(jù)中心的物理機上遷移到私有云或公有云中的虛擬機上。
盡管容器簡化了在環(huán)境之間轉(zhuǎn)移工作負載的工作,但是它們?nèi)匀恍枰S護,而這正是Kubernetes的優(yōu)勢所在。Kubernetes是一個開源的容器編排系統(tǒng),旨在自動執(zhí)行容器化應(yīng)用程序的部署、擴展和管理。雖然Kubernetes最初是由谷歌開發(fā)的,但是其目前由云原生計算基金會(Cloud Native Computing Foundation)負責維護。
許多企業(yè)發(fā)現(xiàn),在多云或混合云環(huán)境中,將容器和Kubernetes組合使用可以實現(xiàn)工作負載的可移植性。以下是這些技術(shù)的三個真實案例。
在線旅行服務(wù)提供商Expedia集團從2013年開始使用微服務(wù)架構(gòu)和AWS公有云服務(wù)。2015年,該公司開始通過亞馬遜EC2容器服務(wù)(ECS)部署容器以運行微服務(wù)。
技術(shù)部署的主要業(yè)務(wù)驅(qū)動因素和技術(shù)驅(qū)動因素是,應(yīng)用程序在多個環(huán)境中具有更高的可移植性,以及新產(chǎn)品和新服務(wù)具有更快的上市速度。
Vrbo為Expedia集團旗下為旅行者提供住宿服務(wù)的子公司。該公司的杰出工程師Kuldeep Chowhan說:“得益于容器能夠在幾秒鐘內(nèi)啟動起來,我們向客戶交付新功能的時間大為減少,產(chǎn)品上市速度也得到了極大的提升?!?/p>
Chowhan說,容器在工作環(huán)境之間的可移植性以及容器的部署速度加快了公司向微服務(wù)邁進的步伐。如今,由于大量應(yīng)用程序正運行在橫跨多個AWS云區(qū)域的ECS上,這使得Expedia能夠為旅行者和合作伙伴提供更好的服務(wù)。
2015年,Vrbo開始使用Apache Mesos(一種用于管理計算機集群的開源平臺)在本地數(shù)據(jù)中心和AWS云環(huán)境中運行容器工作負載。Chowhan說,這使得Vrbo開發(fā)人員能夠在兩種環(huán)境中運行相同的工作負載,從而加快了Expedia從本地數(shù)據(jù)中心向云端的遷移速度。
近年來,隨著Kubernetes技術(shù)的普及,Expedia還熟練掌握了Kubernetes。Chowhan表示,該集團旗下的Hotels.com部門目前在AWS云中的Kubernetes上運行了數(shù)百個應(yīng)用程序,為客戶提供酒店預(yù)訂等服務(wù)。
在亞馬遜于2019年推出了Elastic Kubernetes服務(wù)(EKS)之后,Expedia集團的許多團隊,如數(shù)據(jù)科學、在線體驗、流媒體等團隊開始利用該服務(wù)運行容器工作負載。Chowhan說:“從長遠來看,這是一個大趨勢。Expedia集團正計劃朝著容器運行時和編排需求這個方向前進?!?/p>
向微服務(wù)架構(gòu)和容器的轉(zhuǎn)型為Expedia集團在快速啟動新服務(wù)方面帶來了明顯優(yōu)勢。過去開發(fā)新應(yīng)用程序需要花費數(shù)月的時間,如今該集團每天都可以推出新的功能。
Chowhan說:“通過現(xiàn)代化應(yīng)用程序架構(gòu)和DevOps實踐,我們看到交付給客戶的功能增加了一個數(shù)量級。在過去三年中,Vrbo品牌的發(fā)布速度提升了12倍?!?/p>
得益于容器的可移植性,Expedia應(yīng)用程序可以在多個AWS區(qū)域中以分布式方式運行,以提供高可用性,從而使全球客戶都可以在不中斷的情況下訪問其旅行站點。
容器還可以實現(xiàn)“有目的的擴展”。Chowhan說:“當我們使用單體應(yīng)用程序時,我們不得不擴展整個基礎(chǔ)設(shè)施以便為流量提供支持。借助容器和微服務(wù),我們現(xiàn)在可以更加智能地擴展站點中具有高客戶需求的特定部分,從而節(jié)省基礎(chǔ)設(shè)施成本?!?/p>
容器仍然需要一定程度的基礎(chǔ)設(shè)施管理。Chowhan說:“要部署和運行容器,你需要一個容器運行時和編排平臺。與任何軟件解決方案一樣,當有更新發(fā)布后,這些更新需要大規(guī)模地部署到正在運行容器平臺的現(xiàn)有服務(wù)器群上?!?/p>
從源代碼到運行時,圍繞容器和微服務(wù)的開發(fā)一直在不斷發(fā)展。Chowhan說:“我們必須進行重組,以適應(yīng)橫跨整個旅行平臺的新生態(tài)系統(tǒng)。同時我們還要對工程技術(shù)人員展開培訓,讓他們能夠適應(yīng)橫跨不同容器的生態(tài)系統(tǒng)的發(fā)展?!?h3>Primerica:確保高質(zhì)量的現(xiàn)代化代碼
金融服務(wù)與保險公司Primerica創(chuàng)建了一個Kubernetes環(huán)境,以便在IBM基于Nutanix硬件的私有云產(chǎn)品中擴展應(yīng)用程序。Docker容器可幫助Primerica在不同環(huán)境之間實現(xiàn)應(yīng)用程序的一致性。
該公司首席技術(shù)官兼負責應(yīng)用開發(fā)與交付執(zhí)行的副總裁Barry Pellas表示:“這是我們從傳統(tǒng)技術(shù)堆棧向現(xiàn)代混合云遷移的關(guān)鍵戰(zhàn)略中的一部分。這種環(huán)境使得我們能夠繼續(xù)以新的現(xiàn)代化方式看待我們在幾十年來開發(fā)的應(yīng)用程序的價值。由于能夠更容易向業(yè)務(wù)應(yīng)用程序交付新功能,這使得它們在我們的API(應(yīng)用程序編程接口)和微服務(wù)策略中也發(fā)揮了關(guān)鍵作用?!?/p>
對容器和Kubernetes的綜合使用使Primerica不僅可以托管應(yīng)用程序,還可以監(jiān)視應(yīng)用程序,并在容器發(fā)生問題時快速恢復(fù)。
Pellas說:“我們提供了端到端的基礎(chǔ)設(shè)施即代碼,這使得我們能夠始終如一地構(gòu)建可預(yù)測的環(huán)境,并消除了可能的人為錯誤。我們的持續(xù)集成和交付功能可確保產(chǎn)品團隊始終可以隨時獲得最新的修改。同時他們也相信,對環(huán)境和應(yīng)用程序的驗證已經(jīng)成為了部署流程的一部分?!?/p>
容器和Kubernetes使用的主要推動力是它們可以為團隊提供機會,能夠以更快的速度和更高的質(zhì)量交付應(yīng)用程序。此外,它們還提供了一個安全穩(wěn)定的工作環(huán)境和在高使用時間下的可擴展性。
Pellas說:“我們還希望我們的各種環(huán)境之間具有可預(yù)測性和一致性,以幫助調(diào)試和解決問題?!?/p>
雖然Primerica只是在最近才開始使用容器和Kubernetes,但是他們看到團隊的生產(chǎn)力得到了提高,為用戶開發(fā)的新功能可以被更敏捷地交付。Pellas說:“通過在開發(fā)流程中盡早發(fā)現(xiàn)問題,我們能夠提供更安全的和可預(yù)測的應(yīng)用程序。隨著將越來越多的應(yīng)用程序遷移到平臺上,我們希望這一舉措能夠提高應(yīng)用程序的質(zhì)量,并在整個產(chǎn)品團隊中獲得一致性的開發(fā)體驗?!?/p>
與任何技術(shù)一樣,希望部署容器和Kubernetes的公司需要學習相關(guān)的技能。Pellas說:“讓團隊掌握可在環(huán)境中進行開發(fā)的正確技能具有挑戰(zhàn)性?!?/p>
Primerica通過為其產(chǎn)品團隊提供相關(guān)培訓,為業(yè)務(wù)領(lǐng)導(dǎo)者提供最佳實踐以幫助將項目推向市場,從而解決這些挑戰(zhàn)。
克萊姆森大學遺傳與生物化學系的Feltus實驗室是一個由遺傳學家、計算機科學家、計算機工程師和生物工程師組成的跨學科團隊。他們將軟件工程和計算生物學技術(shù)融合在了一起,從而在人類和植物生物系統(tǒng)中獲得了有用的分子發(fā)現(xiàn)。
該系的教授Alex Feltus說,實驗室使用生物信息學、統(tǒng)計和數(shù)據(jù)科學方法來發(fā)現(xiàn)新的模式?!拔覀兎治龅纳飳W數(shù)據(jù)集處于TB級到PB級之間,為此我們優(yōu)化了數(shù)據(jù)密集型計算工作流程,使得數(shù)據(jù)適合各種計算平臺,其中包括多家商業(yè)云提供商?!?/p>
近年來,該實驗室將開發(fā)工作重點放在了在Kubernetes系統(tǒng)上運行的工作流上。 Feltus說:“我們相信,Kubernetes將成為數(shù)據(jù)密集型計算的通用標準平臺,這使得我們能夠?qū)④浖こ坦ぷ骷性谝环N架構(gòu)上?!?/p>
目前生物數(shù)據(jù)庫正在以幾何方式增長,對這些數(shù)據(jù)集的數(shù)據(jù)挖掘可以幫助我們從生物學的角度深刻洞察我們面臨的醫(yī)療和糧食安全挑戰(zhàn)。Feltus說:“即使是小型的生物學實驗室也一直需要大量的計算資源。研究人員提出的生物學問題很快就要達到千萬億次級,這需要訪問目前在商業(yè)云中可能使用的大型計算機。Kubernetes集群是進行大規(guī)模計算的絕佳平臺?!?/p>
Feltus說:“在遷移到云端之前,生物學研究人員需要民主化且免信用的云沙箱,在其中可以大規(guī)模設(shè)計和測試工作流。這些沙箱很關(guān)鍵,因為90%的科學實驗都會進入死胡同,并且云信貸預(yù)算可能會在有研究結(jié)果之前就被耗完。”
目前Feltus實驗室還正在與其他許多研究小組合作,嘗試著將內(nèi)部部署和云服務(wù)整合為一個具有可擴展性的資源,Kubernetes和容器將在里面發(fā)揮巨大作用。Feltus說:“ Kubernetes和容器是計算生物學工作流工程的首選平臺。這些系統(tǒng)使得我的學生能夠繞開變幻莫測的HPC(高性能計算)環(huán)境配置?!?/p>
目前該實驗室已部署了思科容器平臺,該平臺可幫助團隊在一個平臺上管理來自不同云服務(wù)提供商的多個集群。
一旦實驗室在Kubernetes集群中完成了對工作流的測試,那么他們就可以在多個商業(yè)云服務(wù)中運行容器化的工作流。Feltus說:“這簡化了最終用戶培訓,讓用戶能夠?qū)W⒂诳茖W研究?!?/p>
本文作者Bob Violino為Computerworld、CIO、CSO、InfoWorld和Network World等網(wǎng)站的特約撰稿人。
原文網(wǎng)址
https://www.cio.com/article/3530277/containers-and-kubernetes-3-transformational-success-stories.html