一文解讀2019年容器基礎(chǔ)設(shè)施最新趨勢與進展
Kubernetes的崛起令人驚嘆。在短短幾年時間內(nèi),它已經(jīng)從一個由一群云原生開發(fā)者倡導(dǎo)的開源項目轉(zhuǎn)變?yōu)橛稍品?wù)提供商推廣的標(biāo)準(zhǔn)運維平臺。
由于應(yīng)用程序工作負載從VM轉(zhuǎn)移到容器,Kubernetes已成為自動化和擴展容器部署的流行選擇。但是,到目前為止,Kubernetes的開發(fā)主要集中在基礎(chǔ)設(shè)施內(nèi)部,而不是關(guān)于簡化應(yīng)用程序開發(fā)和部署的更廣泛問題。幸運的是,這種孤立性正在逐漸消退,因為幾個PaaS堆棧正在將Kubernetes集群添加為支持的運行時目標(biāo),比如Pivotal Cloud Foundry,該公司將Cloud Foundry與Kubernetes集成的舉措代表著將容器編排平臺演變?yōu)槠髽I(yè)友好環(huán)境的大趨勢。
正如我們之前所討論的,企業(yè)通過采用PaaS堆棧和開發(fā)方法來利用軟件抽象的力量,這有著令人信服的業(yè)務(wù)和技術(shù)原因。Cloud Foundry因為產(chǎn)品上市早,和基于技術(shù)優(yōu)勢所提供的滿足開發(fā)人員和IT專業(yè)人員需求的完整系統(tǒng)而成為最受歡迎的選擇。Cloud Foundry長期以來一直使用容器作為應(yīng)用程序運行時環(huán)境,但作為一個自包含的系統(tǒng),容器由名為Garden的內(nèi)部模塊管理。商業(yè)Pivotal Cloud Foundry版本的用戶很快將有另一種選擇——Kubernetes,并且有一系列增強功能——這些增強功能解決了阻礙企業(yè)采用Kubernetes的缺點。
Pivotal擁抱Kubernetes、服務(wù)網(wǎng)格
Pivotal通過提供集成的、受支持的軟件和服務(wù),使Cloud Foundry成為企業(yè)PaaS。在最近的OSCON開發(fā)者大會上,該公司承認了Kubernetes作為容器管理系統(tǒng)的蓬勃發(fā)展,宣布其核心產(chǎn)品Pivotal Application Service的有限預(yù)覽版本在Kubernetes上運行。
“PAS on Kubernetes旨在將PAS的開發(fā)經(jīng)驗帶到Kubernetes之上。alpha版本是概念驗證,支持PAS最重要的功能,例如`cf push`用于許多基于buildpack的應(yīng)用程序,同時在Kubernetes上運行PAS app實例。下圖總結(jié)了alpha版本中的內(nèi)容。”

Pivotal還實現(xiàn)了以下功能:
- Cloud Foundry應(yīng)用程序?qū)嵗\行Kubernetes pod,其中包含一個translator,可將PAS應(yīng)用程序轉(zhuǎn)換為OCI(Open Container Initiative)鏡像和Kubernetes pod配置。然后,Kubernetes控制器管理應(yīng)用程序的部署和擴展。
- 與PAS HTTP路由器集成,將客戶端請求的流量定向到Kubernetes上運行的應(yīng)用程序。
- 應(yīng)用程序和pod日志與PAS日志記錄系統(tǒng)(Loggregator)的集成。
- 最多支持50個應(yīng)用程序?qū)嵗?/li>
alpha版本需要vSphere、NSX-T和Pivotal企業(yè)容器服務(wù)PKS,但該公司計劃支持其他Kubernetes平臺,特別是AWS、Azure和Google Cloud Kubernetes服務(wù)。
在過去幾個月里,Pivotal還推出了其他幾款Kubernetes產(chǎn)品,包括基于開源Buildpacks項目創(chuàng)建容器鏡像的構(gòu)建服務(wù)、對Spring Java Runtime環(huán)境和Kubernetes上RabbitMQ軟件的支持以及基于Istio和Envoy(自動化客戶端訪問在Kubernetes集群上運行的應(yīng)用程序)的容器服務(wù)網(wǎng)格。這些都顯著增強了Kubernetes作為生產(chǎn)應(yīng)用平臺的實用性和可用性。此外,作為商業(yè)支持的產(chǎn)品,它們不需要安裝、調(diào)整和調(diào)試開源軟件所需的專業(yè)人士和專業(yè)知識。

