- 京东大促的另一个战场:揭秘亿级流量背后的技术基石
- 京东智联云&InfoQ
- 2318字
- 2021-01-20 10:05:33
京东智联云DevOps如何快速发现、定位、解决问题
今年11.11,从0点到23点59分,京东11.11全球热爱季累计下单金额突破2715亿元,创造了新的记录。随着GMV和买家数不断创新高,要应对几何级增长的大促需要跨多个团队协同,云资源使用也越来越多,从几百到几千、上万,每个都核对一遍基本不现实,京东智联云DevOps作为京东智联云的核心技术产品,能实现研发、测试、运维高效协同,提升服务交付效率和稳定性,并能通过服务与资源管理、持续交付和智能监控三大应用场景,快速发现问题-定位问题-解决问题。
发现问题——故障无处遁形
监控是研发、运维人员的眼睛,对服务进行多维度立体的观测,才能确保故障出现的时候第一时刻发现。京东智联云监控为用户提供如下建议:
1、监控覆盖排查
京东智联云监控提供从浏览器->边缘节点(CDN)-> 负载均衡-> 服务器全链路的监控覆盖,通过定义监控标准,为用户添加监控,帮助用户覆盖监控提供方法、工具上的支持。
监控标准分为四层,我们从下往上看:重点系统在日常工作中往往已经在安全方面进行了重点关注,在大促备战期间主要关注:
· 首先是基础监控,这一层主要解决机器、网络层面的问题,包括我们常见的CPU、内存,机器死机等问题;
· 然后是存活性监控,解决程序部署到机器上后,是否存活的问题,比如进程退出,端口发送一个ping过去,没有返回pong;
· 再上一层,则是性能监控,重点关注Google提出的四大黄金指标pv、平响、错误码和容量等,解决分布式程序的定界问题(比如通过访问MySQL的时间飙升知道是下游MySQL的问题);
· 最上层是业务监控,模拟用户进行访问,解决服务在用户侧的表现是什么。
有了标准,设计的监控系统就能按照标准来落地,可以给出一些数据化的运营指标,推动监控的完善。基于对业务配置的指标采集、告警规则的分析,帮助用户分层级地发现监控配置当中的疏漏,提醒用户在各个层级配置监控,提升监控覆盖度。
2、日常巡检
所谓上工治未病。除去配置覆盖完整的报警,及时排查服务的潜在风险,避免大促流量洪峰时期出现服务质量的问题,日常巡检必不可少,京东智联云智能监控提供內建基础资源巡检大盘,帮助用户快速发现资源不足问题。
同时,京东智联云自研时序数据存储支持OpenTSDB/Prometheus协议,便于集成Grafana组件,方便用户自行定制大屏。除去时序数据指标,京东智联云还提供基于日志的实时指标提取方案,可以对接报警、展示。
定位问题
“如果我有一小时拯救地球,我会用59分钟界定问题,然后用1分钟解决它。”爱因斯坦这样说。同理,当故障发生,定位问题的边界,快速寻找根因是缩短整个故障处理MTTR的重中之重。京东智联云智能监控从“宏观”定界到“微观”定位角度,通过联合事件、日志、应用异常多维度数据,帮助用户缩短定位问题时间。
1、事件追踪
故障往往由“流量下降”、“页面打不开了”等黑盒类检测发现,但问题的具体所在并不能通过此类告警发现。而故障发生往往与变更有关,帮助业务人员快速了解到故障时段,究竟出现过哪些模块的调整,来推断问题的边界就有很大的帮助。
智能监控集成关联应用的各类变更操作,消除业务人员的信息屏障,为业务人员提供“上帝视角”,可以从宏观层面了解到当前各个子系统都在发生些什么,能够更好帮助用户找到具体的故障原因以及故障故障模块。
2、日志追踪
在确认问题边界之后,接下来就是对具体故障原因的分析了,京东智联云日志服务提供对服务日志订阅、检索、分析等多方面功能。承载PB级日志业务,提供低成本、高性能的完整解决方案。通过现场日志查看、以及日志分析任务等功能,从“白盒”的角度观测业务当前正在出现的异常。
3、排障利器JEX
微观层面,京东智联云监控团队推出自主研发的无侵入式的故障诊断平台JEX,实时捕获异常,可以在线开启火焰图,捕获CPU/内存热点,行级别定位代码问题,大幅缩短研发人员排查故障时间。通过集成JEX,研发人员可以在第一时间获取业务Exception的具体情形,JEX可以保留异常事件发生的环境信息,方便研发复现以及定位代码问题所在。
解决问题
“凡事预则立不预则废。”故障发生第一时刻应该执行止损操作,避免对线上业务造成持续的影响。京东智联云DevOps平台通过不断的压测、破坏性演练,保障了在历次大促期间平稳运行。通过对故障处理实践的不断总结凝练,京东智联云DevOps推出预案平台,作为研发、运维同学的“手脚”,为业务方提供快速止损的能力。我们将预案分类为流量处理、扩缩容、降级、数据恢复、主备切换等几大维度,指导用户自流量入口到后端存储建立完善的预案体系。同时提供可自动执行以及可手工执行的预案,针对不同团队不同运维场景的故障止损操作。
预案平台提供webhook、对接DevOps平台控制系统两种方式分别应对不同场景的故障自愈。
1、webhook
京东智联云智能监控支持对告警配置添加webhook的形式来打通故障的发现到处理环节。用户可以定制自己的webhook API,实现数据分析、故障处理、自行的消息通知等不同场景的扩展。
2、控制系统联动
智能监控预案平台通过直接对接DevOps控制系统,调用用户自行编写的脚本、在指定的服务器上进行止损操作,以此达到降低用户编写预案的成本。
总结
与市面通用型产品不同的是,京东智联云DevOps能力起源于自身的业务实践,针对京东集团的复杂业务场景打造并经受住多次618、11.11电商大促的严峻考验,保证了高效高质的交付和对变化的灵活应对。
京东智联云DevOps平台与京东智联云的公有云平台深度集成,对用户运行在京东智联云上的系统提供统一的运维入口,提升服务交付效率和稳定性,实现高效的自动化研发运维。它不仅能将运维管理与企业组织结构相匹配,设置基于角色的权限管理,满足企业层次化运维管理;还能从保障用户业务稳定性的角度,自动为宕机服务器上运行的容器(云主机)重新迁移并生成新的实例、保障业务不掉线、高可靠运行,并自动监控服务健康状态、动态调整集群、实时调度相关预案、实现故障自愈。