譯 | SINGULARITY破曉:回顧HUBSPOT在MESOS中的首年表現(xiàn)

【編者的話】 HubSpot是營銷自動化領(lǐng)域的獨角獸。其技術(shù)團隊基于Mesos打造了一套開源系統(tǒng)SINGULARITY弹谁。期間發(fā)現(xiàn)Mesos對Hubspot的最大好處是能夠?qū)⑵鋽?shù)據(jù)中心中的眾多設(shè)備抽象化為了一臺大型計算機干茉,便于資源的共享和動態(tài)分配习霹。借用Hubspot的一句話來說明Mesos的價值:我們將過去的一年總結(jié)為“一切應(yīng)用歸于Mesos”育瓜,那么在新的一年中浊服,我們的座右銘也許可以匯總成“剩下的一切也歸于Mesos”崖瞭。

Hubspot擁有龐大數(shù)量的應(yīng)用服務(wù)組件

HubSpot是一套面向企業(yè)的市場營銷與銷售平臺狂巢,且?guī)缀跄軌虺休d一切工作類型——從博客到分析再到客戶關(guān)系管理通通不在話下。這款產(chǎn)品擁有可觀的面向范疇书聚,也因此包含多種獨立的可移動組件:約170個單頁面Web應(yīng)用唧领、300項RESTful Web服務(wù)、380種后臺工作程序雌续、260個cron任務(wù)以及400種一次性任務(wù)斩个,且全部可以獨立方式加以部署。

我們的HubSpot開發(fā)團隊始終以速度為優(yōu)先考量驯杜。開發(fā)人員每天需要完成近300次相關(guān)操作受啥,具體涵蓋代碼提交、變更測試以及生產(chǎn)環(huán)境部署鸽心。這在很大程度上要歸功于我們的平臺即服務(wù)(簡稱PaaS)團隊滚局,他們的優(yōu)先目標(biāo)在于找到相關(guān)途徑并借此減少開發(fā)人員可能遇到的障礙及摩擦。我們在過去一年當(dāng)中憑借著將越來越多工作負載運行在Mesos——以及我們自主研發(fā)的Singularity PaaS方案——之上而獲得了巨大收益顽频,同時也給我們的軟件藤肢、堆棧乃至文化帶來了可喜的影響。

當(dāng)人們問起Mesos給HubSpot帶來怎樣的切實助益時糯景,他們預(yù)期的答案往往是“節(jié)約成本”或者“實現(xiàn)自動規(guī)模伸縮”之類的結(jié)論嘁圈。誠然省骂,這些都是切實存在的助益;我們節(jié)約了可觀的資金最住,因為Mesos允許我們在大型設(shè)備之上承載密度更高的工作負載冀宴。另外,只需要幾次簡單點擊温学,我們就能夠?qū)θ我夥?wù)的容量規(guī)模進行擴展或者縮減略贮。然而,Mesos的最大助益在于為我們帶來了理想的便捷性——具體來講仗岖,它能夠?qū)⑽覀償?shù)據(jù)中心之內(nèi)的眾多設(shè)備抽象化為一臺大型計算機逃延。

采用Mesos之前的狀態(tài)

在采用Mesos之前,我們的基礎(chǔ)設(shè)施需要大量人為因素進行干預(yù)轧拄。無論是對新設(shè)備加以配置還是替換原有硬件都以全人工且容易出錯的方式進行揽祥。作為傳統(tǒng)層面的功能堆棧擁有者,因為托管其服務(wù)的設(shè)備出現(xiàn)了突發(fā)故障檩电,開發(fā)人員們往往需要加班加點進行搶修拄丰。當(dāng)然,我們也遭遇過一些單點故障狀況俐末,例如開發(fā)人員將所有cron任務(wù)運行在同一臺設(shè)備之上料按。當(dāng)這些“cron”設(shè)備發(fā)生問題,隨之而來的更換與重新部署工作絕對令人頭痛欲裂卓箫。

我們的基礎(chǔ)設(shè)施在透明性方面做得也不夠好载矿。我們當(dāng)然擁有良好的用于警示目的的遙測數(shù)據(jù)分析機制(例如服務(wù)標(biāo)準(zhǔn)與運行狀態(tài)檢查),但開發(fā)人員要想從他們的服務(wù)當(dāng)中提取數(shù)據(jù)(例如提取轉(zhuǎn)儲記錄或者上周的全部服務(wù)日志)烹卒,則必須以手動方式查詢每臺設(shè)備——這自然帶來了可怕的時間浪費闷盔。很明顯,我們需要一套更簡單且更安全的解決方案旅急,使得開發(fā)人員能夠輕松訪問其服務(wù)的相關(guān)數(shù)據(jù)逢勾,同時又不至于對其它服務(wù)造成影響。

