数据中心 频道

阿基米德平台揭秘 看京东如何玩转资源调度

  【IT168 技术】11月25日,京东IT资源服务部联合京东CTO办公室,京东商城研发基础架构部联合举办京东技术——11·11基础架构峰会。从容器、分布式系统、弹性数据库、微服务、机器学习、链路压测机器人等话题全面解读京东技术。最吸引我注意的,还是京东商城基础架构部技术总监鲍永成对京东阿基米德平台的揭秘。

阿基米德平台揭秘 看京东如何玩转资源调度

  今年的双十一,京东数据中心操作系统(JDOS)阿基米德已经全面接管了应用资源调度。此时的京东,已经经历了从OpenStack到Kubernetes的迁移转变,而这也正是Kubernetes大方光彩的时候。

  Kubernetes 方案与 OpenStack 方案相比,架构更为简洁。OpenStack 整体运营成本较高,因为牵涉多个项目,每个项目各自有多个不同的组件,组件之间通过 RPC(一般使用 MQ)进行通讯。为提高可用性和性能,还需要考虑各个组件的扩展和备份等。这些都加剧了整体方案的复杂性。问题的排查和定位难度也相应提升,对于运维人员的要求也相应提高。

  Kubernetes的核心理念,灵活的设计和声明式的 API 是对 Google 多年来 borg 系统的最好总结。而其提供的丰富的功能,使得京东可以投入更多精力在平台的整个生态上,比如网络性能的提升、容器的精准调度上,而不是容器管理平台本身。尤其是,副本控制的功能受到了业务线上应用运维工程师的追捧,应用的扩容缩容和高可用实现了秒级完成。

阿基米德平台揭秘 看京东如何玩转资源调度

  这对于京东来说,简直就是神来之笔。京东有大量的服务器资源,使用不够充分,并且以往在大促前各个业务主要靠新增机器来应对高峰的瞬时流量,应用业务系统资源申请量和使用量之间差距巨大,同时,资源使用呈现明显的高峰低谷,不同的机器的资源使用率差距较大。

  京东倾向于长期服务稳定存在,尽量低频度迁移。因此 对于资源碎片和时空不均的情况,阿基米德用批处理任务进行统一填充式调度,以达到资源碎片的充分利用和资源的时空复用的效果。阿基米德不仅仅可以对当前的资源和任务进行调度,还可以综合应用画像和批处理任务的描述,对未来一段时间的任务调度进行提前规划,使得业务能够正常运行的同时,资源得到充分的利用,有效防止了批处理任务与长期服务的资源竞争。

  鲍永成介绍到,无论是长期服务还是批处理任务,均会与阿基米德签订 SLA 协议。阿基米德将会保证服务或者任务的资源使用量、服务可用性等。特别是长期服务,阿基米德将会优先保证其资源使用和服务可用。在批处理任务与长期服务、长期服务与长期服务即将出现资源竞争时,阿基米德会根据 SLA 协议的可用性和优先级进行筛选排序,依序对于任务或者服务进行驱逐迁移,保证高优先级的长期服务能够优先使用资源,非必要情况不进行迁移,不受其他任务 / 服务的资源竞争影响。

  到现场参会的技术人员对JDOS 是如何支持有状态服务和无状态服务?这一问题比较关心。

  无状态业务的支持相对容易一些,可以直接通过调度自动调整副本数来实现服务的弹性伸缩。对于有状态的业务,原生的Kubernetes有 StatefulSet 进行支持,但是 StatefulSet 需要容器一个个启动, 另外社区在这个方面开发进度缓慢。 因此京东选择了自己定制 Kubernetes 进行支持,主要是为本集(RC/RS/deployment)提供了 IP 保持不变和存储自动迁移的功能来进行支持。

阿基米德平台揭秘 看京东如何玩转资源调度

  通过对于每个副本集维护一个小的 IP 池。当副本数调整时,也对应增加或者减少 IP 池中的IP 的数量。副本集中的容器创建时,则使用这个 IP 池中的 IP 进行创建;容器删除时,则将IP 返回到副本集的 IP 池中。

  存储也是类似, 对于一个副本集有一个对应的持久化存储的集合。当副本集中的容器创建时,则使用这个 PV 集合中的一个 PV 进行绑定核存储挂载。容器删除时,则对应进行卸载和解除绑定。

  未来,京东将进一步推动优化调度算法,精确应用画像,提升调度的准确性,在整合计算、提升效率、节能降耗方面进行更多的实践。当然,京东也会把更多的生产一线的调度数据和模型与业界分享。

0
相关文章