万字长文浅谈系统稳定性建设

💡 原文中文,约9600字,阅读约需23分钟。
📝

内容提要

京东进行期中考试前的模拟考试,以检测系统稳定性。研发阶段关注技术方案评审、关注点、限流、熔断降级、超时、重试、兼容、隔离。代码Review阶段形成团队代码风格、关注代码风格、结对编程、控制review代码量、开放心态。上线阶段需要可监控、可灰度、可回滚。线上问题需发现、响应、定位。

🔎

延伸解读

稳定性建设需贯穿研发全流程

文章强调系统稳定性建设并非仅靠运维或测试,而是贯穿需求、研发、测试、上线、运维各阶段,所有参与人员都应关注。研发阶段把控技术方案和代码质量,上线阶段做好监控、灰度和回滚,才能降低故障频率。这提醒团队,稳定性是协作结果,需各角色共同负责。

技术方案评审应开放心态

技术方案评审邀请架构师、研发、测试、产品及上下游参与,能对齐需求、识别风险、避免过度设计。评审时采用提问方式,设计者不必复述文档,而是回答疑问并采纳合理建议。这有助于在早期发现隐患,提升方案质量,减少线上故障。

熔断、超时与重试的协同风险

熔断防止下游故障拖垮自身,降级需尽量减少损失;超时设置应遵循漏斗原则,从上游到下游逐渐减少,避免上游大量超时;重试需控制次数,警惕重试风暴,写接口必须保证幂等。这些机制需协同设计,否则可能加剧故障。

上线三板斧:可监控、可灰度、可回滚

上线是故障高发期,需做到可监控、可灰度、可回滚。监控指标包括业务和技术指标,告警阈值建议先严后松;灰度可按机器、机房、地域、业务维度分批发布;回滚优先用开关控制,其次部署回滚,并注意向前兼容性,避免数据无法处理。

❓

Q&A

京东如何进行系统稳定性检测?

京东通过期中考试前的模拟考试,包括军演压测和故障演练,来检测系统的稳定性。

在研发阶段,技术方案评审需要哪些参与者?

技术方案评审需要团队的架构师、研发、测试和产品人员参与,以确保方案的合理性和有效性。

限流策略的作用是什么?

限流策略可以防止系统因流量激增而崩溃,确保系统的稳定性。

上线阶段需要关注哪些关键点?

上线阶段需要关注可监控、可灰度和可回滚,以降低故障频率和影响。

如何应对线上问题?

应对线上问题需要识别问题、快速响应、恢复服务并进行复盘,确保问题得到有效处理。

什么是熔断和降级?

熔断是防止系统被下游系统拖垮的措施,而降级是为了减少损失而采取的有损操作。

🏷️

标签

➡️

继续阅读