全链路压测(11):聊聊稳定性预案

本文涉及的产品
性能测试 PTS,5000VUM额度
简介: 从业务角度来讲,无论技术做任何的改动和优化,最终的目的都是为了业务目标的达成。而系统的稳定性,无论从用户体验还是业务目标达成的角度来看,都是不可忽视的一环。

前言


全链路压测出现的初衷是阿里为了解决双十一线上系统在峰值流量冲击下的稳定性和可用性问题,在后续落地及不断的演进过程中,出现了很多技术领域的最佳实践。


前面的文章也为大家介绍了很多全链路压测从项目启动到准备阶段的很多细节。这篇文章,我想谈谈在全链路压测落地演进过程中,一个很重要的实践——稳定性预案。


什么是预案?


通过字面意思来看,预案通俗易懂,即针对预期可能出现的问题所设计的解决方案。


放在全链路压测领域,其实稳定性预案并非全链路压测体系中的一部分,而是可以看做一个独立的细小领域,但又和全链路压测有重要的联动关系。


因为全链路压测大多在生产环境开展,虽然可以通过流量识别和数据隔离来保证不对线上业务和数据造成影响,但毕竟是在生产环境执行,有些问题难以避免。


预案有哪些类型?


从我近几年的实践经验来说,预案大概分入如下几种类型:


日常预案


  1. 线上服务发布失败的回滚方案;
  2. 线上服务负载过高的监控告警通知方案;
  3. 用户无感知的灰度发布、无损发布等方案;
  4. 限流、降级、熔断等服务治理领域的技术方案;
  5. 线上服务防止黑客攻击的各种高防和安全应对方案;


大促活动预案


一般大促活动都是指类似618、双11等营销活动,视业务情况而定。常见的有:


  1. 日志归档;
  2. 消息降级(小红点);
  3. 评论关闭(商品评论、社区动态评论);
  4. 本地缓存(降级和熔断后的兜底手段);
  5. 缓存预热(优惠券、商品、用户地址);
  6. 定时job错峰(job任务错开流量高峰);
  7. 依赖解耦(核心服务的强依赖解耦,避免雪崩);
  8. 服务分组(核心服务、核心MQ按照权重优先级做分组隔离);
  9. 客户端限流浮层(针对服务限流后用户频繁点击导致的流量放大场景);


业务稳定性预案


  1. 商品推荐临时关闭;
  2. 线上对账和防资损校验;
  3. 调整商品退货退款到账时间;


PS:预案体系成熟后,可通过平台开关的方式进行配置,收拢权限,避免人为操作导致的问题。


预案的作用是什么?


从技术角度来讲,任何一个细微问题都可能导致生产出现重大故障,因此针对性的设计对应的预案就显得至关重要。


从业务角度来讲,无论技术做任何的改动和优化,最终的目的都是为了业务目标的达成。而系统的稳定性,无论从用户体验还是业务目标达成的角度来看,都是不可忽视的一环。


因此预案的作用就呼之欲出:从技术的角度出发,为业务目标的达成提供多维度的稳定性保障


如何制定预案?


上面列举了很多常见的稳定性预案,在我看来制定预案是一个经验+评估的问题。常见的制定预案的方式如下:


  1. 从日常的线上问题着手,汇总问题和解决方案,复盘得到TODO项和落地验证;
  2. 从系统设计和业务需求分析角度开始,前置性的进行评估分析,设定对应的预案;
  3. 从用户体验和用户行为分析角度出发,优化用户操作过程和交互逻辑,避免类似问题;


最后的经验之谈


  1. 所有预案都需要经过评估分析;
  2. 没有验证的预案都是潜在的风险;
  3. 预案都是有风险和成本的,避免过度设计;
  4. 预案的最终目标是保障业务目标达成,而非秀技术;
相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
相关文章
|
7月前
|
负载均衡 NoSQL 关系型数据库
性能基础之全链路压测知识整理
【2月更文挑战第16天】性能基础之全链路压测知识整理
309 11
|
7月前
|
监控 NoSQL 测试技术
解密Redis性能:如何通过性能测试提升系统稳定性和效率
解密Redis性能:如何通过性能测试提升系统稳定性和效率
233 0
|
7月前
|
存储 缓存 中间件
高可用之全链路压测
【2月更文挑战第30天】全链路压测是提升系统可用性的关键方法,它模拟真实流量和业务场景在生产环境中测试,确保性能、容量和稳定性。
|
监控 测试技术 UED
《云上业务稳定性保障实践白皮书》——五.行业客户稳定性保障实践——5.3 平台网站业务稳定性保障——5.3.2 全链路压测与容量评估(1)
《云上业务稳定性保障实践白皮书》——五.行业客户稳定性保障实践——5.3 平台网站业务稳定性保障——5.3.2 全链路压测与容量评估(1)
293 0
|
域名解析 网络协议 数据可视化
《云上业务稳定性保障实践白皮书》——五.行业客户稳定性保障实践——5.3 平台网站业务稳定性保障——5.3.2 全链路压测与容量评估(2)
《云上业务稳定性保障实践白皮书》——五.行业客户稳定性保障实践——5.3 平台网站业务稳定性保障——5.3.2 全链路压测与容量评估(2)
209 0
|
SQL 监控 关系型数据库
《云上业务稳定性保障实践白皮书》——五.行业客户稳定性保障实践——5.3 平台网站业务稳定性保障——5.3.2 全链路压测与容量评估(3)
《云上业务稳定性保障实践白皮书》——五.行业客户稳定性保障实践——5.3 平台网站业务稳定性保障——5.3.2 全链路压测与容量评估(3)
201 0
|
数据可视化 测试技术 定位技术
全链路压测(14):生产全链路压测SOP
从实践经验的角度出发,生产全链路压测在技术实现上没有太多新花样,但要在不同的业务和企业落地,就各有各的实践路径。对于没有太多经验的同学来说,全链路压测的落地,大多还是基于个人的经验和熟悉的领域,即都是在局部作战,缺乏全局的视角和可视化地图。从全局来讲,缺少适用于自己的全链路压测最佳实践。
全链路压测(14):生产全链路压测SOP
|
存储 SQL 缓存
全链路压测(13):高可用和性能优化
业务场景复杂化、海量数据冲击下,发现并解决业务系统的可用性、扩展性以及容错性问题。
全链路压测(13):高可用和性能优化
|
监控 Java 测试技术
全链路压测(12):生产压测必不可少的环节
在生产环境开展全链路压测,相对于测试环境来说风险和成本都是比较大的。因此需要一套严格的流程管控和响应机制,以及高效的团队协同体系。
全链路压测(12):生产压测必不可少的环节
|
2月前
|
测试技术 持续交付 Apache
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
【10月更文挑战第1天】Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
149 3