译 | SINGULARITY破晓:回顾HUBSPOT在MESOS中的首年表现

【编者的话】 HubSpot是营销自动化领域的独角兽。其技术团队基于Mesos打造了一套开源系统SINGULARITY。期间发现Mesos对Hubspot的最大好处是能够将其数据中心中的众多设备抽象化为了一台大型计算机,便于资源的共享和动态分配。借用Hubspot的一句话来说明Mesos的价值:我们将过去的一年总结为“一切应用归于Mesos”,那么在新的一年中,我们的座右铭也许可以汇总成“剩下的一切也归于Mesos”。

Hubspot拥有庞大数量的应用服务组件

HubSpot是一套面向企业的市场营销与销售平台,且几乎能够承载一切工作类型——从博客到分析再到客户关系管理通通不在话下。这款产品拥有可观的面向范畴,也因此包含多种独立的可移动组件:约170个单页面Web应用、300项RESTful Web服务、380种后台工作程序、260个cron任务以及400种一次性任务,且全部可以独立方式加以部署。

我们的HubSpot开发团队始终以速度为优先考量。开发人员每天需要完成近300次相关操作,具体涵盖代码提交、变更测试以及生产环境部署。这在很大程度上要归功于我们的平台即服务(简称PaaS)团队,他们的优先目标在于找到相关途径并借此减少开发人员可能遇到的障碍及摩擦。我们在过去一年当中凭借着将越来越多工作负载运行在Mesos——以及我们自主研发的Singularity PaaS方案——之上而获得了巨大收益,同时也给我们的软件、堆栈乃至文化带来了可喜的影响。

当人们问起Mesos给HubSpot带来怎样的切实助益时,他们预期的答案往往是“节约成本”或者“实现自动规模伸缩”之类的结论。诚然,这些都是切实存在的助益;我们节约了可观的资金,因为Mesos允许我们在大型设备之上承载密度更高的工作负载。另外,只需要几次简单点击,我们就能够对任意服务的容量规模进行扩展或者缩减。然而,Mesos的最大助益在于为我们带来了理想的便捷性——具体来讲,它能够将我们数据中心之内的众多设备抽象化为一台大型计算机。

采用Mesos之前的状态

在采用Mesos之前,我们的基础设施需要大量人为因素进行干预。无论是对新设备加以配置还是替换原有硬件都以全人工且容易出错的方式进行。作为传统层面的功能堆栈拥有者,因为托管其服务的设备出现了突发故障,开发人员们往往需要加班加点进行抢修。当然,我们也遭遇过一些单点故障状况,例如开发人员将所有cron任务运行在同一台设备之上。当这些“cron”设备发生问题,随之而来的更换与重新部署工作绝对令人头痛欲裂。

我们的基础设施在透明性方面做得也不够好。我们当然拥有良好的用于警示目的的遥测数据分析机制(例如服务标准与运行状态检查),但开发人员要想从他们的服务当中提取数据(例如提取转储记录或者上周的全部服务日志),则必须以手动方式查询每台设备——这自然带来了可怕的时间浪费。很明显,我们需要一套更简单且更安全的解决方案,使得开发人员能够轻松访问其服务的相关数据,同时又不至于对其它服务造成影响。

步入Singularity的世界

我们转向Mesos的理由是让我们的开发人员能够真正从事其所擅长的工作:编写软件,而不必对隐藏在引擎盖之下的HubSpot技术堆栈各个层面拥有全面理解。当我们踏上这段Mesos之旅时,我们首先以调查性方式尝试将Chronos(负责处理cron任务)与Marathon(负责处理Web服务与后台工作程序)纳入部署流程。而Singularity这一名称也因此而来(意为奇异点)——其初始设计目的在于充当一套Mesos框架以处理一次性任务,当时Chronos与Marathon还不具备此类支持能力。

我们最终决定放弃这条初始设计路线,转而将Singularity转化为一套更像是“开箱式PaaS”的解决方案。这意味着它只是单独一项服务,能够处理数据中心之内的大部分常见工作负载类型。大家可以将它视为一种面向数据中心的打包Heroku。

我们还为Singularity开发出了其它一些独特的功能,旨在应对现实世界中的具体需要:

  • 能够通过“退役”机制正常中止运行在Mesos从节点上的全部任务(即将以反向启发方式在Apache Mesos当中出现)。
  • 能够在任意Mesos cgroup之外操作的人工下载服务。虽然有些反直觉,但这确实是在某些内核遭遇高磁盘I/O时非常有效的OOM中止手段。
  • 这是第一项尝试对超出对应内存分配区任务进行顺畅关停的出色OOM关闭服务。
  • 这也是一项通用型S3上传服务,能够处理长期日志记录以及与任务相关的其它数据存储操作。
  • 一款自定义执行工具,能够面向任务提供强化报告与日志回旋。

重启与恢复

Mesos能够对设备加以抽象,从而轻松应对2014年发生的Amazon“大规模重启”事件。尽管很多其它企业(也包括HubSpot内部的一些未使用Mesos基础设施的团队)都希望抢在自动重启之前对受影响实例进行更换,我们的PaaS团队则选择了启动新Mesos从节点并让受影响设备进行“退役”的作法。Singularity能够自动将进程迁移至正常运行的设备之上,这就意味着我们的开发人员能够继续正常完全日常工作——而不会遭遇到任何故障。
他们无需面临任何停机时间,也根本不知道曾经出现过这次差点给其造成重大影响的灾难。

Singularity这种可以快速对服务规模进行伸缩调整的能力已经多次发挥了作用。有时候,其负责应对预期当中的流量峰值,例如当我们的某位客户出现在《创智赢家》节目当中时。也有些时候,其负责响应我们后端服务所遇到的巨大压力,例如当规模可观的批量邮件一次性排入队列的状况。

在拥抱Mesos之前,这些应对举措需要耗时数十分钟。但如今整个过程只需要几十秒,这意味着我们的平均恢复时间得到了大幅改善。

自诞生之时即选择开源

Singularity之所以成为HubSpot基础设施核心体系中的独特组成部分,是因为它从诞生之日起就坚持走开源路线。如今,包括Groupon、Opentable以及EverTrue等在内的企业都开始使用Singularity,而我们的团队则在使用这款框架的同时为其添加更多实际价值。我们会强化组件、构建功能并在其给其它企业造成大麻烦之前进行漏洞排查。

它已经成为Mesos生态系统当中极具价值的闪亮新星。它不仅能够改进我们的现有基础设施,而且能够在不知不觉当中帮助其它企业拥有更为轻松愉快的日常运营状态。

下一步,我们的目标是将HubSpot基础设施当中的其它新组件迁移到Mesos当中,从而进一步扩大当前已经享受到的种种助益。其中包括Memcache、Kafka、Spark、Hadoop以及MySQL。如果我们将过去的一年总结为“一切应用归于Mesos”,那么在新的一年中,我们的座右铭也许可以汇总成“剩下的一切也归于Mesos”。当然,在数人云上可以快速部署Spark,Kafka,Hadoop …… ,一起努力让一切归于Mesos,归于云操作系统。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,711评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,932评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,770评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,799评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,697评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,069评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,535评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,200评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,353评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,290评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,331评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,020评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,610评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,694评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,927评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,330评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,904评论 2 341

推荐阅读更多精彩内容