各行各業的公司都在推動將數據和工作負載轉移到云上,無論是作為數字化轉型的一部分,還是為了避免為應對日益增長的需求而建造的成本高昂的新基礎設施。
對于許多組織來說,這一轉變的關鍵是容器和Kubernetes--尤其是當涉及到多個云服務時的時候。
容器是獨立的軟件包,它能夠將應用程序的所有代碼和依賴項捆綁在一起,以確保無論其計算環境如何,應用程序都能可靠地運行。因此,容器促進了應用程序從例如開發人員的筆記本電腦到測試環境的移動,從測試環境移動到生產環境,或者從數據中心的物理機器移動到私有云或公共云中的虛擬機。
但是,盡管容器簡化了環境之間的工作負載轉移,但它們仍然需要被維護。這就是Kubernetes的用武之地。Kubernetes是一個開源的容器編排系統,旨在自動化容器化應用程序的部署、擴展和管理。Kubernetes最初是由谷歌開發的,目前由云原生計算基金會進行維護。
人們發現了容器和Kubernetes是在多云或混合云環境中實現工作負載可移植性的一個強大組合。而下面則是三個實際應用的技術示例。
Expedia集團:提升在線旅游體驗
在線旅游服務提供商Expedia集團于2013年開始使用Amazon Web services(AWS)的微服務架構和公共云服務。但該公司是在2015年通過Amazon EC2 Container Service (ECS)來部署容器,以運行這些微服務,并能夠在AWS云環境中運行應用程序時,才加快了它的使用速度。
部署這些技術的主要業務和技術驅動因素包括了跨多個環境的應用程序的更大可移植性,以及新產品和服務推向市場的更快速度。
“隨著容器在幾秒鐘內就能開始運轉,我們向客戶交付新功能所需的時間大大縮短了,因而能夠加快產品推向市場的速度,”Expedia Group旗下的Vrbo公司的杰出工程師Kuldeep Chowhan說,該公司正在為旅客提供住宿服務。
容器在工作環境之間的可移植性和容器的部署速度加快了公司向微服務的轉變,Chowhan說。如今,有數以千計的應用程序在多個AWS云區域的ECS上運行,這使得Expedia能夠為旅行者和合作伙伴提供更強大的服務,他說。
2015年,Vrbo采用了Apache Mesos,這是一個管理計算機集群的開源平臺,可以跨本地數據中心和AWS云環境來運行容器的工作負載。這使得Vrbo的開發人員能夠在兩種環境中運行相同的工作負載,從而加速了從Expedia的內部數據中心到云的遷移,Chowhan說。
Expedia還利用了Kubernetes的強大功能,因為該技術在近年來越來越受到歡迎了。Chowhan表示,該公司旗下的Hotels.com目前在AWS云上的Kubernetes上運行著數百個應用程序,幫助為客戶提供酒店預訂等服務。
在亞馬遜于2019年推出彈性Kubernetes服務(EKS)之后,Expedia集團的許多團隊,包括數據科學、在線體驗、流媒體,以及其他的一些團隊,也開始利用它來運行容器工作負載了。
“長期來看,Expedia正計劃朝著滿足容器運行時和編排需求的方向發展,”Chowhan說。
Expedia集團向微服務體系結構和容器的轉型為該公司在快速推出新服務方面提供了顯著的優勢。在過去,開發新應用程序往往需要幾個月的時間,而現在,它每天都能開發大量的新功能。
“通過我們對應用程序架構和DevOps實踐進行的現代化的投資,我們看到交付給客戶的功能又增加了一個數量級,”Chowhan說。“Vrbo品牌在過去三年里的發布速度增長了12倍。”
由于容器的可移植性,Expedia的應用程序可以在多個AWS區域以分布式的方式運行,從而提供了高可用性,這樣全球的客戶都可以使用Expedia的旅游網站,而不會受到任何影響了。
Chowhan說,容器還支持進行“有針對性的擴展”。“早些時候,當我們有一個整體的應用程序時,我們將不得不擴展整個基礎設施來支持額外的流量,”他表示。“而有了容器和微服務,現在我們將能夠更智能地擴展我們網站中有更高客戶需求的特定部分--并實現基礎設施成本的節約了。”
但容器仍然需要一些基礎設施管理,Chowhan說:“為了能夠部署和運行容器,您需要一個容器運行時和編排平臺。與任何軟件解決方案一樣,也會需要發布更新,這些更新需要部署到運行容器平臺的現有服務器之上。”
圍繞容器和微服務的開發過程是不斷發展的,從源代碼到運行時,Chowhan說。“我們必須進行重組,以適應我們整個旅游平臺的新生態系統,同時還要培訓我們的工程師,讓他們了解容器生態系統的演變,”他說。
Primerica:確保高質量、現代化的代碼
Finserv和保險公司Primerica已經創建了一個新的Kubernetes環境,用來幫助IBM在Nutanix硬件上的私有云產品中擴展應用程序。Docker的容器也幫助Primerica提供了一個環境之間的應用程序一致性。
“這是我們從傳統技術棧向現代混合云遷移的關鍵戰略組成部分,”公司首席技術官兼應用程序開發和交付執行副總裁Barry Pellas說。
“這種環境使我們能夠繼續看到我們幾十年來的持續以一種新的、現代的方式開發應用程序的價值,”Pellas說。“它還在我們的API(應用程序編程接口)和微服務戰略中扮演著關鍵角色”,因為它促進了我們向業務應用程序交付新功能,他說。
容器和Kubernetes的組合使Primerica不僅能夠托管應用程序,而且能夠監視它們并在容器發生任何情況時快速恢復。
“我們提供了端到端的基礎設施即代碼,這使我們能夠始終如一地構建可預測的環境,并消除人為錯誤的可能性,”Pellas說。“我們的持續集成和交付能力確保了產品團隊能夠隨時掌握最新的更改,他們可以自信地認為環境和應用程序的驗證已經作為部署過程本身的一部分被完成了。”
使用容器和Kubernetes的主要目的是為團隊提供一個更快交付應用程序的機會,從而提高應用程序的質量,Pellas說。它們還提供了一個安全、穩定的工作環境,并在高可用時間內提供了可伸縮性。
“我們還希望獲得各種環境之間的可預測性和一致性,以幫助進行調試和解決問題,”Pellas說。
雖然Primerica最近才開始利用容器和Kubernetes,但它已經看到了團隊生產率的提高,以及為用戶開發的新功能,這些功能可以以增量的、敏捷的方式進行交付。
“通過在開發過程的早期捕獲問題,我們將能夠提供更安全、更可預測的應用程序,”Pellas說。“隨著我們將越來越多的應用程序遷移到了平臺上,我們希望這可以提高我們的應用程序質量,并在整個產品團隊中帶來一致的開發體驗。”
與任何技術一樣,對于希望采用容器和Kubernetes的組織來說,都會有一個學習曲線。“讓擁有正確技能的團隊在環境中得到適當的發展是很有挑戰性的,”Pellas說。
Primerica正在通過向其產品團隊提供培訓,并為商業領袖提供最佳實踐來應對這些挑戰。
克萊姆森大學:爭奪大量的計算資源
克萊姆森大學遺傳與生物化學系的Feltus實驗室是一個由遺傳學家、計算機科學家、計算機工程師和生物工程師組成的跨學科團隊,他們將軟件工程和計算生物學技術相結合,試圖在人類和植物生物系統中做出有用的分子發現。
該實驗室使用了生物信息學、統計學和數據科學方法來發現新的模式,系教授Alex Feltus說。“我們分析的生物數據集在萬億到千兆位的范圍內,我們設計了優化了的數據密集型計算工作流,使的數據能夠適合于各種不同的計算平臺”,也包括一些商業云提供商的計算平臺。
近年來,實驗室一直致力于Kubernetes系統上運行的工作流開發工作。“我們相信Kubernetes將在未來的許多年內成為數據密集型計算的通用標準平臺,這將使得我們能夠將軟件工程的努力集中在一個架構上面,”Feltus說。
Feltus說,生物數據庫正在呈幾何級數的規模增長,我們可以挖掘數據集,從生物學角度深入了解一些最大的醫療和糧食安全挑戰。“即使是小型的生物實驗室也經常需要大量的計算資源。,”他說。“研究人員很快就會想要提出千兆級別的生物學問題,這將會需要訪問目前商業云中的大型計算機。而Kubernetes集群是進行大規模計算的優秀平臺。”
在完全轉向云計算之前,“生物學研究人員需要民主化的、免信貸的云沙箱,在那里人們可以大規模地設計和測試工作流,”Feltus說。“這些沙盒是至關重要的,因為90%的科學實驗都會走向死胡同,這會導致在發現問題之前就耗盡了云信貸的預算。”
Feltus實驗室正在與許多其他的研究團隊合作,嘗試將可擴展的資源融合到本地和云服務當中,而Kubernetes和容器將發揮巨大的作用。
“Kubernetes和容器是計算生物學工作流工程的首選平臺,”Feltus說。“這些系統讓我的學生繞過了許多難以捉摸的HPC(高性能計算)環境配置。”
該實驗室已經部署了Cisco的容器平臺,它可以幫助團隊在一個平臺下管理來自不同云提供商的多個集群。
一旦實驗室在Kubernetes集群中測試了它的工作流,它就可以在多個商業云中運行容器化的工作流。“這將簡化最終用戶的培訓,讓用戶能夠專注于科學本身,”Feltus說。
版權聲明:本文為企業網D1Net編譯,轉載需注明出處為:企業網D1Net,如果不注明出處,企業網D1Net將保留追究其法律責任的權利。