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