Docker、Kubernetes與PaaS不得不說的淵源
了解Docker和Kubernetes人應(yīng)該發(fā)現(xiàn)一個有趣的事情,從某種程度上來看Docker、Kubernetes都跟PaaS有些相似,感覺有種說不清道不明的關(guān)系。事實上,Docker和 Kubernetes就是脫胎于platform-as-a-service(PaaS),總而言之,它們與PaaS有血緣關(guān)系。
谷歌資深產(chǎn)品經(jīng)理Craig McLuckie認(rèn)為這也是Docker如此成功的原因之一,也是Google為什么要緊隨其后推出基于Docker的容器管理工具Kubernetes。McLuckie認(rèn)為PaaS***的敗筆就是:企圖用PaaS來解決所有問題。PaaS用戶將其推向一個“experiential cliff”,試圖用PaaS解決一些它并不能解決的問題。PaaS忙于解決各種問題,負(fù)責(zé)在基礎(chǔ)設(shè)備中部署代碼,負(fù)責(zé)業(yè)務(wù)編排,負(fù)責(zé)創(chuàng)建進(jìn)程,還要負(fù)責(zé)自動化代碼管理。所謂人心不足蛇吞象,這些功能對于一個平臺而言實在太多了。于是有人開始想:如果嘗試只做其中一兩種功能會是什么樣呢?
于是,PaaS初創(chuàng)公司dotCloud誕生了。吸取PaaS的前車之鑒,dotCloud只提取出PaaS項目的兩項功能:代碼封裝和分發(fā)??赡苣阋呀?jīng)猜出故事的包袱是什么了,dotCloud公司最終的產(chǎn)物就是Docker容器,隨著Docker越來越火,dotCloud公司更名為Docker。“簡單”成為Docker的優(yōu)勢,代碼像一個“密封單元”一樣部署在測試云、生產(chǎn)云等不同環(huán)境中。
下一站:Kubernetes
從開發(fā)者角度來看Docker的確實現(xiàn)了PaaS的一些承諾。順著Docker的思路理下去,接下來的問題就是怎樣管理容器,于是Kubernetes順理成章的出現(xiàn)了。Kubernetes是Google推出的開源容器集群管理系統(tǒng),基于Docker構(gòu)建一個容器調(diào)度服務(wù),為容器化的應(yīng)用提供資源調(diào)度、部署運行、均衡容災(zāi)、服務(wù)注冊、擴(kuò)容縮容等功能,本質(zhì)上可看作是基于容器技術(shù)的mini-PaaS平臺,提取PaaS中的業(yè)務(wù)編排和管理模塊而形成的。
部署容器的過程中***化利用資源是十分重要的,OpenStack、Docker和Kubernetes組合就可以***的實現(xiàn)這一點,這也是Google贊助OpenStack開源組織的原因之一。
近日Google宣布推出Google容器引擎,也就是以服務(wù)形式提供的Kubernetes。McLuckie還透露了Kubernetes后期的發(fā)展方向。Kubernetes將會向應(yīng)用方向發(fā)展,不再局限于云計算,這樣一來Kubernetes就可以在在虛擬機(jī)和容器環(huán)境中靈活切換了。另外,Google會進(jìn)一步加強(qiáng)Kubernetes的健壯性,確保它能夠應(yīng)付不同的環(huán)境,無論是OpenStack Neutron還是containers-on-bare-meetal。