重点活动保障流程

由 zrc 发布

重点活动保障流程

经过多次重点活动保障,特总结以下保障流程。用于活动保障参考

1. 准备阶段

1.1.1 梳理业务流程图以及系统依赖图

梳理业务流程图的目的是用来明确本次活动的保障范围,以及在本次活动可能会存在的短板,并且作为本次活动保障的一个全局视角

重点活动的业务有可能会涉及多条业务线,如一次团购,涉及到多个入口,以及多个线条等

流程图应该包括主要的三个点,1. 此次活动的入口,2.从业务入口到业务完结所涉及到的所有中间件以及三方平台

除了以上内容外,以下两个关键点也需要关注

  1. 除了活动当时的内容外,还有没有其他爆点,比如宣发时间,宣发的平台也需要关注
  2. 活动结束后是否还有高峰期,高峰期包括流量高峰以及业务高峰,如数专销售期结束后,免费时间点,或者是咪咕汇结束后的内容分发保障。

1.1.2 预估QPS

QPS 可根据历史中的相似活动进行参考,可以由业务方预估本次活动的量级别。业务方会更清楚此次活动的投放渠道,当前活跃用户量,以及日活等数据。业务方应该给出的数据为:预估的各个业务的最大人数
如果有历史数据,整理出历史数据中的峰值(如果没有,应该是最近时间段内的峰值,或者是最近运营侧策划的相关活动)
根据人数

1.1.3 梳理业务流程中的接口

根据1.1 中梳理的业务流程图,对流程图中的接口进行梳理,并根据往此接口以及本次预估的QPS ,得到本次接口的目标QPS ,梳理的结果应如下图所列出的内容。

表格一: 内部接口

场景接口接口描述所属服务三方依赖历史峰值本次目标值总限流值varnish降级策略压测结果
打开app首页/index首页数据card-service发布平台5362536201000qps:2000,响应:65ms,压测值:2200/100 ,压测id
打开活动页/active/111获取活动信息a ctvie-service536253620接口前置qps:2000,响应:65ms,压测值:2200/100 ,压测id

表格二:三方接口

uri服务接口说明三方接口三方平台目标值压测值内部接口是否有缓存24日压测结果压测截图
/user/loginguser-service用户登录/user/check登陆平台20002400QPS2058 ,压测编号5681

1.1.4 确认关键时间点

由运营人员给出一个活动的时间清单,应该包括宣传时间点,开始是几点
根据时间点需要倒排出我们的时间点,具体包括

  1. 首轮压测截止时间
  2. 首次优化时间点
  3. 基础服务扩容完成时间点
  4. 需求冻结时间点

另外,还需要一个关键时间点,用做活动当天的关键操作,此表格一个是用做备忘,一个是用于提前安排人力

时间点操作内容
14号21:10找到业务部门,拿到业务数据id 灯
14号21:12检查是否收到,通过测试环境进行验证
14号23:35进行紧急预案等的配置

1.1.5 执行压测

压测需要提前与三方确认压测计划,并明确一个压测的时间点,在计划时间进行压测。
压测可能会存在几轮,按照如下方式进行:

  1. 单接口单容器的压测,这个压测用于预估这个接口的性能
  2. 正式环境的压测,用于评估整个链路的性能
  3. 历史数据回放,或者是多接口的同时压测,这种压测相对来说能够预估整个业务的性能

需要注意的是压测时产生的脏数据不应该污染正式环境的数据,比如上报数据等。

1.1.6 进行优化及降级策略配置

优化的方案按照具体的场景进行优化,优化时应考虑带来的影响,一般来说对代码的优化应该慎重,一般情况来说改动到正式活动的时间不是很充足,改动代码的风险会比较大
另外的包括扩容、等也属于优化方案
对不能优化的内容可以考虑降级策略,降级可以是在每个网络节点的,如app 的降级、n g的降级、熔断等。
这个阶段需要把表格一种的限流、降级策略补充完整

1.1.7 服务器节点性能梳理

1.7.1 梳理并整理出依赖的中间件的ip 以及最大链接数, 最大链接数往往决定着这个微服务的能够扩容的最大容器数量

1.7.2 梳理出这次所涉及到的微服务,并整理出在整个集群中所能允许的最大数量,最终的表格如下:

微服务中间件中间件ip最大链接数
aaa-servicemysql 500
redis 500
bbb-service
微服务当前pod数量最大允许数量
aaa-service20100
b b b-service20无限制

1.1.8 监控配置

监控的配置应该有两方面。

一个是业务数据的监控,如累计下单总量,关键页面的PV,UV,累计试听次数等,具体的监控应根据活动的属性来配置,监控的内容应该能覆盖核心的指标,其他内容不留在监控面板中。

另外一个是系统负载的监控,应该包括中间件、微服务的系统负载,jetty连接池,中间件连接池等能直接反应系统状况的图。

1.1.9 梳理应急预案

应急预案应该需要明确预案中每一步的操作时间
如,对于需要前置的数据应该明确前置数据的准备时间或者是准备方案

应急预案需要结合业务场景,明确操作场景、操作执行步骤、操作执行人、操作确认人 ,具体表格参考下方

一级分类二级分类应急场景启动条件业务应急策略业务策略 负责人预警条件应急措施业务影响执行时间技术应急方案负责人应急方案 执行人应急方案 授权人

1.1.10 演练

演练内容应该覆盖到应急预案中的所有点。

2 活动间

活动期间首先需要按照梳理的表格时间点进行关键的操作,如已经预案相关内容的准备,如前置报文等。

然后,各个组的运维、开发需重点关注日志,监控情况,提前进行预警以及数据的准备。

3 活动结束

活动结束后需要继续保障后续的内容,如分发,业务处理等

还有就是数据的收集,数据收集用做两方面,一方面是汇报材料,另外一方面是未来相似活动的数据

收集的内容应该包括:

  1. 接口的峰值(对外提供接口api,调用其他的接口remote数量,以及内部自己关心的接口service数量等)
  2. 业务数据(下单量、PV,UV)、
  3. 中间件(连接池使用率)
  4. 服务器资源的利用率

暂无评论

发表评论