什么樣的軟件層會(huì)最終控制全球公司正逐步建立起來(lái)的計(jì)算、存儲(chǔ)和網(wǎng)絡(luò)架構(gòu)?它們是連服務(wù)器虛擬化巨頭VMware都接受的OpenStack?亦或是由加州大學(xué)伯克利分校的AMPLab開(kāi)發(fā)的Mesos應(yīng)用調(diào)度器?還是受到谷歌Borg和Omega任務(wù)調(diào)度器啟發(fā)而開(kāi)發(fā)的Kubernetes?
這些問(wèn)題的答案可能并非我們想象得那么簡(jiǎn)單,但是情況還是非常有意思的。因?yàn)镺penStack在數(shù)據(jù)中心中正在受到廣泛的關(guān)注,而Mesos和 Kubernetes雖然還相對(duì)處于早期階段,但同樣也吸引到了軟件堆棧更高層級(jí)的關(guān)注。這樣一來(lái),數(shù)據(jù)中心的談話(huà)重心就從基礎(chǔ)設(shè)施虛擬化和編排轉(zhuǎn)向了集群中服務(wù)器節(jié)點(diǎn)上軟件的混存。這些集群使用了容器來(lái)提升利用率,大幅簡(jiǎn)化了應(yīng)用部署與維護(hù)的流程。
數(shù)據(jù)中心控制權(quán)之爭(zhēng):OpenStack能否成為軸心?
我們很自然地就會(huì)想到OpenStack最終會(huì)成為所有控制功能的重心,至少對(duì)于那些將開(kāi)源軟件作為首選的數(shù)據(jù)中心控制功能來(lái)說(shuō)應(yīng)該是這樣。
微軟和VMware擁有龐大的虛擬化服務(wù)器安裝基礎(chǔ),并且擁有大量可以創(chuàng)建和管理云的管理工具,例如帶Azure Pack插件的微軟系統(tǒng)中心,VMware擁有vSphere和vCloud擴(kuò)展組件。目前它們都努力在虛擬化基礎(chǔ)設(shè)施頂層采用Docker容器格式,以便與Linux、Kubernetes和Docker容器混合方案展開(kāi)競(jìng)爭(zhēng)。
在OpenStack出現(xiàn)之時(shí),容器技術(shù)已經(jīng)存在了很長(zhǎng)一段時(shí)間。但是,隨著虛擬機(jī)和服務(wù)器整合像風(fēng)暴一樣席卷數(shù)據(jù)中心之后,它們一度黯然失色了。
在NASA和Rackspace于五年前推出了OpenStack項(xiàng)目時(shí),他們的最高目標(biāo)是為橫跨100多萬(wàn)個(gè)服務(wù)器節(jié)點(diǎn)和最大6000萬(wàn)臺(tái)虛擬機(jī)的大型云創(chuàng)建一個(gè)中央控制器。這是一項(xiàng)宏偉的事業(yè)。雖然規(guī)模對(duì)于集群來(lái)說(shuō)目前是一個(gè)重要的問(wèn)題,但是許多公司希望裸機(jī)數(shù)量與虛擬機(jī)數(shù)量一樣多,前者更適合于某些工作負(fù)載。行業(yè)和終端用戶(hù)公司的實(shí)際顧慮已經(jīng)改變了OpenStack項(xiàng)目的優(yōu)先順序,OpenStack已經(jīng)成為虛擬計(jì)算、存儲(chǔ)和網(wǎng)絡(luò)編排的重心。與最初的計(jì)劃相比,這是一個(gè)更為困難的任務(wù)。
容器、容器編排工具和OpenStack:誰(shuí)能統(tǒng)治未來(lái)應(yīng)用集群?
軟件容器出現(xiàn)后,對(duì)OpenStack的需求未必會(huì)減少。Mesos和Kubernetes調(diào)度器的出現(xiàn),以及容器化應(yīng)用開(kāi)發(fā)與部署理念的出現(xiàn),成為了人們新的關(guān)注點(diǎn)。人們很自然地想知道:哪種控制器最終將統(tǒng)治未來(lái)的應(yīng)用集群。
Mirantis 的聯(lián)合創(chuàng)始人兼首席營(yíng)銷(xiāo)官Boris Renski對(duì)The Platform網(wǎng)站表示:“目前有兩大陣營(yíng)公開(kāi)地為爭(zhēng)奪控制權(quán)展開(kāi)競(jìng)爭(zhēng)。OpenStack所處理的事務(wù)與Mesos所處理的事務(wù)之間存在著重疊,不過(guò)公平地說(shuō)重疊部分很小。Kubernetes支持者和Docker支持者都宣稱(chēng)他們正在解決的問(wèn)題都非常重要,并且棘手。除此之外其他的所有問(wèn)題都是次要問(wèn)題,他們會(huì)隨著時(shí)間的推移讓他們的堆棧做OpenStack能夠做的事情。OpenStack支持者的做法則截然相反,他們認(rèn)為容器已經(jīng)出現(xiàn)了很長(zhǎng)一段時(shí)間,容器編排在技術(shù)上是一個(gè)很容易解決的問(wèn)題。OpenStack正在解決物理基礎(chǔ)設(shè)施和虛擬機(jī)的編排問(wèn)題,未來(lái)我們將可以加入到Kubernetes 中,在我們的堆棧中加入容器編排。”
Magnum連接兩個(gè)世界:一些不必要的層正在消失
目前,人們正在通過(guò)Magnum對(duì)兩個(gè)世界進(jìn)行整合。Magnum在OpenStack和谷歌的Kubernetes、DockerSwarm、 CoreOSTectonic以及其他的容器管理系統(tǒng)之間提供了連接能力。Magnum項(xiàng)目于2014年11月啟動(dòng),其代碼還沒(méi)有為黃金時(shí)間準(zhǔn)備就緒,因此那些希望將OpenStack與Mesos或Kubernetes整合在一起的人必須要手動(dòng)干預(yù)才行。他們使用OpenStack配置裸機(jī)或虛擬機(jī),然后再使用容器管理系統(tǒng)。準(zhǔn)確地說(shuō),計(jì)算能力是被如何編排的目前還不清楚。
Mesosphere主管營(yíng)銷(xiāo)的高級(jí)副總裁Matt Trifiro表示,嚴(yán)格地說(shuō),如果我們想運(yùn)行Mesos集群控制器,無(wú)論在頂層有沒(méi)有Kubernetes容器管理,我們都不需要像OpenStack 這樣的云控制器。Mesosphere是Apache Mesos項(xiàng)目背后的商業(yè)實(shí)體,主要負(fù)責(zé)為該控制器提供商業(yè)支持。
Trifiro 解釋說(shuō):“企業(yè)中的現(xiàn)實(shí)是,企業(yè)對(duì)人員和技術(shù)進(jìn)行投資,他們?yōu)槠髽I(yè)提供證明,他們有投資和惰性。我們有許多客戶(hù)正在使用VMware或者 OpenStack,這些系統(tǒng)都非常擅長(zhǎng)配置機(jī)器。最為理想的部署場(chǎng)景是,用戶(hù)使用VMware、OpenStack或其他工具部署DCOS(數(shù)據(jù)中心操作系統(tǒng))集群中的機(jī)器。隨著時(shí)間的推移有可能發(fā)生的情況是,他們將DCOS集群應(yīng)用于生產(chǎn),同時(shí)消除了一些不必要的層。我們看到了這一演進(jìn),同時(shí)我們沒(méi)有工具與虛擬化提供商一起消除這些東西。不過(guò),這是一個(gè)共同的演進(jìn)路徑,因?yàn)樗鼈儾⒉皇潜匦璧摹?rdquo;
蘋(píng)果的Mesos應(yīng)用案例:消除虛擬機(jī)負(fù)擔(dān)
為了創(chuàng)建案例,作為Mesos項(xiàng)目創(chuàng)始人之一,AMPLab 的BenjaminHindman除了利用來(lái)自推特和Airbnb的技術(shù)幫助將其轉(zhuǎn)化為帶有應(yīng)用架構(gòu)和復(fù)雜的兩級(jí)調(diào)度器的集群控制器外,還借鑒了蘋(píng)果的案例。目前蘋(píng)果正支持其Siri服務(wù)的大量服務(wù)器節(jié)點(diǎn)中使用Mesos。
Hindman 解釋說(shuō):“蘋(píng)果Siri團(tuán)隊(duì)曾經(jīng)使用過(guò)VMware,并最終轉(zhuǎn)向了裸機(jī)。蘋(píng)果已經(jīng)轉(zhuǎn)向了帶有Mesos的裸機(jī),他們這樣做的最大一個(gè)原因是,首先他們不需要虛擬機(jī),其次他們?cè)谛阅苌汐@得了大幅提升。我們經(jīng)常討論的虛擬化負(fù)擔(dān)是真實(shí)存在的,對(duì)于蘋(píng)果來(lái)說(shuō),這部分占了30%。消除它們意味著蘋(píng)果可以將Siri 的工作速度提升30%,這真的非常重要。”
Mesosphere不希望給人們留下他們的生產(chǎn)級(jí)Mesos工具DCOS與OpenStack和VMware vCloud等云控制器之間存在沖突的印象,即便是在蘋(píng)果的案例顯示許多工作負(fù)載的虛擬化已經(jīng)不再需要的情況之下。
Trifiro說(shuō):“我們與OpenStack和VMware社區(qū)展開(kāi)了大量合作。”例如,由VMware提供的大量管理與安全基礎(chǔ)設(shè)施并不是目前我們正在考慮提供的東西。它們的許多能力是我們的堆棧所不具備的,但企業(yè)可能又希望擁有這些能力。這些東西雖然老舊,但是它們?nèi)栽谔峁┱嬲臉I(yè)務(wù)價(jià)值。雖然虛擬化不能幫助我們更好地編排容器,但是對(duì)于許多企業(yè)客戶(hù)來(lái)說(shuō),用“DCOS+VMware”的方式管理容器可以收到1+1=5的效果。
Hindman基本上同意Trifiro的這種觀點(diǎn),不過(guò)他仍然認(rèn)為,從長(zhǎng)遠(yuǎn)看,虛擬化可能并不是必需的。“我們正在對(duì)虛擬化進(jìn)行補(bǔ)充,并且我們可以在虛擬機(jī)內(nèi)部運(yùn)行。但是對(duì)于那些已經(jīng)做好了使用IaaS云的企業(yè)來(lái)說(shuō),他們會(huì)在裸機(jī)上運(yùn)行Mesos。如果我們想在Linux 實(shí)例上的Windows虛擬機(jī)中運(yùn)行Windows應(yīng)用,那么我們也可以實(shí)現(xiàn)。”
Renski稱(chēng),這種觀點(diǎn)可能是同質(zhì)化基礎(chǔ)設(shè)施帶來(lái)的副產(chǎn)品。對(duì)于企業(yè)來(lái)說(shuō),Airbnb和推特的基礎(chǔ)設(shè)施幾乎沒(méi)有什么差別。
他解釋稱(chēng),“CoreOS和Mesosphere的創(chuàng)始人都是純粹主義者,他們都曾從事于互聯(lián)網(wǎng)行業(yè),在那里他們有著統(tǒng)一的集群,最大的問(wèn)題是管理容器和應(yīng)用。如果你看一下企業(yè)級(jí)市場(chǎng),這個(gè)領(lǐng)域是多樣化的,而處理這些多樣性是一個(gè)龐大且復(fù)雜的難題。因此在企業(yè)堆棧中,不同于推特和谷歌堆棧,我們會(huì)看到VMware vSphere和微軟Hyper-V以及來(lái)自多家廠商的存儲(chǔ)等,這些客戶(hù)希望通過(guò)一個(gè)單一的接口控制裸機(jī)和虛擬服務(wù)器。我不知道哪個(gè)陣營(yíng)將會(huì)勝出,也不清楚企業(yè)是否將走純粹主義道路,以及他們的堆棧是否會(huì)變成一個(gè)整體。”
OpenStack駕馭多樣性:與Kubernetes、Mesosphere協(xié)作
考慮到應(yīng)用在企業(yè)數(shù)據(jù)中心內(nèi)存在的時(shí)間,這看起來(lái)不太可能。但是這可能會(huì)發(fā)生在一些新公司身上,因?yàn)樗麄冋趧?chuàng)建新的云,甚至?xí)褂眯碌某?jí)計(jì)算機(jī)。
Rensi稱(chēng),只要企業(yè)對(duì)他們基礎(chǔ)設(shè)施保持多樣化,而不是同質(zhì)化,OpenStack就將會(huì)獲得一席之地,同時(shí)Kubernetes和Mesosphere將會(huì)對(duì)OpenStack進(jìn)行補(bǔ)充。
Renski 認(rèn)為:“OpenStack簡(jiǎn)化了數(shù)據(jù)中心多樣性的管理。OpenStack目前的價(jià)值在于,許多廠商正在編寫(xiě)并積極維護(hù)大量物理基礎(chǔ)設(shè)施驅(qū)動(dòng)。而 OpenStack是一個(gè)API架構(gòu),允許對(duì)裸機(jī)和虛擬基礎(chǔ)設(shè)施進(jìn)行編排,無(wú)論它們是計(jì)算、存儲(chǔ)還是網(wǎng)絡(luò)。Kubernetes和Mesos是PaaS的底層組件。它們擅長(zhǎng)管理和擴(kuò)展被打包在容器中的應(yīng)用。OpenStack擅長(zhǎng)處理數(shù)據(jù)中心的多樣性,但是卻不擅長(zhǎng)應(yīng)用和容器管理。我們可以在 OpenStack之上放置Kubernetes或Mesos,這是一個(gè)非常優(yōu)秀的技術(shù)組合。”
CoreOS已經(jīng)與Mirantis達(dá)成協(xié)議,共同致力于CoreOS的Tectonic容器架構(gòu)與Mirantis的OpenStack發(fā)行版的整合。CoreOS的CEO Alex Polvi對(duì)The Platform網(wǎng)站表示,讓Tectonic在OpenStack上運(yùn)行的工作可以真正滿(mǎn)足許多客戶(hù)的需求,OpenStack是Tectonic可以在其上部署的眾多不同虛擬化基礎(chǔ)設(shè)施堆棧中的一個(gè)。
Polvi說(shuō):“我們的觀點(diǎn)雖然可能有點(diǎn)偏袒我們的產(chǎn)品,但是CoreOS加Kubernetes的組合確實(shí)是一個(gè)非常出色的通用基層,這也是我們?yōu)槭裁凑趫?jiān)定不移地推動(dòng)它們的原因。有許多辦法可以實(shí)現(xiàn)在Mesos上運(yùn)行Kubernetes,我們甚至可以將它們放在OpenStack上。不過(guò)我們認(rèn)為,‘CoreOS+Kubernetes’的組合是可接受的最低限度,我們可以將其他應(yīng)用放在它們上面。如果愿意的話(huà),Mesos也可以放在它們上面。我知道雖然Mesos的工作原理完全不同,但是我們并沒(méi)有不這么做的技術(shù)障礙。我們相信谷歌、Facebook等公司管理他們基礎(chǔ)設(shè)施的方式是我們的終極目標(biāo)。如果創(chuàng)建了谷歌Borg的公司正在將Kubernetes作為一個(gè)理想版本,那么隨著時(shí)間的推移他們最終將會(huì)勝出。”
真正的競(jìng)爭(zhēng)可能會(huì)發(fā)生在Mesos和Kubernetes之間。正如Polvi所指出的那樣,Mesos有許多Kubernetes還不具備的功能,不過(guò)他認(rèn)為這只是一個(gè)成熟度的問(wèn)題。他說(shuō):“Kubernetes只是出現(xiàn)的時(shí)間太短了。Mesos在未來(lái)一到兩年內(nèi)將出現(xiàn)優(yōu)秀的使用案例。我們相信 Kubernetes將成為分布式數(shù)據(jù)中心的Linux。它們將像Linux一樣,采用內(nèi)置所有東西的設(shè)計(jì)思路。”
似乎企業(yè)可能會(huì)繼續(xù)在他們需要的地方使用虛擬化,并在其頂層放置容器,或是默認(rèn)在裸機(jī)上設(shè)置容器。正如蘋(píng)果Siri案例所顯示的那樣,這么做的原因歸根結(jié)底還是因?yàn)橘Y金和性能。不過(guò),即便是裸機(jī)的調(diào)度也需要像OpenStack這樣的系統(tǒng)。無(wú)論是Mesos添加自己的調(diào)度系統(tǒng),還是borg作為 OpenStack的一部分,我們?nèi)孕枋媚恳源?/p>