【編者的話(huà)】本篇譯文將介紹基于Mesos的RogerOS。其已成為Moz工程技術(shù)發(fā)展的基礎(chǔ)锹安,并將開(kāi)發(fā)人員生產(chǎn)力與資源使用效率提升至新的高度琢感。數(shù)人云是國(guó)內(nèi)基于Mesos的云操作系統(tǒng)尖淘。在設(shè)計(jì)思路上萍摊,和RogerOS有著異曲同工之妙。同樣的思路山害,解決類(lèi)似的問(wèn)題纠俭,再次說(shuō)明Mesos是云操作系統(tǒng)(數(shù)據(jù)中心操作系統(tǒng))的內(nèi)核首選。
內(nèi)容簡(jiǎn)介
一年之前浪慌,我們?yōu)镸oz Engineering設(shè)立了一個(gè)新的平臺(tái)構(gòu)建項(xiàng)目冤荆。項(xiàng)目的目標(biāo)非常簡(jiǎn)單——打造下一代平臺(tái),將其作為Moz工程技術(shù)發(fā)展的基礎(chǔ)并將開(kāi)發(fā)人員生產(chǎn)力與資源使用效率提升至新的高度权纤。盡管目標(biāo)如此單純钓简,但實(shí)際操作起來(lái)卻困難重重。而今天的博文就將向大家展示我們?cè)谕七M(jìn)項(xiàng)目開(kāi)發(fā)當(dāng)中的心路歷程汹想。
背景情況
過(guò)去十年以來(lái)外邓,技術(shù)領(lǐng)域的發(fā)展變化可謂迅猛且影響深遠(yuǎn)。軟件創(chuàng)新已經(jīng)成為一股不可回避的浪潮欧宜,而且有越來(lái)越多行業(yè)開(kāi)始利用軟件作為其主要?jiǎng)?chuàng)新實(shí)現(xiàn)手段坐榆,這意味著軟件系統(tǒng)已經(jīng)在全球經(jīng)濟(jì)增速放緩的時(shí)代背景下逆流而上、繼續(xù)保持著可觀(guān)的發(fā)展進(jìn)度冗茸。
計(jì)算基礎(chǔ)設(shè)施在發(fā)展速度方面已經(jīng)將“迅猛”一詞作為常態(tài)席镀。我們也由以往的內(nèi)部、專(zhuān)有夏漱、耦合豪诲、單一性的平臺(tái)轉(zhuǎn)向開(kāi)源、分布式且松散耦合性質(zhì)的新環(huán)境挂绰。與此同時(shí)屎篱,世界的發(fā)展腳步也可謂一刻不肯停歇服赎。不過(guò)相比之下,基礎(chǔ)設(shè)施系統(tǒng)的更新周期往往無(wú)法同這種前進(jìn)節(jié)奏相匹配交播,這意味著對(duì)于大多數(shù)企業(yè)而言重虑,讓新型軟件同現(xiàn)有基礎(chǔ)設(shè)施進(jìn)行對(duì)接已經(jīng)成為運(yùn)營(yíng)工作當(dāng)中的核心挑戰(zhàn)之一。
在Moz公司秦士,我們當(dāng)然也遇到了同樣的難題缺厉。對(duì)產(chǎn)品核心進(jìn)行持續(xù)創(chuàng)新已經(jīng)成為我們?cè)贛oz的主要任務(wù),而我們的客戶(hù)也應(yīng)當(dāng)能夠享受到由此帶來(lái)的各類(lèi)成果隧土。不過(guò)正如在去年的一篇博文中所提到提针,我們的現(xiàn)有系統(tǒng)已經(jīng)處于負(fù)載能力的臨界點(diǎn)。其帶來(lái)的最為直觀(guān)的影響體現(xiàn)在我們的開(kāi)發(fā)速度領(lǐng)域曹傀。目前產(chǎn)品的迭代周期變得越來(lái)越長(zhǎng)辐脖,而工程師們則需要耗費(fèi)更多時(shí)間來(lái)打理整套系統(tǒng)。另外一些外部問(wèn)題也開(kāi)始凸顯皆愉,這意味著我們獲得嘗試新鮮技術(shù)成果所必需的原始資源開(kāi)始變得愈發(fā)困難嗜价。實(shí)驗(yàn)是創(chuàng)新的生命基礎(chǔ),而我們也希望能讓自己的工程師及產(chǎn)品經(jīng)理盡可能多地嘗試其新鮮想法亥啦。由于缺少對(duì)資源的支配空間炭剪,這就意味著整個(gè)團(tuán)隊(duì)需要繼續(xù)“堅(jiān)守”現(xiàn)有資源——即使其尚未得到充分利用——并在這一有限的范疇之內(nèi)滿(mǎn)足各類(lèi)潛在的未來(lái)需求。
對(duì)于我們的技術(shù)運(yùn)維團(tuán)隊(duì)而言翔脱,這項(xiàng)工作絕不簡(jiǎn)單。他們需要對(duì)數(shù)量驚人的各類(lèi)語(yǔ)言媒鼓、框架届吁、數(shù)據(jù)庫(kù)以及其它種種組件加以支持。從規(guī)劃的角度來(lái)看绿鸣,來(lái)自開(kāi)發(fā)團(tuán)隊(duì)的每一項(xiàng)資源請(qǐng)求都會(huì)成為運(yùn)維工作中既有資源使用習(xí)慣的恐怖噩夢(mèng)疚沐。舉例來(lái)講,某個(gè)團(tuán)隊(duì)可能需要大量?jī)?nèi)存與計(jì)算核心資源潮模,但卻無(wú)需使用規(guī)牧粱祝可觀(guān)的高速磁盤(pán)驅(qū)動(dòng)器——這樣的要求與傳統(tǒng)采購(gòu)習(xí)慣顯然完全背離。而且實(shí)際情況是擎厢,硬件采購(gòu)是個(gè)耗時(shí)極長(zhǎng)的過(guò)程——至少?gòu)能浖_(kāi)發(fā)周期的角度來(lái)衡量是這樣究流。雖然Amazon Web Services等按需平臺(tái)的出現(xiàn)能夠在很大程度上解決此類(lèi)難題,但著眼于Moz的業(yè)務(wù)規(guī)模动遭,運(yùn)行自己的硬件體系顯然更具成本效益芬探。而從運(yùn)維工作的角度出發(fā),理想的場(chǎng)景則是將采購(gòu)劃分成數(shù)個(gè)大規(guī)模批次厘惦,從而統(tǒng)一硬件規(guī)格與具體交貨日期偷仿。但這種作法顯然直接損害了開(kāi)發(fā)人員的實(shí)際要求,他們更希望能夠以頻繁且種類(lèi)各異的方式在極短的交貨周期之內(nèi)獲得自己需要的資源。
另外酝静,與初創(chuàng)企業(yè)不同节榜,我們沒(méi)有那種從零開(kāi)始的能力或者說(shuō)可能性空間。任何一套解決方案都必須能夠同時(shí)應(yīng)對(duì)新型開(kāi)發(fā)項(xiàng)目與傳統(tǒng)工作負(fù)載别智,且擁有足以適應(yīng)Moz未來(lái)需求的出色靈活性宗苍。
RogerOS
RogerOS正是我們?cè)诿鎸?duì)上述問(wèn)題時(shí)給出的答案。這一名稱(chēng)其實(shí)是種誤讀亿遂,因?yàn)槠涫聦?shí)上并不算是真正的操作系統(tǒng)浓若。不過(guò)它確實(shí)與操作系統(tǒng)存在著一定程度的相似之處。在開(kāi)發(fā)過(guò)程當(dāng)中蛇数,我們選擇了這個(gè)名稱(chēng)并認(rèn)為其完全能夠代表這套平臺(tái)的特性挪钓。開(kāi)發(fā)團(tuán)隊(duì)參考了ClusterOS(DCOS)之類(lèi)的項(xiàng)目。而且與桌面操作系統(tǒng)一樣耳舅,RogerOS也會(huì)對(duì)物理硬件進(jìn)行抽象化處理碌上,并在用戶(hù)面前體現(xiàn)為一套統(tǒng)一的高級(jí)界面——ClusterOS在數(shù)據(jù)中心或者設(shè)備集群當(dāng)中也扮演著同樣的角色,即對(duì)集群硬件加以抽象并提供一套特殊的高級(jí)界面浦徊。這種概念并不是什么新生事物馏予,類(lèi)似的系統(tǒng)也已經(jīng)擁有相當(dāng)長(zhǎng)的發(fā)展歷史。事實(shí)上盔性,RogerOS還從谷歌公司的Borg系統(tǒng)當(dāng)中汲取到了大量設(shè)計(jì)靈感霞丧。
以下幾個(gè)章節(jié)將詳細(xì)介紹這套系統(tǒng)的具體細(xì)節(jié)。
設(shè)計(jì)目標(biāo)
其實(shí)第二篇博文才負(fù)責(zé)對(duì)設(shè)計(jì)目標(biāo)的相關(guān)細(xì)節(jié)進(jìn)行說(shuō)明冕香,不過(guò)幸運(yùn)的是我們?cè)谶@里可以先對(duì)其加以總結(jié)蛹尝。我們希望能夠?yàn)殚_(kāi)發(fā)人員提供一套系統(tǒng),從而幫助他們:
*在五分鐘以?xún)?nèi)在筆記本設(shè)備上實(shí)現(xiàn)代碼運(yùn)行或者在數(shù)據(jù)中心內(nèi)啟動(dòng)原型設(shè)計(jì)悉尾。
*在一天之內(nèi)將能夠正常運(yùn)行的原型方案轉(zhuǎn)化為能夠接受一定程度外部流量的進(jìn)階版本突那。
*在一周之內(nèi)將以上進(jìn)階版本轉(zhuǎn)化為一套完全成熟的生產(chǎn)系統(tǒng)。
*能夠在十分鐘之內(nèi)完成新版本的部署工作构眯。
*不會(huì)對(duì)系統(tǒng)之上實(shí)際運(yùn)行的具體工作負(fù)載類(lèi)型做出限制愕难,這意味著其能夠徹底替代那些只能夠承載虛擬機(jī)、容器或者批量工作負(fù)載的傳統(tǒng)系統(tǒng)方案惫霸。
*盡可能多的專(zhuān)注于應(yīng)用程序代碼猫缭。這套系統(tǒng)應(yīng)該能夠?qū)\(yùn)行當(dāng)中的應(yīng)用程序進(jìn)行各類(lèi)必要處理,具體包括負(fù)載均衡它褪、監(jiān)控饵骨、日志記錄、故障處理以及規(guī)模伸縮等等茫打。
設(shè)計(jì)
RogerOS的核心為Apache Mesos居触⊙欤考慮到既定設(shè)計(jì)目標(biāo)以及對(duì)該系統(tǒng)的靈活性要求,Mesos可以說(shuō)是目前惟一合適的可選項(xiàng)目轮洋。不過(guò)Mesos的核心定位是一套通用型資源調(diào)度工具制市。要想真正實(shí)現(xiàn)RogerOS項(xiàng)目的既定目標(biāo),我們需要圍繞Mesos建立起完整的生態(tài)系統(tǒng)弊予。Mesos在以下架構(gòu)示意圖當(dāng)中對(duì)應(yīng)的是“ClusterOS Kernel”祥楣。
上圖展示的是完整架構(gòu)。正如我們提到汉柒,從核心角度來(lái)看误褪,RogerOS采用Mesos調(diào)度機(jī)制,但同時(shí)又整合進(jìn)大量協(xié)同服務(wù)并與之緊密集成碾褂。本系列博文的第二篇對(duì)這些設(shè)計(jì)細(xì)節(jié)做出了進(jìn)一步說(shuō)明兽间。
使用體驗(yàn)
通過(guò)以上敘述大家應(yīng)該能夠想見(jiàn),RogerOS是一款非常復(fù)雜的系統(tǒng)正塌,而且已經(jīng)經(jīng)歷了相當(dāng)長(zhǎng)的開(kāi)發(fā)周期嘀略。在著手構(gòu)建之初,我們其實(shí)并不太確定選擇Mesos作為系統(tǒng)核心是否正確乓诽。當(dāng)時(shí)我們已經(jīng)通過(guò)實(shí)踐證明了Mesos的適用性帜羊,不過(guò)其在Moz這類(lèi)混合型環(huán)境下的表現(xiàn)卻讓我們有點(diǎn)擔(dān)心。不過(guò)幸運(yùn)的是鸠天,我們最終還是選擇了Mesos讼育,這一決定讓我們至今都相當(dāng)自豪。其不僅實(shí)現(xiàn)了既定承諾稠集,還為我們帶來(lái)更多驚喜窥淆。事實(shí)上,我們?cè)谙到y(tǒng)穩(wěn)定性巍杈、可擴(kuò)展性以及性能表現(xiàn)方面都沒(méi)有遇到任何問(wèn)題。另外扛伍,Mesos還允許我們利用一小部分開(kāi)發(fā)資源分步實(shí)現(xiàn)目標(biāo)筷畦。目前,一套小型設(shè)備集群已經(jīng)足以為Moz運(yùn)行多種應(yīng)用程序刺洒。關(guān)于這方面內(nèi)容的具體細(xì)節(jié)鳖宾,還請(qǐng)大家參閱本系列的第二篇博文。
開(kāi)發(fā)人員對(duì)這套系統(tǒng)的反饋也相當(dāng)積極逆航。Moz Content項(xiàng)目就是從零開(kāi)始在RogerOS之上打造而成的鼎文,開(kāi)發(fā)團(tuán)隊(duì)對(duì)于這套平臺(tái)給出了極高評(píng)價(jià)。具體來(lái)講因俐,通過(guò)硬件抽象與高級(jí)服務(wù)交付拇惋,RogerOS能夠讓開(kāi)發(fā)團(tuán)隊(duì)將精力集中在對(duì)產(chǎn)品本身的琢磨之上周偎。另外,除了各類(lèi)新產(chǎn)品之外撑帖,相當(dāng)一部分傳統(tǒng)產(chǎn)品也已經(jīng)能夠在這套系統(tǒng)當(dāng)中成功運(yùn)行蓉坎。
總結(jié)
總體而言,RogerOS已經(jīng)成為Moz一個(gè)極具野心的項(xiàng)目胡嘿,而且其能夠滿(mǎn)足很大一部分我們?cè)诹㈨?xiàng)之初為其設(shè)定的發(fā)展目標(biāo)蛉艾。當(dāng)然,發(fā)展完善的道路仍然漫長(zhǎng)衷敌,但我們對(duì)于目前獲得的成果感到相當(dāng)滿(mǎn)意勿侯!
另外同樣重要的是,我們要向各位為當(dāng)前成果做出貢獻(xiàn)的參與者表示感謝:Jord Sonneveld缴罗、Manish Ranjan助琐、Amit Bose、Chris Whitten瞒爬、Josh Gummersal弓柱、Evan Battaglia、Tyler Murray以及整個(gè)Moz Content團(tuán)隊(duì)侧但,謝謝你們矢空!沒(méi)有你們的參與,RogerOS根本不可能實(shí)現(xiàn)如今的成就禀横。
點(diǎn)擊查看英文原文
對(duì)RogerOS的詳細(xì)技術(shù)架構(gòu)感興趣屁药?關(guān)注我們,本周會(huì)推出第二篇文章柏锄,為您詳細(xì)介紹RogerOS酿箭。