苹果公司宣布,将使用开源的集群管理软件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),他们为内核添加了系统服务和工具,使内核成为值得笔记本电脑或者智能手机使用的产品。我们为数据中心所做的工作也是相同的。

Apple使用Apache Mesos重建Siri后端服务的更多相关文章

  1. 使用Apache Mesos和Consul实现服务的注册发现

    为保证基于Docker应用程序和服务都具有高性能和可用性,设计出一种具有服务发现,高可用性和容错能力的解决方案非常重要. 我们使用Apache Mesos 和Mesosphere的 Marathon实 ...

  2. Docker vs. Kubernetes vs. Apache Mesos: Why What You Think You Know is Probably Wrong

    Docker vs. Kubernetes vs. Apache Mesos: Why What You Think You Know is Probably Wrong - Mesosphere h ...

  3. [经验交流] Apache Mesos Docker集群初探

    前言 因工作需要,我对基于Apache Mesos 的 Docker 集群作了一点研究,并搭建了一套环境,以下是资料分享. 1. Apache Mesos概述 Apache Mesos是一款开源群集管 ...

  4. IOS App如何调用python后端服务

    本篇文章旨在通过一个小的Demo形式来了解ios app是如何调用python后端服务的,以便我们在今后的工作中可以清晰的明白ios app与后端服务之间是如何实现交互的,今天的示例是拿登录功能做一个 ...

  5. Apache Mesos总体架构

    http://developer.51cto.com/art/201401/426507.htm 1. 前言 同其他大部分分布式系统一样,Apache Mesos为了简化设计,也是采用了master/ ...

  6. mormort 土拨鼠,做后端服务那是杠杠的,基于http.sys

    http.sys你可以用 mormort 土拨鼠,做后端服务那是杠杠的,基于http.sys并且还是开源的,作者天天更新代码,非常勤奋,官方论坛提问,回答也快其实,稍微看看,就能玩的挺好的

  7. 容易被忽视的后端服务 chunked 性能问题

    容易被忽视的后端服务 chunked 性能问题 标签(空格分隔): springboot springmvc chunked 背景 spring boot 创建的默认 spring mvc 项目 集成 ...

  8. 快速新建简单的koa2后端服务

    既然前端工程化是基于NodeJS,那么选择NodeJs做前后端分离部署也是理所应当的.其实只需要实现静态资源和代理的话,用nginx才是最好的选择,用NodeJS是为了日后能进一步在服务端上实现自动构 ...

  9. vue,vuex的后台管理项目架子structure-admin,后端服务nodejs

    之前写过一篇vue初始化项目,构建vuex的后台管理项目架子,这个structure-admin-web所拥有的功能 接下来,针对structure-admin-web的不足,进行了补充,开发了具有登 ...

随机推荐

  1. 【源码解析】BlockManager详解

    1 Block管理模块的组件和功能 BlockManager:BlockManager源码解析 Driver和Executor都会创建 Block的put.get和remove等操作的实际执行者 Bl ...

  2. MySQL数据库安全策略

    1. 删除所有MySQL中的用户(包括root用户): mysql> delete from mysql.user root可以保留,然后修改为其他用户 2. 为管理员root用户设置密码 : ...

  3. Redis中的数据结构与常用命令

    开发系统:Ubuntu 17.04Redis驱动:StackExchange.Redis 1.2.3Redis版本:3.2.1开发平台:.NET Core 对于Redis的介绍这里只写一句:Redis ...

  4. 影响国内WinCE7发展的最大障碍是没有D版下载

    WinCE红火的时代已经过去,做嵌入式系统时考虑WinCE的越来越少,网络上相关文章也是越来越少. 但真正用过WinCE的应该有体会,它集成了文件系统,tcp/ip,GUI系统,usb驱动,就这些,你 ...

  5. java加密算法入门(一)-算法概念及单向加密

    说起加密,我的第一印象就是电视剧各种密码本破解解密的场景,这两天在看加密相关的东西,做下笔记以便以后查看,也提供给大家个参考. 本文是java加密的第一篇,主要讲述下消息编码Base64以及简单的消息 ...

  6. nginx之 nginx虚拟机配置

    1.配置通过域名区分的虚拟机[root@mysql03 nginx]# cat conf/nginx.confworker_processes 1; events { worker_connectio ...

  7. 最新开源DBLayer,原来数据库操作可以这么简单

    DBLayer,我最近开源的数据库轻量级orm框架,目前支持sqlserver.mysql.oracle, 特别做了分页的封装. 这个框架从七八年前开始逐渐升级而来,也经历了不少项目,希望可以将大家从 ...

  8. angular.js的ng-app 指令定义一个 AngularJS 应用程序。

    <!DOCTYPE html> <html lang="en" ng-app> <head> <meta charset="UT ...

  9. implements ApplicationContextAware 获取spring 容器

    1.新建 ApplicationContextUtil 类 ,通过实现 ApplicationContextAware 的 setApplicationContext 方法,得到context上下文: ...

  10. 懵懂oracle之存储过程2

    上篇<懵懂oracle之存储过程>已经给大家介绍了很多关于开发存储过程相关的基础知识,笔者尽最大的努力总结了所有接触到的关于存储过程的知识,分享给大家和大家一起学习进步.本篇文章既是完成上 ...