写点什么

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

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

关注

评论

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

Flutter 构建三维空间动画效果

岛上码农

flutter ios 前端 安卓开发 7月月更

DevOps工具链:开放、自由地选择最适合团队和业务需要的工具

龙智—DevSecOps解决方案

DevOps DevOps工具 DevOps工具链

全面掌控!打造智慧城市建设的"领导驾驶舱"

华为云开发者联盟

云计算 后端 智慧城市 智慧屏

知乎基于 Apache Doris 的 DMP 平台架构建设实践|万字长文详解

SelectDB

Apache 数据库 数据仓库 广告系统 Doris

带你认识数仓的“规格变更”

华为云开发者联盟

数据库 后端 集群 数仓

AIRIOT物联网平台助力油库自动化升级 实现业务场景全覆盖

AIRIOT

低代码 物联网 低代码,项目开发

Spring Security用户定义

急需上岸的小谢

7月月更

卷是真的卷,“粗心马虎”也是真的要扣分

图灵教育

数学 小学 初中

基础设施 NFTScan 正式发布 Solana 网络 NFT 浏览器

NFT Research

区块链 NFT

Spring AOP

武师叔

7月月更

华为云GaussDB两大数据库通过中国信通院多项评测

华为云开发者联盟

数据库 后端 华为云

干货|语义网、Web3.0、Web3、元宇宙这些概念还傻傻分不清楚?(上)

Orillusion

开源 WebGL 元宇宙 Metaverse webgpu

一个月后,我们又从 MySQL 双主切换成了主 - 从!

悟空聊架构

MySQL 悟空聊架构 征文活动 7月月更

一、What's API

忠厚

API API Explorer平台 api 网关

LeaRun快速开发平台:企业供应链管理系统解决方案

力软低代码开发平台

P4Python:合并实践指南之如何脚本化integrate流程

龙智—DevSecOps解决方案

文件合并 P4 Perforce Helix Core

CloudBees CI使用Velero进行灾备(DR)概念验证

龙智—DevSecOps解决方案

ci 停机时间 灾难恢复计划

影响分析:RubyGems未授权访问漏洞(CVE-2022-29176)

龙智—DevSecOps解决方案

rubygems 漏洞

企业知识管理过程中常见的误区与解决方法

Baklib

体验SRCNN和FSRCNN两种图像超分网络应用

华为云开发者联盟

人工智能 图像 图像超分

React + Node.js 全栈实战教程 - 手把手教你搭建「文件上传」管理后台

蒋川

node.js react.js mongodb Express axios

Hive表类型

五分钟学大数据

hive 7月月更

刨析Scoped原理

猪痞恶霸

CSS 7月月更

万字多图,搞懂 Nginx 高性能网络工作原理!

C++后台开发

nginx 中间件 后端开发 高性能网络 C++开发

HTTP的前世今生

技术小生

HTTP 7月月更

跟着官方文档学 Python 之:基础语法

甜甜的白桃

Python 数据类型 7月月更

Klocwork部署的安全最佳实践

龙智—DevSecOps解决方案

klocwork 静态代码分析 SAST工具

IPA应用探索:基于客户意图交互让业务受理更有“温度”

鲸品堂

运营商

关于FAQ页面的一些制作技巧

Baklib

企业钟情于混合App开发,小程序容器技术能让效率提升100%

Speedoooo

微信小程序 APP开发 跨端开发 小程序容器

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