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