写点什么

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:472883
用户头像

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

关注

评论

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

ATX技术应用:了解并掌握ATX技术实现自动化测试

测吧(北京)科技有限公司

测试

采用Page Object(PO)设计模式编写自动化测试用例

测吧(北京)科技有限公司

测试

是时候来唠一唠synchronized关键字了,Java多线程的必问考点!

EquatorCoco

Java 多线程

用three.js做一个3D汉诺塔游戏(上)

OpenTiny社区

JavaScript 前端 Web OpenTiny

离散型制造业的特点与万界星空科技低代码MES系统

万界星空科技

工业互联网 制造业 mes 万界星空科技

DevOps与低代码

都广科技

DevOps

谈谈Node.js版本管理工具

伤感汤姆布利柏

说一说Java中的四种引用类型?

快乐非自愿限量之名

Java 开发 引用

零售商品计划新篇章:智能管理系统的挑战与机遇

第七在线

自动生成测试报告:PO设计模式结合Allure生成详尽测试报告

测吧(北京)科技有限公司

测试

西安交易所开发:打造区块链交易系统的DApp开发

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

React Native 应用打包上架

利用Airtest技术实现基于图像识别的自动化测试

测吧(北京)科技有限公司

测试

探索云原生时代:技术驱动的业务架构革新

不在线第一只蜗牛

云计算 架构 云原生

JD商品详情API:京东电商数据整合的关键一环

技术冰糖葫芦

API 接口 API 测试

如何应用生成式AI打造制造业增长新引擎

财见

走在前、做示范,苏州农商银行携华为云完成超级网银系统改造

华为云开发者联盟

数据库 后端 华为云 华为云GaussDB 华为云开发者联盟

软件测试学习笔记丨Allure2报告中添加用例描述

测试人

软件测试

便捷App测试:安卓模拟器与开发者选项提高测试效率

测吧(北京)科技有限公司

测试

解决App自动化测试中的弹窗问题:常见解决方案

测吧(北京)科技有限公司

测试

ADB命令操作:简便连接设备、传输文件、安装App、日志分析

测吧(北京)科技有限公司

测试

DevOps与低代码

Jianmu

微调工程师岗位可能并不存在,但使用 AI 编码工具已经成为刚需

阿里巴巴云原生

阿里云 云原生

定制化区块链交易所开发:Dapp、DeFi和IDO的全方位解决方案

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

利用Allure与截图技术生成详尽测试报告

测吧(北京)科技有限公司

测试

阐述区块链“链游”项目3D/2D模式系统开发

区块链软件开发推广运营

区块链游戏 dapp开发 链游开发 NFT开发 公链开发

软件测试学习笔记丨Allure2报告中添加用例优先级

测试人

软件测试

助力全球企业和开发者们应对多方网络挑战,腾讯云EdgeOne已成企业高质量出海“首选”

Geek_2d6073

思维导图助力需求分析与测试用例设计

测吧(北京)科技有限公司

测试

采用PO设计模式编写自动化测试用例

测吧(北京)科技有限公司

测试

Web3.0热门领域NFT项目实战数字平台艺术

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

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