第1页
动态资源管理和容器技术 在金融行业的架构探索和明天
Resource Scheduling & Container Technology for Financial Service
余军
Gopher China 2015
第2页
关于我
n
~19y+ Linux & opensource experience n
Co-founder of Shanghai Linux User Group (1997) n
6y+ senior Linux and HPC engineer(Hewlett-Packard) n
6y+ solution manager (Red Hat) n
Present : leading a fast growing opensource engineering team
Gopher China 2015
第3页
话题
n
金融行业 IT 基础架构的现状、特点、挑战 n
求解之路的探索 n
雏形和明天
Gopher China 2015
第4页
金融行业IT基础架构的现状、特点、挑战
Busines A
Busines B
Busines C
RISC Server Gopher China 2015
RISC Server High-End Storage
RISC Server
第5页
金融行业IT基础架构的现状、特点、挑战
Dev/Test
Staging
Production
Gopher China 2015
第6页
金融行业IT基础架构的现状、特点、挑战
n
“RISC to IA” 来了 n
“Unix to Linux” 来了 n
“开源架构”来了 n
“分布式架构”来了 n
“虚拟化”和“云计算”来了 n
“大数据”来了 n
“互联网金融”和“金融互联网”来了 n
“移动业务”来了 n
“敏捷”和“Devops”来了 n
“去IOE”来了 n
“自主可控”来了
Gopher China 2015
第7页
金融行业IT基础架构的现状、特点、挑战
Busines A
Busines B
Busines C
RISC Server
Dev/Test
RISC Server
RISC Server
High-End Storage
?
Staging
Production
Gopher China 2015
Business Service
Platform Service
Infra Service
第8页
归根结底是构造一个高效的资源管控模型
Gopher China 2015
第9页
求解之路的探索
n
是否已经存在相关问题域的解? n
他们是是否解决了我们的问题? n
我们的研究和探索
Gopher China 2015
第10页
求解之路的探索
n
是否已经存在类似的解? n
传统: HPC中的PBS 和 Condor n
现代: Hadoop YARN,Apache Mesos,Google Kubernetes
Gopher China 2015
第11页
求解之路的探索
n
他们是否解决了我们的问题?
n
No
Gopher China 2015
第12页
the Cattle Farm and the Zoo
Gopher China 2015
第13页
求解之路的探索
n
他们是否解决了我们的问题?
n
No
① Condor系统是面向高吞吐率计算计算而设计的,它的主要目的就是利用网络中工作站的空闲时间来为用户服务。
② Condor采用集中式调度模式,且不能保障用户服务质量。
③ 最小完成时间算法MCT(Minimum Completion Time)是以任意的顺序将任务映射到具有最早完成时间的主机上, 它并不保证任务被指派到执行它最快的主机上,而仅关心如何最小化任务完成时间,因而可能导致任务在资源上的 运行时间过长,从而潜在地增加了调度跨度。
④ Min-Min算法,利用MCT矩阵,首先分别找到能够最短完成该任务的机器及最短完成时间,然后在所有的最短完成 时间中找出最小的最短完成时间对应的任务。Min-Min算法存在着一个很大的缺点,就是算法的资源负载均衡性能 (Load Balancing)不高。
⑤ Max-Min算法与Min-Min算法相似,都是将任务指派给具有最小预测完成时间的主机,不同的是Max-Min算法从 所有任务的最小完成时间中选取一个最大值,然后进行相应任务。主机映射,之后重复此过程直至待调度任务集合 为空。
⑥ 轮询调度(Round Robin Scheduling)算法就是以轮询的方式依次将请求调度不同的服务器,即每次调度执行i = (i + 1) mod n,并选出第i台服务器。轮叫调度算法假设所有服务器处理性能均相同,不管服务器的当前连接数和响 应速度。该算法相对简单,不适用于服务器组中处理性能不一的情况,而且当请求服务时间变化比较大时,轮询调 度算法容易导致服务器间的负载不平衡。
Gopher China 2015
第14页
求解之路的探索
n
他们是否解决了我们的问题?
n
No
Gopher China 2015
① Mesos 采用了DRF(Dominant Resource Fairness) 调度机制。 YARN自带FIFO、Capacity Scheduler和Fair Scheduler(借鉴了 Mesos的DRF)。
② Mesos中的DRF调度算法过分的追求公平,没有考虑到实际的应 用需求。在实际生产线上,往往需要类似于Hadoop中Capacity Scheduler的调度机制,将所有资源分成若干个queue,每个 queue分配一定量的资源,每个user有一定的资源使用上限。
③ Mesos采用了Resource Offer机制,这种调度机制面临着资源碎 片问题,即:每个节点上的资源不可能全部被分配完,剩下的一 点可能不足以让任何任务运行,这样,便产生了类似于操作系统 中的内存碎片问题。
④ YARN适合Long running job和数据分析类资源的调度,对于数 据库类等短运行时场景资源调度效果较差
⑤ YARN采用了增量资源分配机制(当应用程序申请的资源暂时无 法保证时,为应用程序预留一个节点上的资源直到累计释放的空 闲资源满足应用程序需求),这种机制会造成浪费,但不会出现 饿死现象
⑥ Mesos 和 YARN的调度器的扩展和定制在开发上都比较繁琐。
第15页
求解之路的探索
n
他们是否解决了我们的问题?
n
No
① Kubernetes 仅仅是实现了一个极其简单的调度器。鼓励开发者编写自己的调度器注册进框架
② 调度策略分为两大类:Predicates和Priorities,其中Predicates判断是否将pod调度到特定 minion(host)上运行,而Priorities则是在Predicates的计算基础上,通过积分Score方式,决定调 度量。
③ Predicates包括:PodFitsPorts、PodFitsResources、NoDiskConflict、MatchNodeSelector和 HostName,即一个minion能够被选中的前提是需要经历前面提到的这5个Predicates的检验,而 Priorities又包括:LeastRequestedPriority、ServiceSpreadingPriority和EqualPriority,分别为 通过Predicates检验的minion计算优先级(score),score是一个范围是0-10的整数,0代表最低 优先级,10代表最高优先级。
④ 调度机制还是过于平均,Predicates本质上作为一个过滤器,带有太多资源的物理属性。
⑤ 调度机制非常适合公有云场景,对于私有云领域欠缺灵活性。
Gopher China 2015
第16页
求解之路的探索
n
我们的研究和探索 SWF – Scene Based Weighted Fairness
n
适合金融行业架构和业务场景的资源调度机制 n
围绕各种对资源有不同分配使用要求的应用开展调度工作 n
针对不同生产区域(devops/test, staging, production) 实现权重调整的调度方式 n
实现局部调度的个性化和全局调度的公平性 n
杜绝简单粗暴的调度,对关键业务应用的运行影响降低到最小
① 基于不同应用的场景数据做资源的实时计算。
② 场景数据的短期切片和中长期切片可以适应资源池投产 的不同阶段。
③ 实现了(人工)可干预的分配机制(阈值)。
④ 通过权重比对利用率优先,容量优先和可用性优先进行 调控。
⑤ 具体实现采用较为独立的模块方式,方便将来开源后被 第三方使用,定制和集成。
Gopher China 2015
⑥ 面向金融行业应用场景,进行持续的演进和调整。
第17页
雏形和明天 我们在围绕Container技术正在做一些面向金融行业场景的
严肃而”有趣”的东西
Gopher China 2015
第18页
Distributed Platform Management
Resource Scheduler Scalability Controller HA & Locking Controller
SEED
Service Discovery Performance Controller
Batch Job Scheduler
IaaS (计算资源, 存储资源, 网络资源) Gopher China 2015
第19页
逻辑数据中心 1
Distributed Platform Management
Resource Scheduler Scalability Controller
Service Discovery Performance Controller
HA & Locking Controller Batch Job Scheduler
SEED
逻辑数据中心 2
Horus factory
两级资源调度的 跨逻辑数据中心方案
逻辑数据中心 N
Gopher China 2015
第20页
100% Written by Golang Heavily leveraging Beego framework
(Thanks Asta for your great work!)
API centric desgin and development …
Will be released under Apache License as standard opensource project
100% 自主研发。100% 开源给用户
容器级资源运行技术 自主研发的资源分配和动态调度调度算法
两级作业调度框架
服务弹性伸缩
分布式高可用控制系统
智能模板和堆叠式组件管理系统
运维过程数据的大数据分析系统
Apache License v 2.0
基于Linux 内核隔离及业界先进的Container容器技术 自主研发SWF核心算法 (基于场景的加权均衡算法)
自主研发Gardener – Seed 作业调度系统
自主研发Lighthouse智能服务伸缩模型
基于Raft/Chubby算法和GOSSIP协议的分布式高可用控 制系统与服务发现
深度优化和预置的多层堆叠式开源软件发布和管理系统, 可以在保障版本统一的条件下,智能推送和维护应用模板
自主研发Horus 运维数据处理平台
Gopher China 2015
第21页
不喜欢因循守旧的工程师 渴望造点新东西的技术人 看到金融IT行业挑战和机遇的朋友
热爱开源的大粉丝们 我们虚位以待
http://golanghome.com/post/494 Or email : joeyu@bsgchina.com
Gopher China 2015