大促准备指北
Posted 豆豆323
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大促准备指北相关的知识,希望对你有一定的参考价值。
一、概述
从20年重构后到现在,我先后经历20年618,20年周年庆,20年双十一,20年双十二,21年618等多次大促,个人在其中扮演的角色也逐步从参与者向组织者转变。总想着写些什么,来记录这些年,我们肝过的大促。
一次完整的大促准备,必定需要研发测试的通力合作。其中研发测主要负责识别当大促时流量徒增时,各服务可能出现的问题,并通过限流熔断降级扩容等手段,提前规避并解决这些问题。测试测主要负责准备压测数据与环境,实施压测环境单压与全链路压测,拿到各接口的压测数据。
研发测在大促前,需要进行的准备大致如下图:
二、序曲——确认各域负责人
与各域tl确认本次大促稳定性owner。
各域onwer应该再后续全程参与整体大促保障工作与性能调优。
三、确认压测范围——核心接口确认
各域owner确认后,首先需要确认哪些接口需要参与压测,并确认是参与全链路压测还是只需要进行压测环境单压。
所有交易核心链路接口——即商品浏览链路,下单支付链路,优惠领取链路必须参与全链路压测。
核心接口确认后,全量路压测执行前,应该在压测环境进行各接口单压。并同时进行性能调优。各接口单压过程中,可以结合火焰图分析性能瓶颈,并进行调优。一直到最后一轮压测结束前,性能调优应该持续进行。
根据大促准备时间不同,我们的侧重点也有差异。准备时间充足的情况下,为了达到大促目标,应该以性能调优为主,扩容升配为辅。准备时间相对不足的情况,可以以扩容升配为主,性能调优为辅。
四、保证整体高可用——强弱依赖梳理
对于需要参与全链路压测的接口,必须进行强弱依赖梳理。
其中强弱依赖均需要具有传递性,即核心接口依赖的接口,也需要继续进行强弱依赖梳理。
强依赖需要给出合理说明,即此依赖接口出现故障后,上游接口为何一定不可用,
弱依赖需要给出对应的降级或熔断措施。熔断一般为rt超时后的自动熔断。降级为紧急情况下需要执行预案,不再调用远端接口,改为使用接口提供方提供的兜底数据。
同时所有核心接口依赖传递到的下游服务,需要核实自身是否有接入流量标组件,避免压测流量落在生产dms。对于没有且无法接入流量标的服务,需要从上游调用方,对该服务接口进行mock。
不参与全链路压测的接口,理论上可以不进行强弱依赖梳理。
五、预期流量确认——限流与容量评估
所有C端直接调用的接口,理论上都需要进行容量评估后实施限流。
容量评估规则为,根据本次首页/商详/确认订单/创建订单。各域的接口容量可以参照之前大促的流量配比,根据各自接口与上述指标的相关度进行容量评估。
如果部分c端接口为本次大促新增接口,那么根据各自业务情况,评估需要承载日常峰值的5-100倍流量,进行对应的限流配置。
出于系统的自我保护,直接C端调用的接口,应该根据容量评估结果,进行限流配置。考虑统一收口与管理,所有服务应该再网关服务商进行限流配置。
为了防止接口调用过程中,出现外部接口限流通过,链路内其他接口调用失败的情况,所有限流配置应该保证除网关测,各服务内部不再配置限流。
六、减负前行——预案梳理与缓存预热
为确保整体稳定性,大促期间一般会降级一些性能损耗比较验证的非核心功能,并且提前进行缓存预热。
当前预案可以分为普通预案与紧急预案。普通预案可以指定开始结束时间自动执行,紧急预案为配置到预案平台手动执行的预案。
对于一些需要大促期间降低限流值,大促后恢复限流的后台接口,也应以限流形式配置到预案平台。
七、且压且珍惜——压测问题记录、复盘与扩容升配
第一轮压测前,需要与各域tl确认参与每一轮压测名单。
第一轮压测开始前,根据压测环境单压结果,各服务评估自身是否需要服务扩容或db升配。并在第一轮压测前开始扩容或升配。
全链路压测期间,每轮压测需要记录出现的问题,以及压测中进行的扩容。压测结束后需要对压测中问题进行复盘,找到问题出现的根本原因并进行解决。
每轮压测间隔,应该有独立的大促发版窗口,确保各域服务进行性能优化后,可以再下一轮压测中验证成果。
全链路压测期间,cpu偏高的服务可以选择一台服务器打火焰图,用户后续分析具体cpu损耗并进行对应调优。
八、战场——大促来临
大促前一周,需要各域tl确认参与大促前一天晚上值班与当天值班的小伙伴。
大促前一周,需要确认大促当天业务方有哪些特殊活动时间,全量push或其他刺激下单手段。并在这些时间点内,各域开发重点关注各自服务水位。
大促前一天23点开始,一般需要各域参与当天值班的小伙,统一到作战室集合。并开始执行之前梳理的预案。
大促当天0点开始,一般会有一大波流量,各域需要关注各自服务水位,决定是否需要启用一些紧急预案。峰值流量过后,可以执行预案恢复操作。
当天当天白天需要各域持续关注各自服务水位,出现水位过高的情况,及时执行预案。
大促当天23点开始,需要各域参与值班的小伙伴到作战室集合,此时如果线上流量过高,需要统一开启前一天23点时执行的普通预案。
九、终章——缩容降配
大促结束后,如果后续短期内没有下一轮大促,我们需要对之前准备过程中做的扩容升配,进行反向的缩容降配。此处需要注意,缩容降配后各服务能承载的流量可能有所下滑,这就需要根据缩容降配情况,调整部分接口的限流值。
以上是关于大促准备指北的主要内容,如果未能解决你的问题,请参考以下文章