Mesos vs OpenStack,誰纔是私有云的將來?

本文是Quora上的一個問題,提問者對於私有云將來的發展趨勢感到疑 惑,Mesos和OpenStack的關係是怎樣的,它們之間是否能夠相互替代?來自Mesosphere以及Rackspace的專家們從 OpenStack與Mesos的功能和產品定位上對這個問題進行了解讀,它們之間的關係並不是互相替代,而是各有側重,相輔相成,這取決於用戶的實際需 求。但願本文內容能夠幫助讀者對私有云領域的開源產品和相關概念有更好的瞭解。

Quora上的問題
私有云的將來的發展趨勢是什麼,是Mesos?仍是OpenStack?
在私有云方面,Mesos和Docker兩者彷佛是一個完美的結,Google一直致力於這方面的研究,我很好奇私有云的將來會是怎樣的,你們怎樣認爲的?

回答者:Lukas Löschea(在Mesosphere工做,以前在工做中曾使用OpenStack)

Mesosphere和Openstack解決的是徹底不一樣的問題。實際上,它們是能夠在一塊兒協同工做的。用戶徹底能夠在OpenStack的集羣上面運行Mesos,這樣作能夠帶來不少額外的好處,好比提升系統的利用率和容錯性。

我發現OpenStack的初始配置工做比Mesos要困難許多,可是對於OpenStack系統的總體理解要容易許多,由於OpenStack 集羣的運行方式基本上與咱們過去幾年運行系統的方式相似。OpenStack的基本理念是提供虛擬的服務器,爲了實現這一目的,OpenStack也提供 很好的硬件層抽象。可是虛擬機構成的集羣可能會讓你感到難以運維,對於每一個虛擬機的維護也並不是容易,用戶遇到的問題基本上和之前在直接維護物理機集羣基本 類似。你仍然須要一個操做系統,一些配置和管理的工具,就像是Puppet、Chef、Salt、Ansible等等,而且須要採用獨立的主機來運行這些 工具。容器化的思想是在這以後纔有的技術。雖然在OpenStack上已經有了Docker Nova的驅動,可是在我看來,大多數人使用OpenStack是爲了建立虛擬機而並不是容器。他們使用OpenStack的方式更相似於對AWS的使用方 式。

而現實狀況是,用戶並不須要那麼多的服務器,用戶只是但願可以將它們的服務運行起來,使其能夠發揮做用。從這 個角度來看,OpenStack能作的事情並很少。提供服務器是一種終極解決方案,最終來看,全部的服務都要運行在服務器上。可是若是我有其餘選擇,我寧 願採用這樣的方式來運行我地服務:服務能夠無限擴展(我不用在意它們是怎樣運行以及運行在哪),當服務失敗的時候可以被自動檢測而且能夠自動修復,我也不 須要在凌晨3點的時候被叫醒,對服務進行維護。這就是Mesos所能完成的事情。

Mesos的用戶能夠按照新的方式調整他們的工做模式,這樣能夠大大簡化工做流程。好比,若是用戶使用Marathon來 長時間地運行服務,就能夠這樣來設置工做流程:開發者能夠將代碼提交到staging分支中,CI(Continuous integration)服務器(運行在Mesos集羣當中)會構建一個docker image而且升級Marathon REST API來經過docker image進行部署。若是在staging階段,服務運行的都很正常,開發者就會把他新提交的代碼合併到master/production分支中,從而 完成了產品系統的升級和部署。

最終的效果應該是這樣的:對用戶而言,所謂的部署過程僅僅意味着開發者將他的代碼提交到對應的分支。相似於滾動部署(rolling deployments),服務之間的依賴,健康檢查以及自動重啓這些功能均可以由Mesos/Marathon來提供。

這是一種徹底不一樣的工做方式,由於在這種模式下,運維人員再也不須要去打包應用部署代碼,或者啓動特定的監控服務。

從複雜性的角度來看,我認爲,若是用戶想基於OpenStack來運行私有云平臺,至少須要瞭解 Heat、Nova、Glance、Keystone、Neutron以及Cinder這些組件。我過去曾經作過OpenStack部署的工做,我發現由 於OpenStack自己的設計緣由,在維護過程當中會出現來一些很複雜的問題。由於Openstack自己是一個企業級的產品,是並不是社區產品,你會發 現,OpenStack平臺的安裝和運維工做至少須要來自不一樣部門的幾我的一塊兒負責。所以,若是你在一個大的公司或組織裏面工做,OpenStack平臺 的維護工做可能剛好能夠按照公司自己的組織結構來進行分工(系統支持、服務器硬件、基礎設施及網絡、安全等等)

