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






















