动态资源管理和容器技术在金融行业的架构探索
2020-02-27 114浏览
- 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 RISC Server RISC Server Gopher China 2015 High-End Storage
- 5.金融行业IT基础架构的现状、特点、挑战 Dev/Test Gopher China 2015 Staging Production
- 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 RISC Server Busines B Busines C RISC Server RISC Server ? High-End Storage Dev/Test Staging Gopher China 2015 Production 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 ① 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的调度器的扩展和定制在开发上都比较繁琐。 Gopher China 2015
- 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 Service Discovery Scalability Controller Performance Controller HA & Locking Controller Batch Job Scheduler SEED IaaS (计算资源, 存储资源, 网络资源) Gopher China 2015
- 19.Distributed Platform Management Service Discovery Scalability Controller Performance Controller HA & Locking Controller Horus factory Resource Scheduler 两级资源调度的 跨逻辑数据中心方案 Batch Job Scheduler SEED 逻辑数据中心 1 Gopher China 2015 逻辑数据中心 2 逻辑数据中心 N
- 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