今年11.11,京东数据中心操作系统(JDOS)阿基米德已经全面接管了应用资源调度。每日调度百万台容器实例运转,每日为离线计算提供了多达3000万核·小时的计算资源,SLA履约率达到98.3%。在保证业务的正常运行下,集群的平均资源利用率提升3倍。仅在11.11备战期间,通过资源调度节省数亿元服务器采购成本。本文对京东阿基米德项目的架构和核心技术进行分享,希望能为业界提供一些参考。

\\

另外,由InfoQ举办的ArchSummit全球架构师峰会即将于12月8-11日北京举行,大会与阿里巴巴合作策划了双11架构专场,并邀请了顶级技术专家担任出品人,设置了“新一代DevOps”、“人工智能与业务应用”、“架构升级与优化”等17个热门话题,目前大会日程已出,欢迎前来讨论交流。

\\

调度困境

\\

JDOS(Jingdong Datacenter Operating System) 2.0于2016年推出,基于kubernetes进行了深度定制,并在国内率先将kubernetes引入大规模生产环境,经历了2017年618的考验,逐步完善了内核、网络、存储、监控、镜像中心等生态建设后,调度系统的优化逐渐提上了日程。在长期的容器运营过程中,团队积累了大量的监控数据,也发现了很多痛点。

\\

  • 京东有大量的服务器资源,而资源使用不够充分。\\t
  • 在大促前各个业务主要靠新增机器来应对高峰瞬时流量。\\t
  • 应用业务系统资源申请量和使用量之间差距巨大。\\t
  • 资源使用呈现明显的高峰低谷,不同的机器的资源使用率差距较大。\\t
  • 资源碎片导致的资源浪费严重。\

对于以上种种问题,简单的调度分配资源算法已经无法满足复杂的调度需求,阿基米德项目应运而生。阿基米德项目是作为JDOS的核心调度组件,是撬动整个数据中心的支点,负责整个京东数据中心的资源调度与驱逐。

\\

(点击放大图像)

\\

\\

应用画像

\\

应用对于资源的使用存在一定的规律。一般常规的做法是将其对于资源使用的特点,分为计算密集型、内存密集型、存储密集型等。这种简单的做法无法从CPU/内存/存储/网络多个资源维度和时间维度上对于资源的使用进行描述。我们采用了强化机器学习算法,根据应用的历史数据,提取其资源使用的特征,进而将不同的应用进行归类,形成应用画像。

\\

\\

应用画像可以为调度提供依据。不同的应用根据应用画像的结果,进行亲和/反亲和的调度,将不同类的应用容器调度在一起,使其资源需求得到时空互补,而不会相互影响。同时对于一个应用中多个容器,可以依据应用画像对容器的健康状态进行评估预警,及早进行容器的自动扩容或者迁移,以免影响业务。另外,应用画像还为之后应用的资源使用提出指导意见,以便其在保证资源使用的同时,防止资源超配导致的浪费。

\\

Serverless与延迟容忍

\\

在以往的技术架构中,大量的业务应用属于长期服务(long-running services),其特点是需要长时间提供服务。而实际上,许多应用并不需要长期提供服务。以图片转换应用为例,商户上传的商品图片需要转换成多种尺寸,并在图片中打上水印/logo等,并上传到存储中。图片转换应用只需要在用户上传图片时提供服务,其他时间并不需要占用资源;而且应用对于延迟不敏感,允许最长几十秒级别的延迟执行。对于这种事件驱动、延迟容忍的应用,我们推动其由长期服务,转向使用JDOS提供的serverless架构。serverless的架构在将长期服务转为离线计算任务方面发挥了巨大的作用。

\\

serverless的应用任务和大数据的离线计算任务,抽象为统一的批处理任务(batch jobs)。批处理任务提交到阿基米德时,需要提供任务描述,描述内容包括任务函数、任务类型、资源描述以及任务的延迟容忍时间等,由阿基米德进行调度执行。延迟容忍时间是指该任务可以容忍的最长延迟执行时间。也就是说任务提交后不必立即执行,可以容忍一定时间后才获得资源执行,这就为阿基米德的调度规划提供了重要依据,以便其提前进行流水线编排规划。

