Apple 使用 Apache Mesos 重建 Siri 后端服务

  • Daniel Bryant
  • 韩陆

2015 年 6 月 4 日

话题:AppleDevOps语言 & 开发架构

苹果公司宣布,将使用开源的集群管理软件Apache Mesos,作为该公司广受欢迎的、基于 iOS 的智能个人助理软件Siri的后端服务。Mesosphere 的博客指出,苹果已经创建了一个命名为J.A.R.V.I.S.,类似 PaaS 的专有调度 Framework,由此,开发者可以部署可伸缩和高可用的的 Siri 服务。

集群管理软件Apache Mesos将 CPU、内存、存储介质以及其它计算机资源从物理机或者虚拟机中抽象出来,构建支持容错和弹性的分布式系统,并提供高效的运行能力。Mesos 使用与Linux 内核相同的系统构建原则,只是他们处在不同的抽象层次上。Mesos 内核运行在每台机器上,通过应用程序 Framework,提供跨整个数据中心和云环境进行资源管理和调度的API。苹果已经创建了自己专有的调度 Framework 以运行 Siri 的后端服务,将其命名为 J.A.R.V.I.S.。

J.A.R.V.I.S. 是“一种相当智能的调度器(Just A Rather Very Intelligent Scheduler)”的缩写,这个名字的灵感来自《钢铁侠》电影中的智能化计算机助手。苹果公司使用 J.A.R.V.I.S. 作为内部的平台即服务(PaaS)系统,使开发者编写的 Siri 后端应用程序可以部署为可伸缩性和弹性的服务,用于响应 iOS 用户通过个人助理应用程序请求的语音查询。

Mesosphere 的博客报道,在苹果公司总部加州库比蒂诺的聚会上,苹果的开发者表示,他们的 Mesos 集群有数千个节点。支持 Siri 应用程序的后台系统包括约 100 种不同类型的服务,应用程序的数据存储在Hadoop 分布式文件系统(HDFS)中。从基础设施的角度来看,使用 Mesos 有助于使 Siri 具备可伸缩性和可用性,并且还改善了 iOS 应用程序自身的延迟。

Mesos 后端是第三代 Siri 平台,告别了之前部署在“传统的”基础设施的历史。Mesosphere 博客认为,从概念上讲,苹果公司与 Mesos 的合作以及 J.A.R.V.I.S. 类似于 Google 的Borg项目,领先于其他支持长时间运行应用服务的类 PaaS Framework,比如Mesospere 数据中心操作系统(DCOS)的相关组件Mesosphere Marathon出自Twitter 基础设施团队的Apache Aurora

Mesosphere 高级研究分析师Derrick Harris在 Mesosphere 的博客中表示,关于 Siri 由 Apache Mesos 集群管理软件支撑的公告是对 Mesos 成熟度的证明:

苹果公司能够信任使用 Mesos 支撑 Siri——这是一个复杂的应用程序,用以处理只有苹果知道每天会有多少数量的、来自数以亿计的 iPhone 和 iPad 用户的语音查询—— 这足以说明 Mesos 的成熟度,Mesos 已经为各种类型的企业带来巨大影响做好了准备。

InfoQ 采访了 Mesosphere 高级副总裁Matt Trifiro,并询问了这项公告对正在考虑部署应用到 Mesos 的企业和软件开发者会有什么影响:

InfoQ:为什么苹果的这项公告对 Mesos 和 Mesosphere 很重要?

Trifiro:苹果公司宣布,他们完全重建了 Siri,以运行于 Mesos 之上。这再次表明,Mesosphere DCOS 中的分布式内核 Mesos,是编排大规模容器和构建新的分布式系统的黄金标准。

InfoQ:不是每家企业都能达到苹果公司的规模,那么传统企业怎样应用 Mesos 呢?

Trifiro:像苹果和 Twitter 这样的公司,几乎全部的基础设施都使用了这项技术。因为 Siri 和 Twitter 都依赖于 Mesos,可想而知,它必须是可靠的。但是,开源的 Apache Mesos 是一项非常尖端的技术,通过开源工具手工装配,并将 Mesos 用于生产环境是非常困难的。这正是 Mesosphere 产生的原因。任何公司都能使用这项久经考验的技术,构建完整的数据中心操作系统(DCOS),并具备和 Twitter 或者苹果公司同等的能力和自动化效果,而不必成为 Twitter 或者苹果那样大规模的公司。

InfoQ:苹果公司从 Mesos API 直接实现了一套调度器(J.A.R.V.I.S.),这意味着什么呢?

Trifiro:Mesos 最强大的方面其一就是,它提供了用于构建新的分布式系统的基本功能。如果你去看其它的分布式系统,比如早于 Mesos 出现的 Hadoop,它有几十万行代码,很多地方是在重复制造轮子。所有的失败处理、网络实现、消息传递和资源分配的代码,开发者不应重写这些功能。而为程序员提供了内置这些功能的 Mesos 内核的话,他们就可以快速构建新的高可用性和弹性分布式系统,而无需重复所有基本的功能。他们可以专注于业务逻辑的实现上。

InfoQ:Mesos 和 Mesosphere DCOS 之间是什么关系?

Trifiro:Mesosphere DCOS 是一种新型的操作系统,跨越数据中心或云环境中的所有机器,将他们的资源放到一个资源池中,使他们的行为整体上像一个大的计算机。Apache 的开源项目 Mesos 是这个操作系统里面的内核。我们将其和其他组件包装到一起,包括初始化系统(marathon)、文件系统(HDFS)、应用打包和部署系统、图形用户界面和命令行界面(CLI)。所有这些组件一起构成了 DCOS。这就像苹果公司的 Yosemite 操作系统或者像 Android,他们各有一个内核(分别是 BSD 和 Linux),他们为内核添加了系统服务和工具,使内核成为值得笔记本电脑或者智能手机使用的产品。我们为数据中心所做的工作也是相同的。

更多关于苹果公司宣布使用 Mesos 作为 Siri 后端服务的消息,详见Mesosphere 的博客

查看英文原文:Apple Rebuilds Siri Backend Services Using Apache Mesos


感谢邵思华对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

AppleDevOps语言 & 开发架构