歷經變遷,由服務器,網絡和存儲慢慢形成的現代IT大廈,最終會被哪個層次的軟件掌控?會是Openstack嗎(虛擬化巨獸 VMware也吸納了這種技術)?或者會是應用調度框架,Mesos(從加州伯克利分校的AMPLab發展而來)嗎?會是Kubernetes(從 google的borg和Omega作業調度框架發展而來)嗎?
這一問題的答案并不像我們期望的那么明顯,但是卻很值得我們去深入思考。Openstack已經在數據中心建設中博得青睞,而Mesos和 Kubernetes,盡管尚處于發展階段,也已經引起軟件棧高層級的注意。這些改變將數據中心建設的重心從架構虛擬化和編排轉向為,如何在服務器集群節點中采用容器技術,來提高利用率并且簡化部署和維護應用的流程。
很自然的會想到,Openstack將會因為很強的控制能力而演變成為重心,或者說至少對中意開源軟件的數據中心來說。微軟和VMware有巨大的虛擬機裝機量,而且還有他們自己的管理工具– Systems Center with Azure Pack plug-ins for Microsoft 和vSphere and vCloud extensions for VMware – 用于創建和管理云。現在他們也都嘗試在虛擬化架構之上采用Docker容器技術,以便應對來自Linux,Kubernetes(google開源的用于調度和容器管理的系統)和Docker容器的挑戰。
當Openstack初成規模時,軟件容器也已經發展了一段時間,但是由于數據中心以虛機和服務器整合為重心使得軟件容器技術暫時黯淡下來。而當NASA和Rackspace五年前發布Openstack項目時,其雄心是為了大規模云平臺而開發一個中心控制系統,其目標是管理一百萬服務器節點和多達六千萬虛機,這不僅僅是驚人的數量,而且還大大超出預料。可擴展性在今天看來是很重要的問題,許多公司對裸機和虛機有同樣的需求,有時候前者更適合某些特定負載情況。行業應用和終端用戶的實際需求轉變了Openstack項目的優先級別,Openstack已經成為虛擬機,存儲和網絡編排的重心– 而這跟項目初始時候的計劃已經不可同日而語。
容器技術的發展,對Openstack的需求不但并沒有減退,反而催生了Mesos和Kubernetes調度器和容器化應用開發和部署走向前臺,面對這些變化自然會提出,哪個會最終成為未來應用集群執牛耳者的問題?
“現在業界明顯的分成兩大陣營”,Boris Renski(Openstack 發行商Mirantis的co-founder 和首席市場官)告訴 The Platform, “Openstack和Mesos有一些重合的地方,但是并不很大。Kubernetes 陣營和Docker 陣營將會最終解決最重要和最困難的問題,而其他問題都是次要的,會慢慢發展成為Openstack現有的功能。而Openstack 陣營正在做相反的事情,認為容器已經發展了一段時間,容器編排技術上看是比較簡單的事情,Openstack正在解決物理機和虛擬機編排的問題,為此引入了Kubernetes和容器編排的功能。”
整合這兩大陣營的工作由一個叫Magnum的項目完成,可以回溯到五月份,他可以在Openstack和goolge的 Kubernetes,Docker Swarm,CoreOS Tectonic以及其他一些新出現的容器管理系統之間提供掛鉤(hooks)支持。Magnum開始于2014年11月,還沒有被合并到主代碼中,因此如果想整合Openstack和Mesos(Kubernetes可以運行在此框架之上,提供更加原生的支持)或者Kubernetes,就必須依賴手工來安裝配置他們,使用Openstack部署物理機或者虛擬機,然后將資源暴露給容器管理系統,但是計算資源如何編排尚不清楚。
Matt Trifiro(Mesosphere市場部資深副總裁)指出,嚴格的說,如果想運行Mesos集群,不管有沒有Kubernetes在其上,并不需要一個與Openstack類似的云控制器,Apache Mesos項目背后的商業模塊會提供控制器端的商業支持。
“傳統企業會投資人員和技術方向,但事實證明會在員工中產生惰性”,Trifiro解釋說,“我們有許多客戶使用VMware或者 Openstack,這些系統能夠對于部署設備非常有效。有很多實際部署場景,客戶會使用VMware,或者Openstack,或者其他部署工具(最終成為DCOS集群的一部分)。隨著時間的推移,當DCOS集群進入生產狀態時,會移除底層不必需的層次。我們并非對虛擬化提供商別有企圖,但是可以預見到這些演變,而且這是普遍的演變路線,因為他們并不是嚴格必需的。
為了說明這個變化,Benjamin Hindman, (AMPLab時Mesos項目創始人之一,他在Twitter和Airbnb時將應用框架和復雜兩層調度器轉變成集群控制器)舉了Apple這個案例,Apple現在使用Mesos作為成千個服務器節點的資源調度器來支持Siri服務。
“Apple Siri團隊剛開始運行在VMware之上,最終轉變到裸服務器上”,Hindman解釋說,“當Apple從物理機遷移到Mesos后,一個主要原因就是:首先,他們不在需要虛擬機;第二,性能有很大提升。虛擬機系統帶來的損耗是真實存在的,在Apple來說,大概在30%左右。也就是不采用虛機架構,Apple運行Siri比以前快30%以上,的確是一個很大的改善”。
Mesosphere并不想帶給大家一種概念,就是DCOS(Data Center Operating System,Mesosphere用于生產系統的Mesos工具)要取代云控制器,例如Openstack和VMware vCloud。即使這樣,從Apple案例中可以看出,對許多應用負載來說虛擬化并不是必需的。
“我們和Openstack和VMware社區有很好的合作”,Trifiro說,“例如,VMware提供的許多管理和安全架構并不是我們今天想要的,或者說,企業需要的可能并不是我們今天的軟件棧能夠提供的,這對我們來說并不是(纏繞著我們脖子的)噩夢,應該理解這是真正的商業價值。虛擬化并不能幫助更好的編排容器,但是對很多企業客戶,用DCOS加上VMware來管理容器可以起到1+1=5的效果”。
Hindman或多或少同意這個論點,但是從長期看,虛擬化并不是必需的。“我們和虛擬化是相輔相成的,我們在虛擬機內部運行。但是對于已有的云服務提供商來說下一步演進就是基于裸機的Mesos系統。但是如果想在一個linux實例之上的windows虛擬機中運行一個windows應用,這是可以做到的”。
根據Renski,這種信念也許是同構架構的副產品,而Airbnb和Twitter采用的這種架構跟傳統企業客戶有很強的對比。
“有些純粹主義者,例如CoreOS和Mesosphere的創始人,他們來自于互聯網+世界,所有的集群都是一樣的,最大的問題就是管理容器和應用”,他解釋說,“如果反過來看現在的企業,這是一個充滿異構平臺的世界,如何解決異構性是一個巨大而復雜的難題。因此從企業視野來看,不像 Twitter或者Goolge的視野,將會看到VMware vsphere和Microsoft Hyper-V,不同廠商提供的存儲,等等;這些客戶想要一個單一界面來管理裸機和虛擬機。我并不確認哪個陣營會贏,我也不確定企業是否會選擇純粹主義方式而將他們的架構完全轉變成單一架構”。
考慮到現有數據中心已經運營和很久,這種情況看起來不太可能發生。但是在未開發的應用領域(或者說新數據中心的藍海),他們正在建造這種新的云平臺,甚至用來支撐超算中心。
因此,Rensi說,只要傳統企業用戶繼續異構化思路(而不是同構化架構),Openstack將會占有一席之地,Kubernetes和Mesosphere將會跟Openstack“完全的相輔相成”。
“Openstack的出發點是簡化異構化數據中心的管理”,Renski說,“大量的供應商為物理設備提供大量種驅動,而Openstack 的價值則表現在,將這些驅動表現為(譯者:或者暴露為:expose)各種APIs,允許對裸機和虛機進行編排,而不論他們是計算節點,存儲還是網絡。 Kubernetes和Mesos更像是人們常說的PaaS層。他們更擅長于管理和擴展容器中的應用;Openstack更專注于異構化的數據中心,但是對應用和容器管理就力不從心了。而如果將Kubernetes和Mesos架構于其上,則會更像是鳳凰涅槃,獲得重生。”
CoreOS最近跟Mirantis達成一致,將CoreOS Tectonic容器框架和Mirantis的Openstack發行版緊密合作(繼去年Cisco搶購了Metacloud和Piston cloud computing后,Mirantis成為為一個獨立的Openstack發行商)。Alex Polvi, CoreOS的CEO對The Platform說,讓Tectonic運行在Openstack之上正好滿足現在很多客戶端需求,而Openstack是Tectonic可以部署在其上的虛擬架構棧之一,但是Polvi也并沒有太直言不諱。
“我們看來---當然是基于我們的產品,也是為什么為什么要這么做的原因---我們認為CoreOS加Openstack是絕佳搭檔,”,Polvi說,“有將Kubernetes架構在Mesos之上的方案,甚至底層又架構在Openstack之上,但是我們認為最簡方案應該是 CoreOS加Kubernetes,然后應用運行在其上(如果你想的話,也可以包括Mesos)。我知道Mesos走的是另外的途徑,但是技術上來說是沒有問題的。我們相信google和Twitter的架構方式將會是最終方向。如果當初搭建Google的大牛們現在開始按照Borg為藍本開發 Kubernetes的版本,可以肯定將會最終贏得這個領域”。
真正的對抗,可能是基于Mesos和Kubernetes。如Polvi指出,Mesos有一些Kubernetes目前并不具備的功能,但是他認為這只是一個成熟度的問題。“Kubernetes還很年輕,再過一到兩年,將會看到某些Mesos無法處理的場景,但是我們相信 Kubernetes會成為分布式數據中心的Linux,未來的一切都是基于其上的,就像現在的Linux操作系統一樣”。
看起來傳統企業用戶仍然會在需要的地方使用虛擬化,也許會將容器運行其上;只要有可能,就一般會默認的將容器運行在裸機上。最終這個問題又有會成為性價比問題,就像Apple Siri項目一樣。但是即使是裸機編排也需要一部分Openstack類似的融合功能,Mesos是否能演進出自己的這部分功能,還是Openstack 開發出類似Borg的部分功能,我們拭目以待。