\\

资源碎片与时空复用

\\

不同批次采购的服务器的资源配比不同,而不同的应用申请的资源配比也不同。基于资源适配的调度算法容易导致一台服务器上的CPU的配额已经分配完毕,但是内存还空余几十GB或者内存分配完毕,CPU还空余几核。这种情况我们称之为资源碎片。

\\

资源碎片在几乎每台物理机上都有发生。长期服务,特别是面向用户的任务,在每天的执行中会出现明显的高峰低谷。而且不同的长期服务的资源消耗也不同。因此集群中的时空资源利用率不均是常态。资源碎片和时空分布不均问题造成了巨额的资源浪费。

\\

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

\\

SLA

\\

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

\\

集群自治

\\

JDOS提供了集群的自动化管理,阿基米德则将集群从自动化转为了自治的管理系统。社区的kube-controller提供了一个控制器的范例,但是存在着诸多弊端,比如controller获取的信息量过少,只能从apiserver获取node状态,无法准确判断node节点是否离线,从而导致误判,致使容器发生频繁迁移。因此阿基米德中扩展了controller,成为一个单独的系统MAGI。MAGI共有五个节点,分布在数据中心的不同物理POD内。MAGI系统负责集群的自治决策,采用投票会商制,用以对节点是否离线、容器是否需要迁移等决策进行复核。经MAGI系统归票决策后,才会实际触发节点的离线摘除和容器的迁移。

\\

\\

不止于调度

\\

阿基米德不仅仅是JDOS的调度系统,更是应用资源使用情况的数据分析平台。阿基米德为项目管理、业务、审计、采购等部门的相关工作,提供了直接的数据支持。

\\

\\

机房的主要电力消耗用于制冷,而制冷的主要目的是为CPU降温。阿基米德会根据应用画像与调度规划,对于服务器的CPU的主频进行相应调整,以达到节能降耗的作用。此功能已在2个核心机房进行了大规模的实践,取得了降低17%电力的成果。

\\

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

\\

作者介绍

\\

鲍永成,京东商城研发体系-基础平台部技术总监。2013年加入京东商城研发体系,负责京东容器平台JDOS研发,带领团队完成京东容器大规模战略项目落地,有效支撑京东日常业务系统运行和大促高峰流量。目前聚焦在京东JDOS阿基米德战略项目和敏捷智能数据中心等方向。

\\

感谢蔡芳芳对本文的策划。

