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

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

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


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

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

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