万字长文浅谈系统稳定性建设
内容提要
京东进行期中考试前的模拟考试,以检测系统稳定性。研发阶段关注技术方案评审、关注点、限流、熔断降级、超时、重试、兼容、隔离。代码Review阶段形成团队代码风格、关注代码风格、结对编程、控制review代码量、开放心态。上线阶段需要可监控、可灰度、可回滚。线上问题需发现、响应、定位。
延伸解读
稳定性建设需贯穿研发全流程
文章强调系统稳定性建设并非仅靠运维或测试,而是贯穿需求、研发、测试、上线、运维各阶段,所有参与人员都应关注。研发阶段把控技术方案和代码质量,上线阶段做好监控、灰度和回滚,才能降低故障频率。这提醒团队,稳定性是协作结果,需各角色共同负责。
技术方案评审应开放心态
技术方案评审邀请架构师、研发、测试、产品及上下游参与,能对齐需求、识别风险、避免过度设计。评审时采用提问方式,设计者不必复述文档,而是回答疑问并采纳合理建议。这有助于在早期发现隐患,提升方案质量,减少线上故障。
熔断、超时与重试的协同风险
熔断防止下游故障拖垮自身,降级需尽量减少损失;超时设置应遵循漏斗原则,从上游到下游逐渐减少,避免上游大量超时;重试需控制次数,警惕重试风暴,写接口必须保证幂等。这些机制需协同设计,否则可能加剧故障。
上线三板斧:可监控、可灰度、可回滚
上线是故障高发期,需做到可监控、可灰度、可回滚。监控指标包括业务和技术指标,告警阈值建议先严后松;灰度可按机器、机房、地域、业务维度分批发布;回滚优先用开关控制,其次部署回滚,并注意向前兼容性,避免数据无法处理。
Q&A
京东如何进行系统稳定性检测?
京东通过期中考试前的模拟考试,包括军演压测和故障演练,来检测系统的稳定性。
在研发阶段,技术方案评审需要哪些参与者?
技术方案评审需要团队的架构师、研发、测试和产品人员参与,以确保方案的合理性和有效性。
限流策略的作用是什么?
限流策略可以防止系统因流量激增而崩溃,确保系统的稳定性。
上线阶段需要关注哪些关键点?
上线阶段需要关注可监控、可灰度和可回滚,以降低故障频率和影响。
如何应对线上问题?
应对线上问题需要识别问题、快速响应、恢复服务并进行复盘,确保问题得到有效处理。
什么是熔断和降级?
熔断是防止系统被下游系统拖垮的措施,而降级是为了减少损失而采取的有损操作。