京东11·11:撬动数据中心的支点——京东阿基米德相关推荐

  1. 天猫双11期间,阿里数据中心将由机器人完成巡检

    11月1日,阿里巴巴集团宣布,天猫双11期间,华北数据中心的巡检工作将由智能运维机器人"阿里巴巴天巡"完成. 天巡是目前互联网数据中心精度最高的智能运维机器人.届时,天巡将不分昼夜 ...

  2. 大数据征信成撬动消费金融的支点?

    文章讲的是大数据征信成撬动消费金融的支点, [IT168资讯]如果要说近日整个互联网金融领域什么最火,相信必然非消费金融莫属.但是消费金融更多建立的是一种信用消费,而这个核心和根本就在于个人征信.但是 ...

  3. 专访亿信华辰COO毛大群:构建“1+4战略”,围绕“两个支点”撬动数据产业

    "[报名已开启]"❶产业图谱+❷企业盘点+❸行业报告+❹榜单/奖项+❺落地大会"全方位开启合作:欢迎报名咨询. ☆2021年度度颁奖季主题策划活动将于9月份正式开启,尽情 ...

  4. 使用阿基米德螺线进行数据可视化

    最近开发了一个新的R包spiralize,可以使用阿基米德螺线对数据进行可视化.在数据可视化中,螺线具有以下两个优点:1. 可以可视化具有非常长的数据轴的数据,同时能够提高可视化的分辨率:2.可以有效 ...

  5. 可编程全地形机器人HEXA京东众筹完美收官,成为撬动机器人创新的支点

    从计算机到手机,计算平台的发展不断将人类文明推向新的高峰,但随着移动互联网领域的开发潜力逐渐殆尽,越来越多的科技爱好者和开发者将目光投向了下一代计算平台--机器人.作为蕴含重大机会的领域,机器人产业发 ...

  6. 大健康版图已成,阿里健康撬动长期机遇的支点在哪?

    5月25日,阿里健康发布2022财年全年业绩公告:截至2022年3月31日止12个月,阿里健康总收入为205.8亿元人民币,同比增长32.6%.其中,医疗健康及数字化服务业务增势显著,收入达约6.7亿 ...

  7. 数据中心“泡澡”散热,阿里云启用全球最大液冷数据中心支撑双11

    每年双11火热的不止是购物车,还有阿里巴巴的数据中心.今年双11,阿里工程师们大规模采用了一项黑科技--给数据中心的服务器"泡澡"散热,来给火热的数据中心降温. 11月3日,在阿里 ...

  8. 双11阿里数据中心,把机器当“媳妇”的守夜者

    阿里数据中心11.11守夜人,把机器当"媳妇",愿做亿万网友背后的男人.这是一个孤守者的旋律,也是一位技术人的战歌. 文章来源:阿里巴巴基础设施 11月11日零点,全世界最热闹的时 ...

  9. 京东11.11大促背后,那些系统架构经历了些什么

    一年一度的京东11.11电商大促,是一次用户的狂欢,也是一次京东智联云架构师们的大型测验.在海量流量.高频用户访问和大量不确定性的DDos攻击之下,系统架构面临了太多考验.在今年京东11.11期间,京 ...

最新文章

  1. Alluxio HA 写入文件失败
  2. 使用迭代器从map或vector中删除元素
  3. jaca和mysql外卖系统_【项目实战】太强大了,Java外卖点餐初级系统【附源码】...
  4. 37条常用Linux Shell命令组合
  5. linux mint 用户管理,Linux Mint 新工具:将网站转变为独立的应用
  6. jzoj1402-偷懒的小X【贪心】
  7. 20180929 北京大学 人工智能实践:Tensorflow笔记04
  8. 限流算法-令牌桶算法
  9. Linux 下使用 gdb 调试 core 文件
  10. 在手机上实现实时的单目3D重建
  11. centos6.5和centos7如何搭建php环境(包括php7)
  12. 淘宝帝国是如何创建的连载04
  13. 程序猿头头(js数组reverse,sort,concat,slice, splice)
  14. k8s的Scheduler 原理(预选策略、优选策略)
  15. matlab电子课程设计,MATLAB课程设计(电力电子)
  16. 电子招投标管理系统源码-电子招投标认证服务平台-权威认证
  17. 天线理论巴拉尼斯_天线理论与技术 - 心理学书籍 psychspace.com/钟顺时/
  18. 基础-06-日语中那些表示「是」的助动词
  19. 服务如何做熔断,降级,限流?
  20. python熊猫图案_Python熊猫:您可能不知道的技巧和功能

热门文章

  1. github pages部署静态网页
  2. javascript基础——文字变大变小className的使用及JS浮动的兼容用法
  3. 从分布式数据库的CAP特性说起
  4. oracle 表空间操作
  5. nslookup域名解析
  6. nginx调用PHP有sock方式和端口方式
  7. 男子在大街上捡到一U盘,竟有英国女王在伦敦机场的路线图
  8. (总结)CentOS 6.x使用yum快速安装Apache+PHP+Tomcat(JSP)+MySQL
  9. 51Nod-1082 与7无关的数【进制+打表】
  10. Mozilla Labs Apps Developer Preview发布了