热门标签 | 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日下午,大会特别设置的电商架构专题也备受瞩目,届时京东、阿里、唯品会等电商的***架构师到现场为大家讲述电商架构背后的故事,关注架构的你,千万、千万不要错过。


推荐阅读
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 本文介绍了adg架构设置在企业数据治理中的应用。随着信息技术的发展,企业IT系统的快速发展使得数据成为企业业务增长的新动力,但同时也带来了数据冗余、数据难发现、效率低下、资源消耗等问题。本文讨论了企业面临的几类尖锐问题,并提出了解决方案,包括确保库表结构与系统测试版本一致、避免数据冗余、快速定位问题等。此外,本文还探讨了adg架构在大版本升级、上云服务和微服务治理方面的应用。通过本文的介绍,读者可以了解到adg架构设置的重要性及其在企业数据治理中的应用。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 如何使用代理服务器进行网页抓取?
    本文介绍了如何使用代理服务器进行网页抓取,并探讨了数据驱动对竞争优势的重要性。通过网页抓取,企业可以快速获取并分析大量与需求相关的数据,从而制定营销战略。同时,网页抓取还可以帮助电子商务公司在竞争对手的网站上下载数百页的有用数据,提高销售增长和毛利率。 ... [详细]
  • GPT-3发布,动动手指就能自动生成代码的神器来了!
    近日,OpenAI发布了最新的NLP模型GPT-3,该模型在GitHub趋势榜上名列前茅。GPT-3使用的数据集容量达到45TB,参数个数高达1750亿,训练好的模型需要700G的硬盘空间来存储。一位开发者根据GPT-3模型上线了一个名为debuid的网站,用户只需用英语描述需求,前端代码就能自动生成。这个神奇的功能让许多程序员感到惊讶。去年,OpenAI在与世界冠军OG战队的表演赛中展示了他们的强化学习模型,在限定条件下以2:0完胜人类冠军。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 单点登录原理及实现方案详解
    本文详细介绍了单点登录的原理及实现方案,其中包括共享Session的方式,以及基于Redis的Session共享方案。同时,还分享了作者在应用环境中所遇到的问题和经验,希望对读者有所帮助。 ... [详细]
  • 众筹商城与传统商城的区别及php众筹网站的程序源码
    本文介绍了众筹商城与传统商城的区别,包括所售产品和玩法不同以及运营方式不同。同时还提到了php众筹网站的程序源码和方维众筹的安装和环境问题。 ... [详细]
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社区 版权所有