热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

京东刘海锋:ChaosMonkey、全链路压测和容器技术智解双11技术难题

“面对双11的压力挑战,我们京东技术团队将夯实基础、增强智能视为己任。一方面,继续加强基础架构建设,有力保障业务;另一方面,广泛应用机器学习等AI技术实现智慧网站、智慧生态、智慧营

“面对双11的压力挑战,我们京东技术团队将夯实基础、增强智能视为己任。一方面,继续加强基础架构建设,有力保障业务;另一方面,广泛应用机器学习等AI技术实现智慧网站、智慧生态、智慧营销、智慧供应链、智慧客服、智慧物流。”——京东商城总架构师刘海锋

双11刚刚过去,伴随着狂欢之外,还有令消费者感到痛苦的物流、黄牛、刷单甚至诈骗等问题。在新的消费形式下,京东技术团队今年将如何做好技术保障?CSDN记者在双11后第一时间采访到了京东商城总架构师刘海锋,就京东双11技术备战内容进行了深入的讨论:

CSDN:现在的京东基础平台部门备战双11的技术指导思想是什么?

刘海锋:我所在的部门是京东商城基础平台部门,统一负责分布式存储与图片服务、中间件、弹性计算、数据库技术、系统保障、应用架构、机器学习等基础技术方向。我们备战双11的技术指导思想是:故障演练、全链路压测、夯实基础、增强智能。

故障演练

在大规模故障演练方面,京东引入一个新的方法Chaos Monkey,机器、网络、模块、服务、中间件、数据库,来针对性的演练,所有设想的故障,全部工程师的团队来模拟。任何一个业务,我们都会两组,由一组做故障的制造者,另外一组团队作为故障的解决者和响应者,来考察各级力度发生的时候,我们整个基础团队的检测、响应、处理还有恢复的时间。我们要求小的故障不需要人介入,大故障人工介入可以快速完成。通过整个这样的工作,在大促之前的两个月期间密集的来开展,提高我们对大规模故障的容错能力。

全链路的压测

大促时候考量最大的是我们对峰值的控制能力。11月1号和11月11号的凌晨有大规模的抢购和促销,一瞬间和几秒钟流量是很大的,怎么样用有效技术的手段来应对大流量,怎么样很好的规划系统这是比较难的问题。这个难点在于我们可以对下面的某个服务某个系统来做大流量的压测,但是所有压测都局限某一个系统或者某一个链条里面。今年我们创新性引入新的技术,ForceBot,也称军演机器人来模拟人的行为,机器人通过程序发起大的流量进行全链的压测,发起上亿的浏览、搜索、加购物车、下单等等并发任务。我们不光读压测,还有写压测,支付订单这些环节。通过机器人模拟用户的行为,整个全链路联动的压测对我们的整个大促是非常重要的环节,也是今年第一次呈现。

夯实基础

经过这么多年的积累,京东商城形成完全自主研发的技术的对战。多数据中心的架构已经稳定运行近两年,Docker容器技术、中间件都充分容器利用自主资源,自主研发中间件的技术,我们的服务框架等等。存储架构方面,过去几年里,我们积累了沉淀自己以内存为中心的存储体系,也就是最核心的系统,就是半结构和结构的存储系统,几乎应用在京东所有的动态内容的数据存储里面,因为以内存为中心极低的延迟极高的存储量,很适合电商的场景。基础建设方面,通过京东安全防护化解大流量、链接的攻击,我们的机器学习技术对抗刷各个接口的机器人。

增强智能

广泛的机器学习人工智能的技术应用到京东商城各个业务环节。我们把机器学习用到商城很多业务环节里面,简单几个层面来形容,就是说让网站更智能,智慧网站,让我们的生态管理更智能,我们的采销更智能,物流更智能。

CSDN:能否从架构、语言的角度,详细介绍下京东Chaos Monkey和全链路压力测试。这是否可以看作今年京东技术创新的一个重要表现?

刘海锋:局部硬件故障总是会发生,但不允许影响系统可用性。为此我们通过“Chaos Monkey”演练逆向推动业务的高可用架构设计,促使将类似机器故障、网络故障等在软件层面进行冗余设计,进而避免因硬件故障而影响用户体验。

京东刘海锋:Chaos Monkey、全链路压测和容器技术 智解双11技术难题

