18
YARD 简简 简简简简简简简

Yard -yet another resource dispatcher

Embed Size (px)

Citation preview

Page 1: Yard -yet another resource dispatcher

YARD 简介微信资源调度系统

Page 2: Yard -yet another resource dispatcher

YARD

YARD – Yet Another Resource Dispatcher 中文名:庄园 英汉词典:

Page 3: Yard -yet another resource dispatcher

YARD 的位置

Page 4: Yard -yet another resource dispatcher

YARD 的功能

资源管理 把多台机器的资源按 CPU 、内存、磁盘等维度分别合

并成资源池进行管理

作业管理 根据模块需求,从资源池分配资源,并部署启动模块;

提供标准的作业分派 API

可编程的部署系统:YARD = BTAgent + Master + API

可编程的部署系统:YARD = BTAgent + Master + API

Page 5: Yard -yet another resource dispatcher

YARD 的优势

可靠 以业务系统的标准设计和实现,有良好的分层设计和 A

PI 设计,所有模块以 svrkit 实现 独立

业务系统直接运行在物理机器上,不受 YARD 系统影响,YARD 只影响程序变更

可控 机制和策略分离,策略按需做不同层次的自动化

可扩展 支持 MapReduce 和 Spark ,支持 Docker

Page 6: Yard -yet another resource dispatcher

YARD 架构

Page 7: Yard -yet another resource dispatcher

独立

设计原则:YARD 和业务系统互相

独立Master

Page 8: Yard -yet another resource dispatcher

可控

使用容器对业务程序进行限制和隔离,资源的使用受控

支持三园区容灾、独占部署、混合部署等基础特性,可满足现有多样化的运维要求

策略可以由人工执行,或者开发针对性的智能扩容调度模块

Page 9: Yard -yet another resource dispatcher

可扩展

支持 Map Reduce 和 Spark 空闲资源可用于离线计算

支持 Docker 程序一次打包,随处运行

将来支持 SDN 网络隔离,自定义 VLAN

Page 10: Yard -yet another resource dispatcher

YARD 帮助成本优化

YARD 在成本优化中的应用场景:

应用场景 YARD 特性模块在峰值状态下未占满单台物理机的资源 合并部署

在线模块之间负载不均衡,峰值时段存在错峰现象

合并部署、快速扩缩容

机器闲时运行离线计算作业 合并部署、作业分优先级

Page 11: Yard -yet another resource dispatcher

空闲资源统计 1

业务高峰时段微信后台空闲资源:IDC 低负载机器数量

(单位:台)空闲 CPU

(单位: Core )空闲内存

(单位: GB )

上海 1794 16997 35930

深圳 835 8089 19467

香港 89 994 2541

合计 2718 26080 57938

* 低负载判别标准:网卡流量低于 40Mb/s且 CPU利用率低于25%且内存利用率低于 60%

* 以上统计仅包含 B、 C类机型,不含 KV专用的版本 C机

Page 12: Yard -yet another resource dispatcher

空闲资源统计 2

业务高峰时段微信后台空闲资源:IDC 低负载机器数量

(单位:台)空闲 CPU

(单位: Core )空闲内存

(单位: GB )

上海 2667 23564 50276

深圳 1097 10200 24412

香港 131 1372 3392

合计 3895 35136 78080

* 低负载判别标准:网卡流量低于 100Mb/s且 CPU利用率低于45%且内存利用率低于 60%

* 以上统计仅包含 B、 C类机型,不含 KV专用的版本 C机

Page 13: Yard -yet another resource dispatcher

附录: Application Master

AM角色 故障转移监控器 自动伸缩监控器 作业流程控制器

流式计算作业 DAG型作业

Page 14: Yard -yet another resource dispatcher

YARD 系统容灾

Zookeeper

Master(standby)

Master(main)

Redis Redis

loser

Zookeeper

Master(main)

Master(standby)

winner

Redis Redis

Machine

Slave

ApplicationMaster

Master

Machine

Slave

ApplicationMaster

Machine

Slave

ApplicationMaster

Master

Zookeeper

ExecutorExecutor

Executor

Zookeeper

ExecutorExecutor

Executor

Machine

Slave

Executor

ApplicationMaster

Machine

Slave

Executor

Machine

Slave

Executor

ApplicationMaster

Zookeeper

Zookeeper

Task Task Task

Page 15: Yard -yet another resource dispatcher

YARD API

Page 16: Yard -yet another resource dispatcher

业界动向

DataCenter OS UCBerkeley: The Datacenter Needs an Operating System

Mesosphere: Datacenter Operating System (DCOS)

Page 17: Yard -yet another resource dispatcher

DataCenter OS初级

Resource sharing Lower-level interfaces for fine-grained sharing (Mesos is a first step in this direction)

Optimization for a variety of metrics (e.g. energy)

Integration with network scheduling mechanisms (e.g. Seawall [NSDI ‘11], NOX, Orchestra)

Page 18: Yard -yet another resource dispatcher

DataCenter OS 高级

Data sharing Standard interfaces for cluster file systems, key-v

alue stores, etc Programming abstractions

Tools that can be used to build the next MapReduce / BigTable in a week (e.g. BOOM)

Debugging facilities Tracing and debugging tools that work across the

cluster software stack (e.g. X-Trace, Dapper)