在網上能夠找到相關的教程,基本上能夠幫助你在半個小時左右就設置好能夠用於生產環境的Mesos集羣。

從我的的觀點來看,Mesos的工做方式多是將來咱們運行數據中心的方式。所謂數據中心就是說個人全部的硬件資源均可以協同工做就像一整臺電腦同樣,而並不是是以單個主機的方式進行工做,而且用戶不須要經過手工決定服務要在哪裏運行。

回答者:Florian Leibert

對於私有云平臺的構建,Mesos+Marathon+Docker是一個很好的解決方案。Mesos是一個被實際驗證過的能夠提供伸縮性服務的工具(Mesos被Twitter、Airbnb、Netflix、ebay、PayPal等等公司採納)。Marathon是 一個集羣範圍的初始化和控制系統,它能夠幫助用戶在cgroup和Docker容器中運行Linux服務。許多公司都看好這個技術上,全部的關鍵組件都是 開源的,這些技術也構成了個人公司的DCOS(Mesosphere Datacenter Operating System)商業產品的核心組成部分。

Mesos以及Mesophere系列技術能夠提供一個相似的雲環境,這個環境中能夠運行已有的Linux任務,它也能夠提供一個本地的環境用於構建新的分佈式系統。

Mesos是一個分佈式的系統內核,針對數據中心直接提供了編程所需的API。它將底層的硬件(裸機或者虛擬機)進行抽象,將這些硬件以一致的資 源的形式提供給用戶。它包含着用於構建分佈式系統的基本功能(例如,Mesos支持Spark App、還有Chronos等等)例如消息傳遞,任務執行等等。這樣,用戶就能夠利用Mesos來構建完整的服務。Apache Spark就是其中的一個例子,Spark框架在Mesos的基礎上進行構建,這很大程度上提高了開發工做的效率。好比Spark的開發者不用擔憂網絡相 關的問題,不用考慮如何將任務分佈在不一樣的結點上來執行,這些都是Mesos所具有的基礎核心功能。

能夠參考Mesos在Apache.org上的頁面。Mesosphere及其合做夥伴正在對這些服務進行認證,而且正在將這些服務打包進Mesosphere DCOS Datacenter Service中,這樣這些服務就能夠經過一條指令直接被安裝完成。

Mesos的另外一個很好的特性就是它能夠運行在已有的OpenStack集羣上,也能夠直接在裸機上運行,只須要在每一個節點上運行一個小的Linux進程便可。

我認爲Mesos是雲計算的將來,由於它提供了良好的服務伸縮性,有利於數據中心自動化運維,能夠進行自我診斷而且提供豐富的本地的服務生態系統 (rich native application ecosystem),與此同時,還能夠不用對代碼進行修改就可讓已有服務正常運行。

回答者:Nati Shalom(構建了第一個Java PaaS解決方案, 與Amazon、RackSpace、Azure、VMware、Xen、JClouds專家一塊兒工做,設計了一款在雲端提供自動化服務和編排服務的產品。)

在IT行業,每隔一段時間,就會有新的技術出現,代替原有的「新的技術」,Mesos的案例彷佛很符合這個狀況。

事實上,雖然Mesos很成功,但並不能使其成爲一個取代已有基礎雲設施的通用的解決方案。在以前的一篇文章中:若是我使用Docker我還須要OpenStack嗎?,我就指出,在特定的領域內,OpenStack與Docker同樣流行,所以Docker暫時還沒法取代OpenStack。

個人觀點是,若是想回答這個問題,咱們須要回顧一下最初的時候咱們但願從相似於OpenStack同樣的雲基礎設施中獲得什麼。而且對比一下。Mesos是否能提供覆蓋所有這些功能的替代方案。

像OpenStack同樣的雲環境,除了能夠主動獲取資源,分配工做負載以外,還能夠針對各類各樣的計算、存儲以及網絡等核心功能提供基於多租戶的資源管理。

