一、从Google Borg讲起
1.1 Google Borg 简介
1.1.1 特性
- 物理资源利用率高。
- 服务器共享,在进程级别做隔离。
- 应用高可用,故障恢复时间短。
- 调度策略灵活。
- 应用接入和使用方便,提供了完备的 Job 描述语言,服务发现,实时状态监控和诊断工具。
1.1.2 优势
- 对外隐藏底层资源管理和调度、故障处理等。
- 实现应用的高可靠和高可用。
- 足够弹性,支持应用跑在成千上万的机器上。
1.1.3 基本概念
<aside>
📢 prod:在线任务,长期运行、对延时敏感、面向终端用户等,比如Gmail, Google Docs,
Web Search 服务等。
non-prod : 离线任务,也称为批处理任务(Batch),比如一些分布式计算服务等。
</aside>
<aside>
📢 一个 Cell 上跑一个集群管理系统 Borg。 通过定义 Cell 可以让Borg 对服务器资源进行统一抽象,作为用户就无需知道自己的应用跑在哪台机器上,也不用关心资源分配、程序安装、依赖管理、健康检查及故障恢复等。
</aside>
<aside>
📢 概念
- 用户以 Job 的形式提交应用部署请求。一个Job 包含一个或多个相同的 Task,每个 Task运行相同的应用程序,Task 数量就是应用的副本数。
- 每个 Job 可以定义属性、元信息和优先级,优先级涉及到抢占式调度过程
</aside>