OceaBase开发者大会落地上海!4月20日共同探索数据库前沿趋势!报名戳 了解详情
写点什么

Singularity:基于 Apache Mesos 构建的服务部署和作业调度平台

  • 2014-08-31
  • 本文字数:1149 字

    阅读完需:约 4 分钟

Singularity 是一个在云基础设施中部署和运行服务和计划作业的平台,同时也是 HubSpot PaaS 的核心组件。它能够高效地管理底层进程的生命周期,并有效地利用集群资源。它可以作为持续部署基础设施的基本组成部分,而且是微服务部署的理想选择。它不仅能够管理数以百计的服务器上运行着的数以千计的进程,而且还提供了如下开箱即用的特性:

  • 丰富的 REST API,既有用于部署的,也有用于获取活动部署和历史部署信息的;
  • Web 应用客户端(Singularity UI)使用上述 API 向用户提供所有可获得信息的友好视图;
  • 部署失败时自动回滚;
  • 服务本身或者服务器故障时自动实现服务的故障转移;
  • 自动暂停反复失败的服务;
  • 进程和服务端点级别的健康检查;
  • 多实例服务的负载均衡;
  • 日志循环和归档;
  • 针对每个服务实例的资源限制和资源隔离,并能杀死超过限制的实例;
  • “机架(Rack)”/ 可用区域识别。

Apache Mesos 的术语中,使用 Mesos API 在集群中调度任务的 Mesos 应用程序称为框架。Singularity 就是一个 Apache Mesos 框架,它作为一个任务调度器运行在 Mesos 集群之上,如下图所示:

从中可以看出,Singularity 在一个框架中融合了长期运行任务的调度功能和批处理作业的调度功能,可以支持开发人员需要每天部署的许多常见进程类型,包括:

  • Web 服务:长期运行的进程;
  • 工作进程:长期运行的进程,类似 Web 服务,但不暴露 API,比如 Queue Consumer 就是一种常见的工作进程类型;
  • 计划作业:周期性运行的任务;
  • 按需执行的进程:需要手动执行的进程。

Mesos 框架有两个主要组件:调度器组件和执行器组件,前者注册到 Mesos 主进程用于分配资源,后者由 Mesos 从属进程在集群从节点上启动并运行框架任务。Mesos 主进程决定为每个框架分配多少资源,框架调度器选取提供的部分资源用于运行所需的任务。Mesos 从属进程并不直接运行任务,而是委派给合适的执行器来运行。Singularity 实现了这两个基本的框架组件,并且还提供了日志查看器、S3 上传器、执行器清理、OOM 进程清除、Singularity UI、Singularity Java Client 等组件。

此外,借助请求对象和部署对象,Singularity 在 Mesos 任务之上提供了一个面向部署的层。其中,请求对象定义一个可部署项,而部署对象定义一个可部署项的执行参数。要想了解所有 Singularity 端点及相应请求和响应对象的完整描述,请查看 Singularity API 参考

最后,对 Singularity 感兴趣的读者可以查看针对测试开发的本地安装文档以及 Singularity 部署示例,以了解更多的细节。还有一点不得不提一下,就是 Singularity 的路线上图上有支持 Docker 容器部署一项。


感谢郭蕾对本文的审校。

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

2014-08-31 13:472717
用户头像

发布了 256 篇内容, 共 81.6 次阅读, 收获喜欢 11 次。

关注

评论

发布
暂无评论
发现更多内容

聚焦机器同传前沿进展,第二届机器同传研讨会将在NAACL举办

百度大脑

人工智能 机器

HTTPS协议

IT视界

《原则》(八)

Changing Lin

6月日更

不管是三胎还是App!指望“拉新”太难了,还是要靠老用户!

APP开发

JavaScript 中数组 sort() 方法的基本使用

编程三昧

JavaScript 大前端 数组 排序 js

分布式认知工业互联网如何赋能工业企业数字化转型?

CECBC

区块链+金融:当前区块链应用场景中最具活力的领域

CECBC

上云就上百度智能云,百度智能计算峰会召开,AI原生云全新升级

百度大脑

AI 智能云 峰会

全过程智慧教育,看北京四中网校和亚马逊云科技如何实现?| 精选案例

亚马逊云科技 (Amazon Web Services)

深度剖析:Redis分布式锁到底安全吗?看完这篇文章彻底懂了!

Kaito

redis zookeeper 分布式 后端

软件研发团队如何做好项目进度管理?

万事ONES

项目管理 研发管理 需求 ONES

本科毕业六年,备战一个月,四面阿里巴巴定级P7

Java架构师迁哥

🏆【声网 Agora】「PC端实现实时语音通讯4.x」

洛神灬殇

WebRTC RTC征文大赛 声网 6月日更

5W1H聊开源之What——开源协议有哪些?

禅道项目管理

开源

人人视频被迫下架:打击盗版视频网站任重道远

石头IT视角

不愧是清华大佬,一个联机对战游戏就把23种设计模式给抽丝剥茧了

Java架构师迁哥

国内低代码产品是如何定位的?这3类,企业可自行对号入座

优秀

低代码

项目管理与项目集管理、项目组合管理的区别?

万事ONES

项目管理 项目 PMO ONES

加快技术应用规模化 建设世界先进水平区块链产业生态

CECBC

别乱打日志了,这才是正确的打日志姿势!

xcbeyond

日志 规范 6月日更

大陆集团携手亚马逊云科技打造创新的汽车软件平台

亚马逊云科技 (Amazon Web Services)

给你一直尝试和创新的机会!走进亚马逊云科技MRC团队

亚马逊云科技 (Amazon Web Services)

MySQL基础之六:连接查询

打工人!

myslq 6月日更

公司:离职就是一场危机管理

石云升

创业 职场经验 6月日更

从底层原理出发,了解Linux内核之内存管理

Linux服务器开发

后端 操作系统 内存管理 Linux内核 底层原理

学妹问,学网站开发还是打 ACM?

程序员鱼皮

Java 程序员 算法 大前端 ACM

Java--JVM运行流程

是老郭啊

Java JVM JVM原理

探讨AI人才培养新思路,2021北京智源大会百度AI人才培养论坛召开

百度大脑

AI 人才培养

限流篇,欣赏阿里开源Sentinel

下雨喽

架构 设计 sentinel 限流

为什么说产品经理也要学点技术?

LigaAI

产品经理 研发管理 技术团队 产品设计与思考

数字化转型背景下的测试转型

BY林子

敏捷测试 测试转型

Singularity:基于Apache Mesos构建的服务部署和作业调度平台_开源_马德奎_InfoQ精选文章