包括CPU负载过高、磁盘写满、内存溢出、服务器宕机、进程被杀死、DNS/VIP配置错误、连接DB失败等在生产环境中可能遇到的故障,都在其模拟的范围内。

京东在“Chaos Monkey”演练时,将分出一部分人员做“Chaos Monkey”,另一部分人员故障恢复。两部分人员将做物理隔离,完全屏蔽双方的沟通交流。在演练开始后,“Chaos Monkey”人员将通过响尾蛇系统不定时、不定种类、不定范围的向各生产系统生成真实的故障;故障恢复人员在不知道具体故障发生时间点、故障类型及范围的情况下,通过各种监控系统、报警信息,确定故障产生点,并根据相应的应急响应预案进行流量的转移、切换操作,此时并不进行故障的排查工作;在用户流量被切换到可用集群后,在不影响用户体验的情况下查找故障具体原因并进行修复。“Chaos Monkey”人员会实时监控各系统流量,一旦发现演练对流量、可用性有明显影响,即刻通过响尾蛇系统修复故障。

演练完后,部门会进行演练的总结工作,对演练中出现的问题进行总结分析,对应急响应预案不合理的地方进行修整,对人员操作不合理的情况做流程制定以及培训,并针对软件架构设计不合理的情况,进行架构升级。

今年双11备战期间,“Chaos Monkey”演练覆盖了登录、购物车、下单、单品页、供应链、POP平台、中间件等大部分系统。

京东开发ForceBot即军演压测机器人来进行全链路压测。FoceBot分布式部署到全国各地CDN节点,编写全流程的用户行为脚本,一般在凌晨后半夜,通过控制中心下发任务和调度全国agent,各节点的agent收到任何后负责发起模拟用户行为大流量请求并上报任务执行情况,比如模拟真实用户操作:首页->注册->登陆->搜索->浏览各种页面->加入购物车->结算->支付等关键流程等。为了配合全链路压测系统,需要对用户、商品、库存、订单、支付、风控等在线系统进行改造,来支持压测过程中的写请求,并对产生的脏数据进行后期清理。

京东刘海锋:Chaos Monkey、全链路压测和容器技术 智解双11技术难题

全链路压测使得技术团队能够发现上下游系统各个环节中的性能瓶颈与潜在风险。这项技术对大中型电商企业都有参考意义。

CSDN:从2014年至今,京东尝试Docker已有两年的时间。去年618、双11的时候,我们聊过京东基于Docker容器的弹性云项目。关于容器管理,您觉得最大的挑战是什么?请对比去年,介绍下今年Docker在平台层的规模、应用以及调整?

刘海锋:京东商城在容器管理最大的挑战在2方面:

第一,大规模带来的规模性挑战,京东有多个单集群达到近万台物理机的规模,为运营好这些Docker集群,务必确保容器管理要与底层的机架,交换机,物理机等硬件配合,并且要向上对业务层提供更灵活有效的调度支持。

第二,近20W个容器中的任何一个容器实例都是一份坚实的承诺,确保性能&稳定性,所以在容器隔离和底层Linux kernel的性能优化均投入极大的人力&物力保障。

CSDN:对比往年,今年Docker在平台规模,应用做了哪些变化和调整?

刘海锋:我们全新建设2个新Docker集群,应用除一如既往支持全部业务在容器上运行,在今年有2方面变化。应用自动+手动弹性比重增加到60%,特别是京东根据电商业务流量突发,历时短暂的特点,研发“scale up”弹性方案获得业务认可。除支持应用业务外,今年在数据库方向,经过过去1年的实践目前规模扩张迅速达到Docker比例90%

CSDN:关于容器监控,京东近20w容器,通过什么方案做到的整体监控?

刘海锋:容器的规模已经不是最重要的问题,如何能够让研发人员的上线和部署更加的便捷,让机器资源充分得到利用,这才是最主要的。

整体部署架构如下图:

京东刘海锋:Chaos Monkey、全链路压测和容器技术 智解双11技术难题

京东的容器监控全部采取自研,各方面收益明显:

  • 监控成本 有效节约,比如:4C8G容器负责监控1000台目标容器和物理机
  • 支持分布式多IDC部署
  • 监控指标&告警等任务化,方便按指标调度,避免单点失效而丢失监控指标
  • 深度进程级监控指标
  • 全容器镜像部署
  • 监控能力开放
  • 事实监控2秒一个采集点,有效帮助业务在新上线或优化,压测等期间更细粒度观察业务系统运行状况

