五、全链路压测
什么是全链路压测?
基于实际的生产业务场景、系统环境,模拟海量的用户请求和数据对整个业务链进行压力测试,并持续调优的过程
全链路压测的意义
针对业务场景越发复杂化、海量数据冲击下整个业务系统链的可用性、服务能力的瓶颈,让技术更好的服务业务,创造更多的价值。
如何构建压测环境
关于全链路压测,首先考虑的就是如何构建压测环境。一般有两种方案:
**方案1:**按照生产环境专门搭建一套1:1的压测环境,这种方案的弊端是,当我们的系统非常复杂时,成本非常高,且全链路压测需求频次较低,此方案不经济。
并且单独构建的压测环境毕竟不是真正的生产环境,如果有某处没有做到完全复刻(比如细节参数等),则是潜在的风险,很可能压测通过,但是生产环境无法支撑保障目标。
不推荐方案1。
**方案2:**在生产环境构建影子链路进行压测,应用里面识别影子流量,入库时影子流量写影子表等。什么是影子链路后续再补充。
域内单压
系统链路改造完成后,需要在域内进行单压:1,把链路跑通;2,单压需要通过。否则不进行单压,直接进行全链路压测,浪费的是大家的时间。
全链路压测
各域单压通过后,再进行全链路压测。全链路压测时,公用的资源的瓶颈就会显露出来
资源评估和扩容
在单压和全链路压测过程当中,根据压测达成情况 和 资源的负载情况来评估是否需要扩容。
如果保障目标QPS已经达到,摸高也能稳定运行,且系统的负载还在可接受范围,比如CPU 70%以内,则不需要扩容,反之需要考虑扩容。
压测都要产出压测报告,记录相关的压测指标。
六、大促作战
在大促之前要产出作战手册,作战手册是个综合性的文档,能够基于此文档就能应对大促期间的所有问题,按照作战手册来规范操作。比如监控地址,预案执行,限流/降级开关等。
大促开始后,观察监控大盘,识别系统风险,观察业务流程,发生紧急情况时,执行紧急预案,值班情况记录。大促高峰期间按照业务情况适当安排24小时值班。
7、注意事项
总之来说就是不能掉以轻心,小心使得万年船。做好风险管理,不能带着问题战大促,所有的风险必须在大促前解决。