Apple使用Apache Mesos重建Siri后端服务
苹果公司宣布,将使用开源的集群管理软件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后端服务的更多相关文章
- 使用Apache Mesos和Consul实现服务的注册发现
为保证基于Docker应用程序和服务都具有高性能和可用性,设计出一种具有服务发现,高可用性和容错能力的解决方案非常重要. 我们使用Apache Mesos 和Mesosphere的 Marathon实 ...
- 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 ...
- [经验交流] Apache Mesos Docker集群初探
前言 因工作需要,我对基于Apache Mesos 的 Docker 集群作了一点研究,并搭建了一套环境,以下是资料分享. 1. Apache Mesos概述 Apache Mesos是一款开源群集管 ...
- IOS App如何调用python后端服务
本篇文章旨在通过一个小的Demo形式来了解ios app是如何调用python后端服务的,以便我们在今后的工作中可以清晰的明白ios app与后端服务之间是如何实现交互的,今天的示例是拿登录功能做一个 ...
- Apache Mesos总体架构
http://developer.51cto.com/art/201401/426507.htm 1. 前言 同其他大部分分布式系统一样,Apache Mesos为了简化设计,也是采用了master/ ...
- mormort 土拨鼠,做后端服务那是杠杠的,基于http.sys
http.sys你可以用 mormort 土拨鼠,做后端服务那是杠杠的,基于http.sys并且还是开源的,作者天天更新代码,非常勤奋,官方论坛提问,回答也快其实,稍微看看,就能玩的挺好的
- 容易被忽视的后端服务 chunked 性能问题
容易被忽视的后端服务 chunked 性能问题 标签(空格分隔): springboot springmvc chunked 背景 spring boot 创建的默认 spring mvc 项目 集成 ...
- 快速新建简单的koa2后端服务
既然前端工程化是基于NodeJS,那么选择NodeJs做前后端分离部署也是理所应当的.其实只需要实现静态资源和代理的话,用nginx才是最好的选择,用NodeJS是为了日后能进一步在服务端上实现自动构 ...
- vue,vuex的后台管理项目架子structure-admin,后端服务nodejs
之前写过一篇vue初始化项目,构建vuex的后台管理项目架子,这个structure-admin-web所拥有的功能 接下来,针对structure-admin-web的不足,进行了补充,开发了具有登 ...
随机推荐
- EM算法原理总结
EM算法也称期望最大化(Expectation-Maximum,简称EM)算法,它是一个基础算法,是很多机器学习领域算法的基础,比如隐式马尔科夫算法(HMM), LDA主题模型的变分推断等等.本文就对 ...
- springboot 中使用websocket简单例子
gradle 中添加依赖,引入websocket支持 compile("org.springframework.boot:spring-boot-starter-websocket:${sp ...
- python学习第三个坑
##########################python 第三章 ################################这一章呢,主要是文件的操作,还有涉及到函数的一部分. PS:整 ...
- loadrunner提高篇-结果分析实践
分析图合并 一.分析图合并原理 选择view->merge graphs,弹出如图1所示对话框 图1(设置合并图) 1.选择要合并的图.选择一个要与当前活动图合并的图,注意这里只能选择X轴度量单 ...
- 一步一步实现基于GPU的pathtracer(一):基础
出于3D计算机图形学和图形渲染方面的个人兴趣,脑子里便萌生出了自己实现一个渲染器的想法,主要是借助pathtracing这种简单的算法,外加GPU加速来实现,同时也希望感兴趣的朋友们能够喜欢,也欢迎提 ...
- 作为前端,我为什么选择 Angular 2?
转自:https://sanwen8.cn/p/2226GkX.html 没有选择是痛苦的,有太多的选择却更加痛苦.而后者正是目前前端领域的真实写照.新的框架层出不穷:它难吗?它写得快吗?可维护性怎样 ...
- canvas 画钟表
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...
- 【webpack整理】一、安装、配置、按需加载
如果你: 是前端热爱者 :) 有JavaScript/nodejs基础 会使用一些常用命令行,mkdir,cd,etc. 会使用npm 想对webpack有更深的认识,或许此时你恰好遇到关于webpa ...
- angular.js添加自定义服务依赖项方法
<!DOCTYPE html> <html lang="en" ng-app="myapp"> <head> <met ...
- angular多页面切换传递参数
<!DOCTYPE html> <html lang="en" ng-app="myapp"> <head> <met ...