苹果公司宣布,将使用开源的集群管理软件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. docker安装-centos7

    操作系统要求 要安装Docker,您需要64位版本的CentOS 7.步骤:   卸载旧版本 Docker的旧版本被称为docker或docker-engine . 如果这些已安装,请卸载它们以及关联 ...

  2. kafka 自定义分区器

    package cn.xiaojf.kafka.producer; import org.apache.kafka.clients.producer.Partitioner; import org.a ...

  3. CCNP第一课:默认路由(路由黑洞,路由终结)

    一:功能实现 R1的环回口由R3控制下放,下放之后R4才可以ping通 代码: R1: 只需要一条静态路由,能回包就行了 ip route 20.1.1.0 255.255.255.0 10.1.1. ...

  4. java基础之位运算

    java中常见的位运算符:&(逻辑与) |(逻辑或) ~(取反) ^(逻辑异或) >>(右移) <<(左移) >>>(无符号右移) &(逻辑与 ...

  5. WebSocket+MSE——HTML5 直播技术解析

    作者 | 刘博(又拍云多媒体开发工程师) 当前为了满足比较火热的移动 Web 端直播需求,一系列的 HTML5 直播技术迅速的发展起来. 常见的可用于 HTML5 的直播技术有 HLS.WebSock ...

  6. Coursera 机器学习笔记(四)

    主要为第六周内容机器学习应用建议以及系统设计. 下一步做什么 当训练好一个模型,预测未知数据,发现结果不如人意,该如何提高呢? 1.获得更多的训练实例 2.尝试减少特征的数量 3.尝试获得更多的特征 ...

  7. 为什么使用dojo?dojo与jquery有什么不同?dojo适合什么开发场景?

    首先介绍一下dojo的特性: 1.Dojo是一个符合AMD规范的企业级框架(dojo是一个重量级框架) 2.Dojo全面支持异步加载JS机制(即:支持通过require异步加载JS模块,通过defin ...

  8. 提高java编程质量 - (三)三目运算符的两个操作数类型尽量一致

    先看一个例子: package com.test; public class TernaryOperator { public static void main(String[] args) { in ...

  9. 我的第一个Java程序

    我的第一个Java程序: class Test{    public static void main(String[] args)    {    System.out.println(" ...

  10. maven项目转成web项目没有生成WebContent目录

    有时候建立maven项目转成web项目没有生成WebContent目录,此时把Dynamic web module 去掉勾选,然后ok,再点开项目的properties,再选中Dynamic web  ...