乐趣区

关于微服务:混沌演练实践二支付加挂链路演练-京东云技术团队

1. 背景

以后微服务架构下,各个服务间依赖高,调用关系简单,业务场景很少能够通过一个零碎来实现,常见的业务场景实现根本波及多个上下游零碎,要保障整体链路的稳定性,须要尽量减少零碎之间的耦合性,防止因为单点生效引起整个链路的故障。

2. 指标

通过混沌演练验证链路中局部零碎产生故障时候的整体链路的体现,对链路放弃失常运作的能力进行校验和评估, 提前辨认未知隐患并进行修复, 进而保障整个链路更好地抵挡生产环境中的失控条件, 晋升整体场景性能的稳定性。

3. 演练链路

对实在的业务场景进行混沌演练,就须要对业务场景的相干服务和调用关系进行链路梳理,个别须要依据理论业务场景,画出零碎交互图,通过链路串联、数据追踪、和上下游确认等形式整顿链路图。

4. 演练打算

混沌演练之前,肯定要好可行性评估,评估能够演练的服务部署环境、演练工具的成熟度、演练场景的爆炸半径等,而后决策演练场景,进行实际操作。

5. 内容加载演练实际

5.1 链路梳理

内容加载链路演练,通过内容加载的零碎交互梳理出加载链路:摹略引擎执行 -AB 分流 -CMS 资源获取 - 鹰眼内容发送

5.2 接口梳理

依据调链路调用关系用梳理出具体的接口:

5.3 制订演练打算

演练工夫:2023.03.28 14:00-22:00

演练攻打人员:孙 X 英、陈 X 然;演练防守人员:张 X 雷、付 X 军、刘 X、韩 X

针对链路接口设计演练场景,个别依据零碎特色来设计更容易产生的故障,比方利用偏计算比拟耗费 CPU 的话,故障设计蕴含 CPU 满载,利用对于响应的时效有严格的要求的话个别蕴含办法提早故障设计。

本次链路故障场景设计如下:

具体演练场景设计可参考:混沌实战演练(一)

5.4 演练执行

目前借助天权自动化运维平台进行混沌攻防演练,进入工具市场—演练类,抉择不同的故障计划,点击“立刻执行”;

如抉择 Java 过程满载场景演练,抉择满载率 100%,满载核数为演练利用部署服务的 CPU 核数,演练时长是执行满载的持续时间,抉择演练的具体利用和指定 IP,执行演练打算。

演练示例,依据演练的场景配置好故障参数,如下图为精准触达零碎 - 音讯触达办法提早减少 30ms 参数设定:

演练执行后果查看,下图为分流服务 -JAVA 过程满载,指定分流过程 CPU 满载,故障执行后果:

5.5 演练监控

应用监控工具实时收集服务器在混沌演练运行期间的性能状态,如零碎层面的 CPU、内存等应用状况,察看办法的响应工夫、成功率等指标,一方面验证在混沌场景执行期间零碎状态是否达到预期的成果,同时记录演练期间产生的问题,记录现场,另一方面通过监控发现有危险问题进行人工干预,立即终止演练。

场景一:精准触达零碎 - 音讯触达办法提早减少 30ms

演练监控办法执行的成功率和 TP 999:

场景二:分流服务 -JAVA 过程满载,指定分流过程 CPU 满载

监控平台实时观测零碎的 CPU 使用率:

5.6 演练反馈

查看系统故障产生时候监控伎俩是否欠缺,研发人员是否能够依据零碎告警,疾速的定位并解决问题。查看团队的响应、协同效率。

邮件事变告警:

事变复原告警:

5.7 环境复原

场景演练可期待演练时长完结后自行停止,也可依据手工勾销、终止演练场景。

演练实现后倡议须要重启容器,保障服务恢复正常状态。

5.8 演练复盘

演练完结之后,咱们须要对演练进行复盘。不同的故障下,零碎的体现以及整体业务场景所受到的影响,演练过程中所发现的问题,须要在复盘报告中出现进去。

6. 总结

链路演练通过提前被动注入故障,发现零碎之间的强弱依赖,对链路进行测验,降低生产环境中故障产生的概率。

“居安思危,思则有备,有恃无恐。”

作者:京东科技 孙民英

内容起源:京东云开发者社区

退出移动版