本月18日(周五),在CSDN主办的2016中国软件开发者大会上,京东商城总架构师刘海锋在大会keynote环节,还将带来《京东双11创新技术实践》的干活分享。18日下午,大会特别设置的电商架构专题也备受瞩目,届时京东、阿里、唯品会等电商的***架构师到现场为大家讲述电商架构背后的故事,关注架构的你,千万、千万不要错过。


推荐阅读
  • 搜索引擎提示“服务不稳定可能导致访问异常”的原因分析与解决策略 ... [详细]
  • 智能制造数据综合分析与应用解决方案
    在智能制造领域,生产数据通过先进的采集设备收集,并利用时序数据库或关系型数据库进行高效存储。这些数据经过处理后,通过可视化数据大屏呈现,为生产车间、生产控制中心以及管理层提供实时、精准的信息支持,助力不同应用场景下的决策优化和效率提升。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 西北工业大学作为陕西省三所985和211高校之一,虽然在农业和林业领域不如某些顶尖院校,但在航空航天领域的实力尤为突出。该校的计算机科学专业在科研和教学方面也具有显著优势,是考研的理想选择。 ... [详细]
  • Linux学习精华:程序管理、终端种类与命令帮助获取方法综述 ... [详细]
  • 为何Serverless将成为未来十年的主导技术领域?
    为何Serverless将成为未来十年的主导技术领域? ... [详细]
  • Ping 命令的高级用法与技巧
    本文详细介绍了 Ping 命令的各种高级用法和技巧,帮助读者更好地理解和利用这一强大的网络诊断工具。 ... [详细]
  • 浏览器作为我们日常不可或缺的软件工具,其背后的运作机制却鲜为人知。本文将深入探讨浏览器内核及其版本的演变历程,帮助读者更好地理解这一关键技术组件,揭示其内部运作的奥秘。 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • 本文深入探讨了如何选择适合业务需求的MySQL存储引擎,详细解析了不同存储引擎的特点、适用场景及其在数据存储和管理中的优势。通过对比InnoDB、MyISAM等主流引擎,为读者提供了全面的技术指导和专业建议,帮助开发者在实际应用中做出明智的选择。 ... [详细]
  • Cosmos生态系统为何迅速崛起,波卡作为跨链巨头应如何应对挑战?
    Cosmos生态系统为何迅速崛起,波卡作为跨链巨头应如何应对挑战? ... [详细]
  • 修复一个 Bug 竟耗时两天?真的有那么复杂吗?
    修复一个 Bug 竟然耗费了两天时间?这背后究竟隐藏着怎样的复杂性?本文将深入探讨这个看似简单的 Bug 为何会如此棘手,从代码层面剖析问题根源,并分享解决过程中遇到的技术挑战和心得。 ... [详细]
  • 本文详细介绍了HDFS的基础知识及其数据读写机制。首先,文章阐述了HDFS的架构,包括其核心组件及其角色和功能。特别地,对NameNode进行了深入解析,指出其主要负责在内存中存储元数据、目录结构以及文件块的映射关系,并通过持久化方案确保数据的可靠性和高可用性。此外,还探讨了DataNode的角色及其在数据存储和读取过程中的关键作用。 ... [详细]
  • 8月16日,由容联主办,清华大学五道口金融学院和阿里达摩院共同支持的“科技助力金融50人论坛”在深圳成功举办。此次论坛作为通讯云中国行系列活动的重要组成部分,汇聚了行业精英,深入探讨了金融科技的最新趋势和发展机遇,旨在推动金融行业的创新与变革,开启金融未来的新篇章。容联创始人兼CEO在会上发表了重要演讲,分享了公司在金融科技领域的最新成果和未来展望。 ... [详细]
  • ZeroMQ在云计算环境下的高效消息传递库第四章学习心得
    本章节深入探讨了ZeroMQ在云计算环境中的高效消息传递机制,涵盖客户端请求-响应模式、最近最少使用(LRU)队列、心跳检测、面向服务的队列、基于磁盘的离线队列以及主从备份服务等关键技术。此外,还介绍了无中间件的请求-响应架构,强调了这些技术在提升系统性能和可靠性方面的应用价值。个人理解方面,ZeroMQ通过这些机制有效解决了分布式系统中常见的通信延迟和数据一致性问题。 ... [详细]
author-avatar
张-苡_278
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有