“回顾过去,我认为 Mesos 的失败是种必然。”

4 月 7 日,Apache 宣布开始投票进程,准备将曾火极一时的 Mesos 项目移至Attic下,保存为“只读”状态。Attic 是 Apache 软件基金会为已终止项目提供的一种解决方案,此举意味着 Mesos 正式进入项目“退休”阶段。

Mesos 诞生于 2009 年,最初是伯克利大学的一个研究项目。它曾为分布式资源管理做出过一系列前沿贡献,据 Mesosphere/D2IQ 联合创始人回忆,“我们提出的 Mesos 是一套可跨越多个不同集群计算框架(类似于 Hadoop 与 MPI)实现商用集群共享的平台。”它的诞生甚至比 YARN 还早了几年,并于 2010 年很快被应用到 Twitter,成为 Twitter 自定义 PaaS 的实现基础,管理着 Twitter 超过 30,0000 台服务器上的应用部署。随后其他公司纷至沓来,比如 Airbnb、eBay 和 Netflix 等等,Mesos 也因此火极一时。

但很遗憾的是,现在已经到了它退役的时候。不过短短数年,我们再次见证了一个知名技术项目的兴起和衰落。

响应时代的召唤

Mesos 项目跟起源于 Google 的数据中心资源管理系统 Borg 一样,目的是弄清楚是否必须重建 Google 的超大规模计算专有架构。

同时,作为世界上最成功的社交媒体巨头之一,创立于 2006 年的 Twitter 也以其庞大的生产集群规模(万级别节点)而备受关注。Twitter 每天需要管理几亿条推文,急需开发一个类似的资源管理系统来帮助他们摆脱可怕的“失败之鲸”(如上图所示)。后来他们注意到加州大学伯克利分校 AMPLab 正在开发的名为 Mesos 的项目,这个项目的负责人是 Ben Hindman,Ben 是加州大学伯克利分校的博士研究生。后来 Ben Hindman 加入了 Twitter,负责开发和部署 Mesos。

Mesos 的两级调度架构很好的解决了 Twitter 面临的可伸缩性和性能上的挑战,“失败之鲸”逐渐成为往事。Twitter 的这个 PaaS 平台解决方案,后来以 Apache Aurora 的名号转为开源。

在海量数据的挑战下,Twitter 基础设施架构的演进过程,一直以来都是全世界技术公司眼中的标杆案例。在 2010 年之后,大量企业跟进了 Mesos,包括 Uber、Airbnb、eBay、Netflix,以及国内的携程、去哪儿等一众企业。

可能是计算机历史上最短的技术战争

Mesos 的创造者 Ben Hindman 等于 2013 年建立了名叫 Mesosphere 的初创公司,旨在打造一套生产级商业化 Mesos 平台。最终成果是一套名为 DC/OS(数据中心操作系统)的管理平台,号称将成为集群服务器的主控系统。他们还打造了 Marathon,这款工作负载编排平台明显是将 Kubernetes 设定成了竞争对手。Mesosphere 的目标是将数据中心改造成具有凝聚力的计算复合体,并在中心内部提供一套新型运营环境。

但谁也没想到,几年后 Docker 成为了改变游戏规则的人。在 2015 年的短短几个月里,Docker 公司凭借一款非凡的新型工具彻底颠覆了服务器工作负载自动化市场。从那时起,数据中心基础设施不再单纯侧重于服务器,而是以工作负载为中心——强调负载的可移植性、灵活性与安全完整性。

2015 年 6 月 22 日,作为回馈开源社区热情支持的一份谢礼,Docker 将基于 Linux 的软件容器包装格式捐赠给 Linux 基金会,并正式定名为开放容器倡议(OCI)。但就在同一周,谷歌闪电出手,将 Kubernetes 项目的管理权移交给了另一个 Linux 基金会项目:云原生计算基金会(CNCF)。

之后,Docker 公司当初想培养的这片市场就已经被很多人称为“Kubernetes 生态系统”。在当时的工作流编排领域,主要有三家竞争参与者:Kubernetes,也源自谷歌内部原名为“Borg”的项目;Docker Swarm,已经开始与商业 Docker Enterprise 产品共同交付的集群管理器;Apache Mesos,用于“非镜像工作负载”(包括 Hadoop 与 Spark 大数据系统等)的服务器集群调度与管理方案。

起初,Mesos 代理负责在各组件之间分配工作负载。但不久之后,Kubernetes 也在这一领域有所建树。Mesosphere 的一部分技术人员认为这两款编排工具完全可以并行存在,也有人觉得可以把 Kubernetes 环境作为 Mesos 模板的工作场景。

但想象总是美好的。

面对 Kubernetes 无可匹敌的市场优势地位,仅仅两年,Kuberneters 就胜局已定。经历了计算发展史上最“高效”的对抗之后,Docker 与 Mesosphere 也只能认怂、转而寻求新的发展方向。