yard -yet another resource dispatcher
TRANSCRIPT
YARD 简介微信资源调度系统
YARD
YARD – Yet Another Resource Dispatcher 中文名:庄园 英汉词典:
YARD 的位置
YARD 的功能
资源管理 把多台机器的资源按 CPU 、内存、磁盘等维度分别合
并成资源池进行管理
作业管理 根据模块需求,从资源池分配资源,并部署启动模块;
提供标准的作业分派 API
可编程的部署系统:YARD = BTAgent + Master + API
可编程的部署系统:YARD = BTAgent + Master + API
YARD 的优势
可靠 以业务系统的标准设计和实现,有良好的分层设计和 A
PI 设计,所有模块以 svrkit 实现 独立
业务系统直接运行在物理机器上,不受 YARD 系统影响,YARD 只影响程序变更
可控 机制和策略分离,策略按需做不同层次的自动化
可扩展 支持 MapReduce 和 Spark ,支持 Docker
YARD 架构
独立
设计原则:YARD 和业务系统互相
独立Master
可控
使用容器对业务程序进行限制和隔离,资源的使用受控
支持三园区容灾、独占部署、混合部署等基础特性,可满足现有多样化的运维要求
策略可以由人工执行,或者开发针对性的智能扩容调度模块
可扩展
支持 Map Reduce 和 Spark 空闲资源可用于离线计算
支持 Docker 程序一次打包,随处运行
将来支持 SDN 网络隔离,自定义 VLAN
YARD 帮助成本优化
YARD 在成本优化中的应用场景:
应用场景 YARD 特性模块在峰值状态下未占满单台物理机的资源 合并部署
在线模块之间负载不均衡,峰值时段存在错峰现象
合并部署、快速扩缩容
机器闲时运行离线计算作业 合并部署、作业分优先级
空闲资源统计 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机
空闲资源统计 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机
附录: Application Master
AM角色 故障转移监控器 自动伸缩监控器 作业流程控制器
流式计算作业 DAG型作业
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
YARD API
业界动向
DataCenter OS UCBerkeley: The Datacenter Needs an Operating System
Mesosphere: Datacenter Operating System (DCOS)
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)
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)