步入Singularity的世界

我們轉(zhuǎn)向Mesos的理由是讓我們的開發(fā)人員能夠真正從事其所擅長的工作:編寫軟件,而不必對隱藏在引擎蓋之下的HubSpot技術(shù)堆棧各個層面擁有全面理解。當(dāng)我們踏上這段Mesos之旅時,我們首先以調(diào)查性方式嘗試將Chronos(負責(zé)處理cron任務(wù))與Marathon(負責(zé)處理Web服務(wù)與后臺工作程序)納入部署流程。而Singularity這一名稱也因此而來(意為奇異點)——其初始設(shè)計目的在于充當(dāng)一套Mesos框架以處理一次性任務(wù)妹蔽,當(dāng)時Chronos與Marathon還不具備此類支持能力。

我們最終決定放棄這條初始設(shè)計路線明棍,轉(zhuǎn)而將Singularity轉(zhuǎn)化為一套更像是“開箱式PaaS”的解決方案倡缠。這意味著它只是單獨一項服務(wù),能夠處理數(shù)據(jù)中心之內(nèi)的大部分常見工作負載類型迫皱。大家可以將它視為一種面向數(shù)據(jù)中心的打包Heroku歉闰。

我們還為Singularity開發(fā)出了其它一些獨特的功能辖众,旨在應(yīng)對現(xiàn)實世界中的具體需要:

  • 能夠通過“退役”機制正常中止運行在Mesos從節(jié)點上的全部任務(wù)(即將以反向啟發(fā)方式在Apache Mesos當(dāng)中出現(xiàn))。
  • 能夠在任意Mesos cgroup之外操作的人工下載服務(wù)和敬。雖然有些反直覺凹炸,但這確實是在某些內(nèi)核遭遇高磁盤I/O時非常有效的OOM中止手段。
  • 這是第一項嘗試對超出對應(yīng)內(nèi)存分配區(qū)任務(wù)進行順暢關(guān)停的出色OOM關(guān)閉服務(wù)昼弟。
  • 這也是一項通用型S3上傳服務(wù)啤它,能夠處理長期日志記錄以及與任務(wù)相關(guān)的其它數(shù)據(jù)存儲操作。
  • 一款自定義執(zhí)行工具舱痘,能夠面向任務(wù)提供強化報告與日志回旋变骡。

重啟與恢復(fù)

Mesos能夠?qū)υO(shè)備加以抽象,從而輕松應(yīng)對2014年發(fā)生的Amazon“大規(guī)模重啟”事件芭逝。盡管很多其它企業(yè)(也包括HubSpot內(nèi)部的一些未使用Mesos基礎(chǔ)設(shè)施的團隊)都希望搶在自動重啟之前對受影響實例進行更換塌碌,我們的PaaS團隊則選擇了啟動新Mesos從節(jié)點并讓受影響設(shè)備進行“退役”的作法。Singularity能夠自動將進程遷移至正常運行的設(shè)備之上旬盯,這就意味著我們的開發(fā)人員能夠繼續(xù)正常完全日常工作——而不會遭遇到任何故障台妆。
他們無需面臨任何停機時間,也根本不知道曾經(jīng)出現(xiàn)過這次差點給其造成重大影響的災(zāi)難胖翰。

Singularity這種可以快速對服務(wù)規(guī)模進行伸縮調(diào)整的能力已經(jīng)多次發(fā)揮了作用接剩。有時候,其負責(zé)應(yīng)對預(yù)期當(dāng)中的流量峰值萨咳,例如當(dāng)我們的某位客戶出現(xiàn)在《創(chuàng)智贏家》節(jié)目當(dāng)中時搂漠。也有些時候,其負責(zé)響應(yīng)我們后端服務(wù)所遇到的巨大壓力某弦,例如當(dāng)規(guī)耐┨溃可觀的批量郵件一次性排入隊列的狀況。

在擁抱Mesos之前靶壮,這些應(yīng)對舉措需要耗時數(shù)十分鐘怔毛。但如今整個過程只需要幾十秒,這意味著我們的平均恢復(fù)時間得到了大幅改善腾降。

