北京时间3月4日,Docker公司宣布收购Conductant公司,Conductant团队的几位成员Bill Farner、David Chung与John SIrois曾经各自在谷歌、Twitter与Zynga为生产系统的运营与规模化扩展做出了诸多关键性贡献,其中Bill还领导建立起Aurora项目。接下来,Bill、David与John将加入Docker公司的基础设施部门,并继续从事运维驱动型开发方案的构建工作。DockOne社区第一时间对官方博客进行了全文翻译。
每一位技术巨头的背后,都拥有着其堪称珠宝的创新型技术成果——毫无疑问,巨头希望对其严格保护以保证自身战略优势。但在Docker,我们认为自己的任务在于将这些技术成果集成至其它易于使用的工具当中,从而帮助人们更为顺畅地构建新型成果——具体来讲,这是一种技术的民主化发展进程。
我们构建的Linux容器技术正是其中一例,旨在令应用程序更具可移植特性。我们亦在Unikernel Systems团队的帮助下努力推动虚拟机管理程序与无核化方案的发展。今天,我们骄傲地宣布Docker已经正收购Conductant有限公司,并将以此为基础在这一方向上迈出新的发展步伐。
我以激动的心情迎接Conductant团队加入Docker大家庭。Bill Farner、David Chung与John SIrois曾经各自在谷歌、Twitter与Zynga为生产系统的运营与规模化扩展做出了诸多关键性贡献。其中Bill还领导建立起Aurora项目。作为一名运维工程师,众多卓越人才及其带来的宝贵经验即将成为Docker团队的一部分,这确实令我感到欢欣鼓舞。
Aurora是Apache Mesos集群化系统的一套高人气框架,其针对超大规模生产环境做出了一系列优化。Aurora被广泛认为是最具可扩展能力及运营能力的Mesos堆栈组成部分。Aurora也正是我们提出的运维驱动型开发(简称ODD)原则的一大典型代表。
Conductant团队的各位成员曾在谷歌、Twitter与Zynga运行并维护着世界上规模最大的几套云环境。在效力于这些技术巨头并管理其运维工作的过程中,他们开发出多种市面上尚不存在的重要工具。这样的思路与我们的原则高度契合,因为Docker本身正是团队运营超大规模云平台所积累下的经验产物。
Bill Farner在Twitter公司领导的团队构建Aurora以满足各类具体需求,包括实现大规模服务器农场自动化,从而保证只需少数经验丰富的运维工程师即可完成管理工作。目前可供选择的此类工具几乎很少经历如此规模的实战考验。虽然Mesos拥有多款商业发行版,但其中没有任何一款受到Aurora的启发。我们认为这实在是一种巨大的浪费。我们计划将Aurora中的各类卓越思维成果引入Docker Swarm,并正在尝试将Aurora作为Docker正式堆栈的可选组件之一。
而Aurora与Docker Swarm相结合还将带来另一种激动人心的可能性,即构建起一套强大的超大规模Web运营堆栈。Swarm的目标在于提供坚实的标准化方针,从而立足于任意基础设施通过任意规模对任意分布式应用程序进行部署。这意味着其能够成为全部应用程序规模化扩展工作中的理想标准基础层——从数据库到无状态Web工作程序,乃至科学计算以及大数据流水线方案。相比之下,Aurora针对服务于数千万用户的超大规模消费级应用做出了特定需求优化,并在开发过程中引入大量前沿架构与实现方法。
我们坚信在多数情况下,Docker Swarm与Aurora的集成堆栈能够将久经考验的Twitter运营模型切实交付至更多企业手中。当然,Aurora并不适合每一种应用场景,而且其仍将以可选项目形式供Docker用户使用。通常将这两套高人气开源基础设施项目进行交互,我们相信双方社区都将因此获得显著助益。
Bill、David与John将加入Docker公司的基础设施部门,并继续从事运维驱动型开发方案的构建工作。目前Docker Cloud正将容器部署至十余座数据中心,而Docker Hub则已经迎来超过20亿条pull,可以看到我们的规模化工作还有巨大提升空间!反过来,我们的运营经验也能够以Docker平台以及窗口即服务(简称CaaS)商业方案为载体反过来为整个社区提供助力。
下面是Conductant团队的博客翻译:
今天,我们自豪地宣布Conductant团队已经正式加盟Docker。大家可能对Conductant的名头并不熟悉,因为我们此前一直处于隐形运营模式。这支队伍由Bill Farner、David Chung以及John Sirois组成,我们分别来自谷歌、Twitter以及Zynga,而加入Docker的目的则希望改变用户构建、发布及运行代码的具体方式。为了达成这项目标,我们将Docker的构建与运作思路推广到大规模、关键型任务系统当中。我们会努力为大家带来更多激动人心的成果,敬请期待!
2009年,我离开谷歌并加入Twitter公司,随后很快意识到其缺少用于交付并运行微服务的基础设施与工具方案。这一切都令我对谷歌的Borg项目无比怀念,这款软件用于管理大规模计算机集群并保证负责构建系统与服务的工程师能够轻松进行访问。考虑到Twitter能够从类似的系统当中获得极大助益,我拿出六年时间带领一支出色的工程师队伍共同构建起了类似的基础设施。
在起步阶段,我们发现了一个正处于发展当中的软件项目,也就是由伯克利大学打造的Mesos——这是一套基础设施框架,用于构建分布式应用程序且能够实现远程主机与资源分配基础之上的任务执行能力。为了打造出符合预期的平台,我们做出复杂的决策以确立调度及编排方案,例如将用于支持各复杂请求——包括任务(例如批量与cron服务)、部署、配额、抢占以及延迟敏感型工作负载——的工作负载安置在哪里。我们的思路是利用Mesos实现资源调配与任务执行,从而建立起运维驱动型开发流程,最终设计并建立一套高层级业务流程系统,帮助Twitter解决各类谷歌需要依靠Borg搞定的难题。
我们拿出的开发成果正是Aurora——一套负责在大规模集群上运行Twitter工作负载的系统。Aurora负责对Twitter的微服务进行管理与规模伸缩,且每天由数千名工程师用于解决日常任务。Twitter公司于2013年将其作为Apache软件基金会旗下的Apache Aurora项目进行了开源,而我则担任Apache Aurora与Apache Mesos的项目管理委员会(简称PMC)主席。我骄傲地见证了两个项目的顺利发展与活跃表现,希望它们能够在未来继续保持强劲的发展势头。
在构建Aurora的过程中,我们专注于技术与组织的可扩展能力。技术指标(例如节点数量以及集群内的容器数量)通常可用于判断特定编排系统的可扩展水平。另一方面,组织可扩展性则反映出随着用户数量及工作负载强度的增加,该套系统表现出的可管理属性。组织扩展能力往往较于评估,但却能够给生产效率带来巨大影响。
在Twitter公司,我们要求Aurora在这两个方面皆有所建树。目前,Aurora管理着由数万台设备构建的多套集群,成百上千名工程师则利用它们开发并部署数百项服务。而在这一切的背后,运维团队只由三名成员构成。在Aurora的帮助下,Twitter的工程师们能够随意使用大量计算资源; 他们可以自由进行实验且不必担心系统容量、性能影响风险以及其它关键性服务稳定性等问题。Aurora不仅改进了运营效率,同时亦成为一套承载创新工作的平台。
2015年,David Chung和我联合建立了Conductant,这支队伍的主要任务是保证Aurora技术能够为不同规模的企业所使用。David此前曾拿出一年时间纸盒开发人员与生产环境之间的基础设施鸿沟,而所用到的经验则源自他在谷歌与Zynga的工作经历。John Sirois的加入标志着这支团队正式构建完成:John同样来自谷歌,同时亦是Twitter Aurora项目的元老工程师之一。在此之后,他还打造出了Pants开源构建系统。集三人之力,我们希望帮助企业得以快速发布代码并改进开发者生产效率,同时以不受现有运维团队规模影响的方式对基础设施及服务进行规模扩展。
我们建立Conductant的目的是帮助各类团队以轻松且高效的方式进行微服务部署与规模调整,这意味着他们将享受到长久以来只被少数互联网巨头所掌握的技术成果。相较于将项目在单一企业中使用,我们希望帮助更多应用开发团队克服种种现实障碍,成功将其应用成品部署并交付给数百万潜在用户。
为了实现这一点,我们必须重视一项堪称游戏规则改变者的重要技术因素——Docker。作为一套平台方案,Docker在我们立足于Mesos构建Aurora的过程中协助解决了一系列问题。Docker是一款面向开发者的工具,能够切实降低基础设施入门门槛。Docker Engine的逐步普及意味着任何运行在Docker之上的设备都可以进行编排——从裸机服务器到云端虚拟机,甚至Raspberry Pi亦被囊括于其中!
在观察与评估过程中,我们满怀激动之情构思出了一款立足于这套现代平台的编排引擎,并希望该方案能够以规模化方式管理Docker容器所容纳的各项微服务。Docker技术所遵循的指导性构建原则同谷歌Borg完全一致,具体包括可扩展性、生产效率以及运营效率等等。而且其能够提供的各项指标实现水平远远超越任何单一云服务供应商。
在与各合作伙伴进行交流时,我们有机会同Docker公司的Ben Golub及Solomon Hykes当面对话,旨在共享我们想到的、足以令全球开发人员更轻松对无数微服务进行部署与管理的办法。Docker的发展愿景在于让互联网整体拥有可编程特性,这项目标不仅令人着迷、亦给我们提出了严峻挑战。我们希望勾勒出新的世界,在那里代码能够在构思并编写完成后尽快投入运行,而Docker团队中也有着一群与我们抱着同样愿望的梦想家。我们乐于同Docker平台一道积累经验、大步向前,并帮助每一位开发人员及每一支运维团队轻松以任意规模立足任意平台进行代码的构建、发布与运行。