在IT界數(shù)年針對(duì)私有云架構(gòu)的優(yōu)點(diǎn)的不斷的爭(zhēng)論之后,一個(gè)切實(shí)可行且企業(yè)可用(enterprise-ready)的私有云架構(gòu)終于來(lái)到了我們面前。并且與其它在過(guò)去的一個(gè)世紀(jì)出現(xiàn)的技術(shù)方案不同,它已經(jīng)在世界上的一些巨頭公司,和采用先進(jìn)技術(shù)的最多的公司里都證明了自己的價(jià)值。
重要的是,我們指的不是IaaS。到目前為止IaaS方案已經(jīng)被嘗試過(guò)太多次,難以統(tǒng)計(jì),并且還沒(méi)有怎樣擴(kuò)散開(kāi)來(lái)。不斷的有初創(chuàng)公司嘗試然但無(wú)功而返,也不乏大公司步其后塵 - 包括像OpenStack這樣的項(xiàng)目 - 結(jié)果卻未能將私有的IaaS打造成為一個(gè)可伸縮的商業(yè)產(chǎn)品(sclable business)。
那問(wèn)題出在哪呢?這是因?yàn)镮aaS并不是云計(jì)算用戶(hù)的終極目標(biāo) - 至少在他們還有選擇的情況下不會(huì)是。高效運(yùn)維和可伸縮的基礎(chǔ)設(shè)施(scalable infrastructure)只是提高開(kāi)發(fā)者效率和商業(yè)敏捷性的途徑。對(duì)于CIO來(lái)講,一個(gè)投入大量資源開(kāi)發(fā)的項(xiàng)目卻只能達(dá)到一半的目標(biāo),這付出很難能看到什么回報(bào)。
這就是為什么私有云計(jì)算的未來(lái),在于立足于另外一個(gè)開(kāi)源平臺(tái) - Apache Mesos- 之上,并且以更加像一個(gè)PaaS平臺(tái)的面貌示人。這方案之所以行得通是因?yàn)樗匀痪哂羞\(yùn)維高效性的特點(diǎn),人們通常把這一點(diǎn)拿來(lái)作為兜售部署私有云時(shí)列舉的原因之一,但是這種以圍繞Mesos風(fēng)格的私有云真正可以奏效的原因是它能給開(kāi)發(fā)者帶來(lái)更快,更簡(jiǎn)單及更靈活的用戶(hù)體驗(yàn),而這才是云一直的核心。
你可能不會(huì)相信我的這些話(huà)。但你會(huì)相信Gartner的話(huà),相信 Twitter,Apple,Yelp,Hubspot,Autodesk,eBay,Ericsson,Capgemini以及其他已經(jīng)基于Mesos 打造出他們自己的功能完整且無(wú)比牢靠的私有PaaS系統(tǒng)的大公司的話(huà)。
為什么選擇私有PaaS而不是私有IaaS?
有一個(gè)很爭(zhēng)議的觀(guān)點(diǎn),把目光僅僅集中在可復(fù)制(replicating)的IaaS云平臺(tái),如AWS,是一個(gè)一開(kāi)始就錯(cuò)誤的想法。畢竟,AWS當(dāng)初引人注目是僅僅是因?yàn)閼{信用卡幾分鐘內(nèi)就可以使用,而不是因?yàn)樗雌饋?lái)是部署應(yīng)用最好或者最簡(jiǎn)單的方式。
下面是Gartner的VP和杰出分析師(Distinguished Analyst ) Thomas Bittman 對(duì)于私有PaaS的看法,這出自2014年10月的一篇有關(guān)于采用私有云技術(shù)時(shí)犯的最大的錯(cuò)誤的報(bào)告:
盡管大部分的私有云是IaaS,使用虛擬機(jī)來(lái)作為工作單元(unit of work),然后單純的IaaS的價(jià)值是有限的。即便是公有云IaaS提供商們也在他們IaaS功能的基礎(chǔ)上提供了不少額外功能,包括很多便于開(kāi)發(fā)者使用 的工具,用來(lái)準(zhǔn)備(provision)虛擬機(jī)和對(duì)虛擬機(jī)內(nèi)部進(jìn)行管理的工具,和越來(lái)越多的PaaS的服務(wù)。
...
有的應(yīng)用如果針對(duì)PaaS層進(jìn)行重寫(xiě)能提供更好的服務(wù),通過(guò)要求和共有云PaaS的協(xié)作,或是通過(guò)SaaS模型從一個(gè)對(duì)外的提供者來(lái)獲得的途徑。盡管,私有的PaaS仍然相對(duì)少見(jiàn),支撐私有PaaS的技術(shù)會(huì)日趨成熟 - 特別是對(duì)于云的混合模式而言。
實(shí)際上,它們正在慢慢成熟;因?yàn)檫@只是一個(gè)時(shí)間問(wèn)題。 一直以來(lái)都是開(kāi)發(fā)者推動(dòng)著云計(jì)算技術(shù)的采用。他們是AWS的第一批用戶(hù),因?yàn)槠渥屗麄儾挥脽┱?qǐng)IT的協(xié)助;他們是PaaS的第一批用戶(hù)(如早期的 Heroku),因?yàn)槠鋷椭麄兲与xAWS的復(fù)雜度;他們也是SaaS工具,如NewRelic的第一批用戶(hù),因?yàn)槠鋷椭麄儽O(jiān)控他們剛剛啟動(dòng)的云服務(wù)。
就如Marten Mickos,Eucalyptus Systems和前CEO和MySQL之前的CEO今年年初巧妙而簡(jiǎn)介的說(shuō):
"開(kāi)發(fā)者再也問(wèn)你要服務(wù)器了。他們甚至不問(wèn)你要一個(gè)LAMP套件(stack)。他們想要API。"
— M rten Mickos (@martenmickos)
2015年5月29日
很可能還要一些容器。
本質(zhì)上,開(kāi)發(fā)者想要把創(chuàng)建和部署新的應(yīng)用納入他們快速的代碼-部署-測(cè)試循環(huán)(code-deploy-test cycle)的一部分。如果你總是在等待IT準(zhǔn)備可靠的鏡像,那么持續(xù)交付,持續(xù)集成和微服務(wù)就永無(wú)可能。并且,坦白的講,開(kāi)發(fā)者不會(huì)關(guān)心在何處部署他們的應(yīng)用和服務(wù),只要這個(gè)部署過(guò)程比較容易。
這里就是IT和運(yùn)維,真正需要施展身手和改變世界的地方。通過(guò)選擇合適的軟件套裝(software stack)(假如至少是Mesos和Docker),聰明的CIO能滿(mǎn)足商業(yè)層的需求,如提高的資源利用率,降低用電開(kāi)銷(xiāo)以及減少宕機(jī)時(shí)間,同時(shí)保證提供快速靈活,符合開(kāi)發(fā)者需求的平臺(tái)。
基于Mesos構(gòu)建私有PaaS不僅僅是大勢(shì)所趨
對(duì)于很多Mesos的用戶(hù)來(lái)說(shuō),包括上面列舉的對(duì)公商業(yè)的公司,私有的PaaS是不僅僅是一個(gè)新興的技術(shù) - 它已經(jīng)站在了我們的面前。Mesos提供了服務(wù)器層面的調(diào)度和通常的資源管理能力和抽象(resource-management capabilities and abstractions),然后更高層次的工具如Marathon,Docker和其他一些自己開(kāi)發(fā)(并且通常開(kāi)源)的工具提升了開(kāi)發(fā)者的體驗(yàn)。
幾乎對(duì)于一個(gè)公司來(lái)說(shuō),基于Mesos的PaaS(Paas on Mesos)架構(gòu)已經(jīng)大大地提升在平臺(tái)上部署應(yīng)用的舒適度和速度。得益于Mesos,很多用戶(hù)終于能夠擁抱微服務(wù)的架構(gòu),甚至把玩新出現(xiàn)的大型數(shù)據(jù)框架,因?yàn)镸esos可以基于實(shí)際所需資源調(diào)度workload(工作量),并且支持在同一個(gè)集群里支持幾乎任何類(lèi)型的workload。
已經(jīng)有好幾個(gè)由大公司構(gòu)建的PaaS框架,方便運(yùn)行在Mesos(并且擴(kuò)展一點(diǎn)的說(shuō),DCOS)之上,并且已經(jīng)開(kāi)源。這些包括:
Marathon:由Mesosphere開(kāi)發(fā)和提供支持,并且其也預(yù)裝在我們的數(shù)據(jù)中心操作系統(tǒng)(DCOS)產(chǎn)品之上,Marathon被設(shè)計(jì)用來(lái)運(yùn)行需要長(zhǎng)時(shí)間不間斷運(yùn)行的服務(wù),并且通常作為PaaS環(huán)境中的那些Docker容器的部署環(huán)境。Marathon能處理資源分配,和運(yùn)行的服務(wù)可用性。
Apache Aurora:Aurora 最初是Twitter開(kāi)發(fā)用來(lái)作為PaaS類(lèi)型的層(PaaS-type layer)。Twitter很可能是世界上最大的Mesos用戶(hù),在數(shù)據(jù)中心成千上萬(wàn)的的節(jié)點(diǎn)上使用,現(xiàn)在用來(lái)管理公司很多核心服務(wù)所需要的資源。就如 Marathon,Aurora負(fù)責(zé)保證job即使在服務(wù)器宕機(jī)的情況下仍然能持續(xù)運(yùn)行。
Singularity:Singularity由在其對(duì)即將由Meso管理的AWS鏡像,針對(duì)占用大進(jìn)行重新架構(gòu)之后開(kāi)發(fā)的。 HubSpot把Singularity稱(chēng)為“箱子里的PaaS”,意思是其提供的抽象足以讓對(duì)Mesos不熟悉的人輕松啟動(dòng)job。
Deis:Engine Yard很多年一直是公共PaaS的首要提供者,最近他們發(fā)布了煥然一新的核心平臺(tái),通過(guò)Deis私有提供基于私有Docker的平臺(tái)強(qiáng)有力的支持。今年早些時(shí)候,Deis項(xiàng)目開(kāi)始集成Mesos。
Apollo:這是一個(gè)特別有意思的項(xiàng)目,因?yàn)樗怯勺畲蟮淖稍?xún)公司和系統(tǒng)集成商Capgemini開(kāi)發(fā),用來(lái)服務(wù)該公司的大客戶(hù)。Apollo使用了很多額外的組件,這包含Terraform和Packer,來(lái)讓用戶(hù)可以構(gòu)建私有的IaaS和私有的PaaS環(huán)境。
Ochothon:CAD的專(zhuān)家Autodesk最初創(chuàng)建了一個(gè)容器編排的層叫做Ochopod用來(lái)簡(jiǎn)化內(nèi)部的IT流程。并且Ochothon是一個(gè)設(shè)計(jì)用來(lái)運(yùn)行于Marathon之上的版本。當(dāng)公司趨向于以Mesos為中心的基礎(chǔ)設(shè)施,
Mesosphere將對(duì)開(kāi)源的支持往前又進(jìn)了一步,在DCOS添加了對(duì)其他容器編排和PaaS系統(tǒng)的集成支持,這些系統(tǒng)開(kāi)發(fā)的時(shí)候沒(méi)有考慮到 Mesos,但是仍然提供了很多好用的功能。這些包括Google領(lǐng)頭的Kubernetes項(xiàng)目,Docker的Swarm,Red Hat的OpenShift,和最后的Cloud Foundry。
也有其他很多基于Mesos的PaaS在過(guò)去的幾年自己開(kāi)發(fā)構(gòu)建的但沒(méi)有開(kāi)源,一些公開(kāi)討論過(guò)他們系統(tǒng)的公司包括:
Yelp:Yelp在Marathon的基礎(chǔ)上構(gòu)建了一個(gè)基于Docker的微服務(wù)架構(gòu),叫做 PaaSTa。它能在公司和AWS的機(jī)器的鏡像之間完成Docker容器自動(dòng)化部署和服務(wù)集成。PaaSTa和和相關(guān)的投入對(duì)于Yelp的持續(xù)部署環(huán)境至關(guān)重要,并且該公司現(xiàn)在每天需要啟動(dòng)超過(guò)一百萬(wàn)的容器來(lái)支持其代碼-測(cè)試(code-testing)的流程。
Apple:Apple 構(gòu)建了一個(gè)自己的Mesos調(diào)度器,名字叫J.A.R.V.I.S.(Just A Rather Very Intelligent Scheduler 一個(gè)有點(diǎn)相當(dāng)智能的調(diào)度器)。她在后端支撐了整個(gè)Siri的應(yīng)用。Mesos的集群遍布成千的節(jié)點(diǎn),讓開(kāi)發(fā)者可以更容易的部署組成Siri的單個(gè)服務(wù)。
eBay:對(duì)于eBay來(lái)說(shuō),目標(biāo)是從現(xiàn)有的(專(zhuān)有且基于VM的)持續(xù)化集成方案遷移到一個(gè)基于Mesos的方案。在他的方案中,每一個(gè)開(kāi)發(fā)者都分配有一個(gè)Jenkins的實(shí)例,用到的是Mesos和Marathon,Meso實(shí)際運(yùn)行在OpenStack的實(shí)例之上。
Ericsson:這位通訊巨頭使用Mesos和Marathon來(lái)作為一個(gè)PaaS系統(tǒng)的基礎(chǔ),可以用來(lái)支撐數(shù)據(jù)分析,并且全局的在數(shù)千個(gè)數(shù)據(jù)中心強(qiáng)制SLA。
DCOS讓PaaS更容易
然而盡管所有之前提到的案例都顯示Mesos可能帶來(lái)的各種美好的愿景,現(xiàn)實(shí)是不是每一個(gè)公司都有足夠的資源和熱情來(lái)構(gòu)建牢靠(mission-critical)且完全依賴(lài)開(kāi)源技術(shù)的系統(tǒng),假如要自己從頭做起就更難。
DCOS讓構(gòu)建一個(gè)私有的PaaS相對(duì)的簡(jiǎn)單了,因?yàn)槠涮峁┝艘獦?gòu)建一個(gè)PaaS所有必要的組件和原語(yǔ)(primitive),不管是在前置或者公有的云。DCOS提供了開(kāi)源的Mesos的所有功能,另外還有在UI/UX,SDK和商業(yè)支持方面一些重大的改善。
一個(gè)高層次的架構(gòu)是像下面這樣的:
其中的IaaS層在這里嚴(yán)格的指準(zhǔn)備(provision)和管理機(jī)器。他們可以是物理的機(jī)器,虛擬機(jī)或者是公有云主機(jī)的實(shí)例。DCOS中默認(rèn)的PaaS 服務(wù)是Marathon,這是一個(gè)開(kāi)源的由Mesosphere開(kāi)發(fā)的技術(shù)。然而,Yelp和其他公司都證明,Marathon也可以用來(lái)作為更加自定義化層的基礎(chǔ)-通常會(huì)牽涉到特定的用來(lái)配置運(yùn)行其上的容器的方法。
除了PaaS通常大家都知道的優(yōu)點(diǎn),DCOS也能讓部署混雜的云架構(gòu)(hybrid cloud architecture)變的容易-這意味著你的私有PaaS可以運(yùn)行在公有云之上。Workload的移植性是DCOS核心要保證的東西,因此將前置環(huán)境的一部分或者所有應(yīng)用遷移到公有云上(或者是方向相反的移動(dòng))會(huì)十分自然。資源都有同樣的抽象,用戶(hù)體驗(yàn)保持不變,而且代碼不需要改變。
今天商業(yè)的現(xiàn)實(shí)是商業(yè)要求快速改變,意味著對(duì)于IT基礎(chǔ)設(shè)施的和開(kāi)發(fā)者的需求都也在快速改變。很多公司一直都在小尋求把私有云作為讓后者與前者保持一致的方案,今天私有云終于開(kāi)始登上舞臺(tái)為自己代言。盡管其可能不是我們六年前想象其的樣子,但是這已經(jīng)沒(méi)有什么關(guān)系。
因?yàn)檫@一次,it works。