自誕生之時即選擇開源

Singularity之所以成為HubSpot基礎(chǔ)設(shè)施核心體系中的獨特組成部分拣度,是因為它從誕生之日起就堅持走開源路線。如今螃壤,包括Groupon抗果、Opentable以及EverTrue等在內(nèi)的企業(yè)都開始使用Singularity,而我們的團隊則在使用這款框架的同時為其添加更多實際價值奸晴。我們會強化組件冤馏、構(gòu)建功能并在其給其它企業(yè)造成大麻煩之前進行漏洞排查。

它已經(jīng)成為Mesos生態(tài)系統(tǒng)當(dāng)中極具價值的閃亮新星寄啼。它不僅能夠改進我們的現(xiàn)有基礎(chǔ)設(shè)施逮光,而且能夠在不知不覺當(dāng)中幫助其它企業(yè)擁有更為輕松愉快的日常運營狀態(tài)代箭。

下一步,我們的目標(biāo)是將HubSpot基礎(chǔ)設(shè)施當(dāng)中的其它新組件遷移到Mesos當(dāng)中涕刚,從而進一步擴大當(dāng)前已經(jīng)享受到的種種助益嗡综。其中包括Memcache、Kafka杜漠、Spark极景、Hadoop以及MySQL。如果我們將過去的一年總結(jié)為“一切應(yīng)用歸于Mesos”驾茴,那么在新的一年中戴陡,我們的座右銘也許可以匯總成“剩下的一切也歸于Mesos”。當(dāng)然沟涨,在數(shù)人云上可以快速部署Spark恤批,Kafka,Hadoop …… 裹赴,一起努力讓一切歸于Mesos喜庞,歸于云操作系統(tǒng)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末棋返,一起剝皮案震驚了整個濱河市延都,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌睛竣,老刑警劉巖晰房,帶你破解...
    沈念sama閱讀 219,427評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異射沟,居然都是意外死亡殊者,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評論 3 395
  • 文/潘曉璐 我一進店門验夯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來猖吴,“玉大人,你說我怎么就攤上這事挥转『1危” “怎么了?”我有些...
    開封第一講書人閱讀 165,747評論 0 356
  • 文/不壞的土叔 我叫張陵绑谣,是天一觀的道長党窜。 經(jīng)常有香客問我,道長借宵,這世上最難降的妖魔是什么幌衣? 我笑而不...
    開封第一講書人閱讀 58,939評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮暇务,結(jié)果婚禮上泼掠,老公的妹妹穿的比我還像新娘怔软。我一直安慰自己垦细,他們只是感情好择镇,可當(dāng)我...
    茶點故事閱讀 67,955評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著括改,像睡著了一般腻豌。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上嘱能,一...
    開封第一講書人閱讀 51,737評論 1 305
  • 那天吝梅,我揣著相機與錄音,去河邊找鬼惹骂。 笑死苏携,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的对粪。 我是一名探鬼主播右冻,決...
    沈念sama閱讀 40,448評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼著拭!你這毒婦竟也來了纱扭?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,352評論 0 276
  • 序言:老撾萬榮一對情侶失蹤儡遮,失蹤者是張志新(化名)和其女友劉穎乳蛾,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鄙币,經(jīng)...
    沈念sama閱讀 45,834評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡肃叶,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,992評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了十嘿。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片被环。...
    茶點故事閱讀 40,133評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖详幽,靈堂內(nèi)的尸體忽然破棺而出筛欢,到底是詐尸還是另有隱情,我是刑警寧澤唇聘,帶...
    沈念sama閱讀 35,815評論 5 346
  • 正文 年R本政府宣布版姑,位于F島的核電站,受9級特大地震影響迟郎,放射性物質(zhì)發(fā)生泄漏剥险。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,477評論 3 331
  • 文/蒙蒙 一宪肖、第九天 我趴在偏房一處隱蔽的房頂上張望表制。 院中可真熱鬧健爬,春花似錦、人聲如沸么介。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽壤短。三九已至设拟,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間久脯,已是汗流浹背纳胧。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留帘撰,地道東北人跑慕。 一個月前我還...
    沈念sama閱讀 48,398評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像摧找,于是被迫代替她去往敵國和親核行。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,077評論 2 355

推薦閱讀更多精彩內(nèi)容