隨着許多主要的雲服務提供商不斷投入到公有云基礎設施的研發中,OpenStack也逐漸發展成一個生態系統。

對於跨主機分配工做負載,Mesos也作得很好。可是我以爲不該該把它看作是OpenStack雲平臺的替代方案。若是想要替代 OpenStack,就須要提供與OpenStack一樣級別的安全、存儲、網絡以及多租戶的服務。我也不認爲Mesos須要在全部方面作得都要比 OpenStack更好。在我看來,Mesos至多能夠和OpenStack運行的同樣好,而並不是替代OpenStack。

回答者:Dale Bracey(Rackspace私有云OpenStack產品工程師)

雖然我根本不熟悉Mesos,可是我大體瞭解,這是另一個能夠共享主機內核的容器化服務。

我嘗試在Lukas Lösche的觀點上再進行一些補充。你徹底能夠將以前回答中所提到的內容結合起來爲你服務。OpenStack能夠用來提供伸縮性,而且能夠更方便地管理你的開發工具、網站、服務以及服務器。即便是直接對裸機的管理,OpenStack也是能夠完成的(Ironic-OpenStack

OpenStack總體的部署維護比較困難,雖然文檔內容很是詳細,可是仍然缺乏細節性的指導,好比告訴用戶從開始到最後的整個的步驟應該怎樣完成。畢竟OpenStack是一個很大的項目,這種複雜性也是正常的。

OpenStack試圖成爲一個能夠管理多種Hypervisor、虛擬機以及存儲服務的編排層,可是目前仍然缺少足夠的能力。以前提到了 OpenStack-Docker Nova驅動,這個項目將Docker安裝在計算節點上,將容器按照虛擬機的方式提交給Nova/Glance,但實際上,容器並不虛擬機,這樣用戶不只 能夠利用容器技術自己的優點,還能夠利用OpenStack提供的控制管理功能。此外還有一個CoreOS-OpenStack的項目,這個項目一樣也很流行,這兩個項目都有相似的特性。

固然,用戶仍然須要使用一些配置系統來幫助你管理系統,除非想讓事情變得更復雜。咱們曾經使用Chef,以後使用Ansible。使人難過得是, 我剛剛纔知道,Ansible的CTO Michael Dehaan今天離開了Ansible公司。我不知道這個公司從此將會怎樣發展,固然這是題外話。

若是你僅僅但願本身的系統可以運行,而不是去關心虛擬機和服務器,OpenStack的開箱即用並不能爲你提供徹底自動化的環境,可是你能夠利用 些現成的工具來實現這一目的。這些工具也是徹底開放的,你能夠對它們定製開發而且能按照你但願的方式來工做。你能夠將Heat-OpenStack、 Ceilometer-OpenStack、以及各類DevOps工具結合起來爲你提供自動化服務。

最後爲新產品作一個廣告:Rackspace也認可OpenStack的部署工做確實很困難,咱們一直致力於幫助客戶簡化部署的難度,咱們在github上提供用於部署私有云的OpenStack結點,可讓用戶無償使用(在stackgorge中有一個社區項目stackforge/os-ansible-deployment)咱們也提供了其餘的私有云的解決方案。

你能夠嘗試使用一下,去閱讀部署文檔,提交bug提交新的特性請求,併爲社區作貢獻,讓咱們來共同努力,簡化OpenStack的部署流程。用戶 只須要關注服務的開發過程,不用考慮底層的基礎設施,咱們會一直爲你提供幫助,包括更新github上面的文檔。如下是一些相關的資料:

Docs: Private Cloud Support and Management by Rackspace

Install: rackspace.comPrivate Cloud Computing, Storage & Hosting by Rackspace & Openstack

Learn more: Rackspace  Community

原文連接:What is the future of the private cloud world, Mesos or OpenStack? (翻譯:王哲 )

===========================
譯者介紹
王哲,浙江大學SEL實驗室碩士研究生,目前在雲平臺團隊從事科研和開發工做。浙大團隊對PaaS,Docker,大數據和主流開源雲計算技術有深刻的研究和二次開發經驗,團隊現聯合社區將部分技術文章貢獻出來,但願能對讀者有所幫助。

來自:http://dockerone.com/article/224 html

相關文章
相關標籤/搜索