IBM引領(lǐng)云原生應(yīng)用程序開發(fā)
IBM還忙于為企業(yè)開發(fā)人員提供Kubernetes增強功能,宣布了幾個旨在加速和簡化容器化應(yīng)用程序開發(fā)的開源項目。雖然尚未打包為商業(yè)軟件,但以下項目將特別吸引剛接觸云原生應(yīng)用程序設(shè)計的開發(fā)人員:
Kabanero是容器化應(yīng)用程序的體系結(jié)構(gòu)和開發(fā)框架。它使用Kubernetes進行工作負載管理,滿足架構(gòu)師、Java開發(fā)人員和DevOps交付團隊的需求。它建立在其他三個與Kubernetes相關(guān)的項目上:Knative(開發(fā)過程自動化和無服務(wù)器端點)、Istio(服務(wù)網(wǎng)格)和Tekton(CI / CD集成)。通過開發(fā)運行時和框架(Node.js、Java、Swift),Kabanero將配置Kubernetes集群、安全性和網(wǎng)絡(luò)的實踐封裝到預(yù)構(gòu)建部署中。它還包含幾個新項目,包括:
- Appsody通過捆綁多個流行編程環(huán)境的預(yù)配置開發(fā)框架和模板,簡化了應(yīng)用程序開發(fā)。
- Codewind是一個開源開發(fā)項目管理器,它為流行的IDE(包括Eclipse和Visual Studio)添加了容器支持。
- Razee是一個持續(xù)交付工具,支持針對Kubernetes部署的容器化微服務(wù),其中包括可視化配置信息和部署的圖形界面,以幫助進行故障排除。它通過內(nèi)置模板簡化了多集群部署,這些模板跨集群和云環(huán)境實施配置和安全策略。
來看看IBM的聲明,“沒有任何其他開源項目能夠通過整個Kubernetes生產(chǎn)生命周期創(chuàng)建容器化云原生應(yīng)用程序提供集成體驗。”“通過使用Kabanero,你的開發(fā)團隊能夠構(gòu)建可以部署到Kubernetes上的應(yīng)用程序,而無需先成為容器和Kubernetes的專家。這降低了開發(fā)人員在企業(yè)從遺留基礎(chǔ)設(shè)施轉(zhuǎn)移到更現(xiàn)代化的基礎(chǔ)設(shè)施的云化過程中的進入門檻。”
容器的強有力采用與警示性挑戰(zhàn)并存
Pivotal(還有戴爾和VMware)和IBM(以及紅帽)都意識到,企業(yè)開發(fā)人員和IT組織將容器視為比他們當(dāng)前使用的VM服務(wù)器更高效、更靈活和更可擴展的應(yīng)用程序環(huán)境。但是,企業(yè)用戶仍然在努力應(yīng)對不成熟的技術(shù)、挑戰(zhàn)性的安全配置、陡峭的學(xué)習(xí)曲線以及無法輕松集成到其他系統(tǒng)中的復(fù)雜基礎(chǔ)設(shè)施。
事實上,Diamanti最近的一項調(diào)查表明,容器的使用越來越多,而企業(yè)采用者面臨著持續(xù)的挑戰(zhàn)。容器已進入主流,調(diào)查發(fā)現(xiàn)IT和平臺架構(gòu)師負責(zé)大部分容器決策,而今年在容器技術(shù)上花費至少10萬美元的組織增加了5.5個百分點,達到38.5%。此外,在容器上至少花費100000美元的組織中,有26%計劃將大部分工作負載量轉(zhuǎn)移到容器上。


企業(yè)努力應(yīng)對的一個領(lǐng)域是找到足夠的容器專業(yè)知識來實現(xiàn)其目標(biāo)。那些認為缺乏容器技能的人才是“主要采用抑制因素”的人今年增加了一半,幾乎占調(diào)查對象的四分之一。而認為沒有影響的受訪者是指只對花費最少的容器技術(shù)(少于50000美元)計劃沒有影響,即剛開始或測試最小容器安裝的那些。實際上,近65%的人認為技能短缺是中度或主要的采用抑制因素。

至于在生產(chǎn)中運行容器,多年來什么是主要的挑戰(zhàn)非常一致:與現(xiàn)有基礎(chǔ)設(shè)施的集成、安全性和部署復(fù)雜性。這些抑制因素是Diamanti、PAS、Red Hat OpenShift等打包容器平臺在企業(yè)IT和DevOps組織中如此受歡迎的關(guān)鍵原因。

筆者的看法
在一大堆服務(wù)器配置、網(wǎng)絡(luò)管道和編程語法的神秘細節(jié)中,關(guān)于Kubernetes的討論似乎無可救藥地偏題了,這讓業(yè)務(wù)和IT主管們質(zhì)疑該技術(shù)如何滿足他們對新應(yīng)用程序的需求和實現(xiàn)更快的上市時間。對于這些非專業(yè)人士來說,他們并不多關(guān)心設(shè)計細節(jié)。相反,應(yīng)用程序所有者、贊助商和業(yè)務(wù)主管希望了解Kubernetes如何為他們節(jié)省資金,提高應(yīng)用程序性能并縮短開發(fā)時間。而通過專注于應(yīng)用程序開發(fā)過程而不是交付系統(tǒng),可以更好地實現(xiàn)這些目標(biāo)。
這就是Kubernetes開發(fā)人員的機會——無論是Pivotal和IBM等商業(yè)軟件公司,AWS、微軟和谷歌等云服務(wù)提供商,還是Kubernetes生態(tài)系統(tǒng)的大量開源貢獻者。企業(yè)已經(jīng)意識到容器和Kubernetes的價值,但需要在以下方面簡化產(chǎn)品和服務(wù):
- 開發(fā)容器化的云原生應(yīng)用程序
- 部署容器基礎(chǔ)設(shè)施
- 管理容器工作負載和安全策略
最近的進展體現(xiàn)了容器基礎(chǔ)設(shè)施發(fā)展的潛力和希望。核心容器技術(shù)與PaaS框架和開發(fā)方法論的結(jié)合最終將使Kubernetes及其生態(tài)系統(tǒng)足夠成熟,為普通企業(yè)所用。