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的不足,进行了补充,开发了具有登 ...
随机推荐
- Python给多个变量赋值
# Assign values directly a, b = 0, 1 assert a == 0 assert b == 1 # Assign values from a list (r,g,b) ...
- RPM安装软件
RMP:rpm命令详解.注意事项.rpm仓库.安装实例.srpm:源码rpm RPM Package Manager 由Red Hat公司提出,被众多Linux发行版所采用: 建立统一的数据库文件,详 ...
- javaCV开发详解之技术杂烩:javaCV能帮我们做什么?能实现什么功能?ffmpeg和openCV能实现功能,javaCV如何做到更快、更简单的实现相应的功能?等等一堆实用话题
前言: 该篇文章旨在帮助刚接触javaCV的盆友系统的认识音视频.javaCV.图像处理相关的体系知识和一些实用的知识. 序: javaCV早期因为内置了openCV库,所以常用来做图像识别应用,现在 ...
- MyBatis介绍
MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索.MyBatis 使用简单的 XML或注解用于配 ...
- html锚点 点击跳转到页面指定位置
本来是在看阮大神写的ajax教程,突然发现点击目录文字会跳转到相对应的文本内容,于是乎激发了我的兴趣. 这个究竟怎么做的,刚开始看的时候一知半解,找度娘就是:"点击跳转到页面指定位置&quo ...
- mysql GROUP_CONCAT获取分组的前几名
比如说要获取班级的前3名,oracle 可以用 over partition by 来做.mysql就可以用GROUP_CONCAT + GROUP BY + substring_index实现. ...
- 用netsh wlan命令行解决“Win10下WLAN不自动登陆”问题
系统崩溃了,找了一个版本Windows 10重装后,发现进入系统后不会自动连接自己家的Wifi,每次都要手动点"登录",烦不胜烦. 于是百度.Google一起上,找解决方案,然后所 ...
- go语言获取变量的数据类型
package main import "fmt" import "reflect"; var y string = "sdasd" fun ...
- 【Android Developers Training】 25. 保存文件
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...
- Thrift总结(二)创建RPC服务
前面介绍了thrift 基础的东西,怎么写thrift 语法规范编写脚本,如何生成相关的语言的接口.不清楚的可以看这个<Thrift总结(一)介绍>.做好之前的准备工作以后,下面就开始如何 ...