首页 > 其他分享 >第一次操盘大促,稳定性保障如何做到万无一失?

第一次操盘大促,稳定性保障如何做到万无一失?

时间:2023-06-30 13:34:02浏览次数:39  
标签:预案 万无一失 保障 业务 流量 大促 合作方 操盘

 

业界有很多大促活动,像618、双11、双12等等。每一次大促不只是给业务带来了新高,对于技术同样也有很重要的意义,纵观一些优秀的技术团队,都是跟着业务一起成长的。在高并发大流量的背景下,如何支撑好业务运营,是一件很有挑战性的事情,它可以从多方面检验我们的技术能力,对我们的系统架构和应急保障都提出了很高的要求。

 

哈啰在去年9月30日开启了首届的假日狂欢节,我们也做了很多的稳定性保障工作,最终大促顺利渡过,业务体感非常顺滑,所以借此机会总结下我们在稳定性保障这方面的一些工作,分享给大家。

 

一、大促保障与日常保障的差别

 

相比日常的稳定性保障来说,大促的主要特点是时间短、流量大、玩法丰富。大促的过程一般都只有几天甚至数小时,为了尽可能冲到新的业务目标,要充分调动用户的积极性,所以营销玩法一般都比较丰富。因此,我们在大促的稳定性保障中,重点从容量规划、压测演练、应急预案、变更管控这几个维度来做保障。

 

图片

 

哈啰由于多业务形态共存,每条业务线有自己的发展特点,因此大促开始前,要充分分析业务特点,制定针对性的保障方案。例如两轮业务(共享单车和共享助力车等),与典型的通勤场景是一致的,在早晚的上下班高峰期,后台的系统流量也会特别大。而四轮业务(打车、顺风车、送货等),则是跟着节假日有较强的关联性,每到节假日前夕,系统可能会面临数倍于日常流量的峰值。

 

二、大促的整体流程

 

图片

 

顺着大促的时间轴来看,一般会包含活动早期的方案制定、压测演练 ,活动中的应急预案和联动等,活动后的收尾工作等。下面按顺序介绍下其中的一些重点工作。

 

1、组织保障

 

公司级大促,需要多个业务线共同协作,涉及多个部门众多人员,这个时候需要有一个类似大促保障组之类的组织来统筹协调,这个组织是大促保障的决策机构,它是大促保障的第一责任人,同时也赋予相应的权利:在涉及到资源冲突的时候,大促保障组有权拍板,能与业务运营沟通需求,特殊情况下,可以停掉一些非必要的迭代需求,保障大促的事项顺利推进。

 

同时,各个业务研发团队,也需要明确各自的大促负责人(也称大促技术PM),大促技术PM是本业务研发团队大促保障的首要负责人,要根据业务特点制定详细的保障方案,配合本业务完成大促目标。

 

在分工上,大促保障组负责关键里程碑的设定,比如说大促项目需求上线时间、什么时候开始压测、什么时候进行封网、封网之后的变更审批(破网)流程,以及给出整体的保障方案框架,例如大促保障模版、技术目标拆解方式等等,可以供业务线的大促技术PM来作为参考依据。

 

在沟通机制上,大促保障组要能够从全局视角给出当前的整体工作进度和风险概况,及时汇报给管理层。同时各个业务线的大促技术PM也需要定期向大促保障组汇报工作进展,包括各业务线的大促需求研发进展、当前已知风险、资源瓶颈等等。

 

2、目标拆解

 

我们上面提到过,大促的核心在于对流量的把控,因此目标拆解的目的主要是从业务目标拆解为技术目标

 

在业务目标设定的时候,一般会考虑用订单量/GMV/DAU/PV/UV等各类指标作为目标,但是在我们做保障方案的时候,需要明确地知道技术目标,一般是QPS、用户数等等。

 

所以这里需要有一个转化的过程,首先是与业务运营深入沟通,搞清楚这次大促的主要策略和玩法,核心点是弄明白这个问题: 相比日常的业务流程来说,这次的流量从哪里来,这个玩法是如何吸引用户的,用户的操作路径与以往会有哪些不一样。搞清楚这个,就明白了流量路径。比如以两轮骑行为例,会考虑通过一些骑行任务来提升用户的骑行意愿:骑行N单之后给X元奖励。那这里面就需要关注骑行流程、营销活动、任务奖励等这几个平台相关的各个系统。同时进一步深入分析,还发现在大促活动中需要保证供给侧有足够的车辆,线下运维可能会进行一些额外的调度工作等等,这里面就需要关注运维系统相关的流量变化。

 

总的来说,即技术目标 = 业务目标 -> 实现路径(策略、玩法) -> 找到依赖的系统 -> 明确系统的QPS

 

3、压测演练

 

技术目标设定好之后,就要进行压测了,然后根据压测的结果进行调整和优化。在设定技术目标的同时,我们还要根据业务线的具体业务玩法,设定对应的应急预案,这些预案也要经过演练来验证。

 

因为压测演练讲得比较多,这里就不做过多展开,感兴趣的同学可以翻阅以往的文章。

 

4、变更管控

 

变更是导致线上故障的最大来源之一,因此大促期间,变更需要提前做好管控。根据大促的具体节奏,提前设定好相应的封网计划,包括应用发布、配置变更、运维变更等等,同时也准备好相应的应急流程,对于某些特殊情况需要变更的,做好记录,以便活动结束后进行复盘。

 

5、内灰上线

 

大促活动因为有时间窗口限制,所以在正式上线之后要做充分的测试,避免出现意外情况。在做好灰度发布的基础上,对于大促的活动业务逻辑,也要进行灰度验证,一般可以用内部、外灰逐步放量、扩全的方式进行。这次大促活动正式上线之前,我们采用了内灰的方案进行验证,先让公司内部同事加入到灰度白名单,去体验一下大促玩法等等。但是要注意数据的隔离,避免内灰测试中,消耗了真实的奖励等等。

 

6、应急值班

 

大促开始前,要明确好信息同步机制,即大促值班纪律和规范,比如说系统核心owner必须到作战室进行值班,同时在IM中提前规范各个沟通群的名称和作用,把相应的研发、产品、业务、运营、客服都关联同学都拉到对应的沟通群。

 

比如说可以建一个全员沟通群,用于信息同步和相关通知。同时为了高效决策,还需要把一些有决策权的TL拉到会议室一起值班,出现问题之后快速决策,下发执行等等。

 

上面主要是大促过程中的几个关键环节,看完了这些,相信大家对大促保障已经有一个整体认识了,接下来我们重点聊一下保障方案具体怎么做,如果你是大促技术PM,你会如何制定保障方案?

 

三、大促保障方案详解

 

图片

 

大促保障方案是一个整体的框架,在实际的工作中,是由大促保障组产出了这个框架,然后各个大促技术PM根据业务特点,制定出具体的保障方案,接下来大家一起评审并进行相应的压测演练验证。

 

为了让大家理解一致,每个模块下都有了明确的产出物要求,即具体要做什么事情。

 

1、链路梳理

 

大促的关键点在于流量,想要治理好流量,就需要对流量路径做到了如指掌。比如说,本次大促有哪些关键入口,这些入口对应了哪些后端系统、涉及了哪些资源,目前这些系统和资源的水位怎么样,预估哪里会成为瓶颈,是否需要提前治理等等。这些都是链路需要重点关注的地方。

 

在链路梳理中,也应该明确强弱依赖,比如说某个系统的下游依赖中,哪些是必不可少的强依赖,哪些是可以容忍出现故障的弱依赖,以及这些依赖的降级熔断配置、超时时间设置等等,都需要详细分析。

 

在分析流量路径的时候,要注意着重识别是否存在热点流量,例如产品一般在大促开始前对大量人群做push,那么用户点击push之后,跳转的落地页对应的接口可能会存在热点流量,要进行重点保障。

 

产出物:

  • 一张能反应当前系统实际情况的链路关系图,要能够看到流量路径、反映出强弱依赖关系。

  • 目前服务之间的依赖关系的检查结果List,是否存在风险项。

 

图片

 

2、技术目标&容量水位

 

容量水位分析,是为了分析当前系统是否存在资源瓶颈,有无需要提前扩容的资源等等。如果暂时无法明确,也可以先输出现状,待压测之后再确认具体情况。

 

产出物:

  • 一张当前系统入口的qps表格,包括目标qps、当前实际qps、是否需要扩容等。

 

参考格式:

 

图片

 

3、监控告警

 

无论是在常态化稳定性保障还是大促稳定性保障,监控告警的治理都是重中之重。

 

在大促场景中,需要特别注意两个点:

 

当前各个系统的监控告警配置情况,指标覆盖是否完善和阈值设置是否合理。包括基础设施监控、中间件监控、应用层监控、流量入口监控等等。

 

与本次大促有关的一些业务监控是否完备,是否能够通过业务指标观察当前大促的流量路径。比如说业务活动的转化一般是呈漏斗型,以「一个通过发放优惠券来促进下单」的场景为例:需要有一套对应的业务大盘,能看到从优惠券曝光、用户领取、下单核销等各个环节的情况。

 

产出物:

 

各项监控大盘的地址和梳理结果,监控监控的覆盖度是否完整,告警策略是否正常等。

 

监控指标check完了之后,要通过故障演练来模拟资源水位变化,看监控告警是否正常。

 

4、应急预案

 

从以往的稳定性治理经验中可得,即使我们做了万全的准备仍然有可能出现意外情况。因此,大促保障中更是要对各种“可能出现”的意外情况,做好充分准备。比如说上面提到的链路梳理中,有些依赖可能需要手动调整,在系统压力过大的情况下需要屏蔽掉一些非核心逻辑,比如说为了保证极端情况下的用户用车,可以暂时关闭红包车检查等等。

 

按照大促时间轴,从“事前、事中、事后”三个维度来梳理预案,对于一些对业务可能产生的预案,要写清楚业务影响面和预期,以及提前与业务方沟通清楚。

 

  • 事前预案:提前扩容、配置限流、缓存预热等、边缘业务降级等。

 

  • 事中预案:即应急预案,动态配置开关等。

  • 事后预案:大促结束后要做的预案,一般为系统缩容、恢复边缘业务等。

 

产出物:应急预案手册,可以用表格形式呈现,包括预案的类型、触发条件、执行动作、预估影响、执行人、生效速度等等。

 

图片

 

5、联动机制

 

一场大促会牵扯到多方,包括产品、业务、客服、其他关联部门等等。联动机制主要包括应急值班和信息同步机制,比如说大促进行中,出现了线上故障,在处理故障的同时,要把相关信息同步给关联方。某些情况下,需要执行预案了,这个执行预案的动作也需要同步给关联方。

 

应急值班:包含值班人员名单和联系方式。

 

信息同步机制:包含与产品/业务/客服等的沟通通道和机制。

 

产出物:

  • 值班干系人名单,值班信息。

  • 各业务应急值班群&沟通流程。

 

6、外部合作方保障

 

想要顺利通过大促,除了内部的各种保障,也需要注意外部的一些合作方的保障。避免业务流量过大,影响了合作方的接口质量等,本次活动是否依赖外部合作方(开放API/外部HTTP交互等),对于合作方的接口质量是否有监控告警手段,例如合作方接口的rt、错误率等指标是否可观测,是否具备切换能力,例如从A合作方切换到B合作方。

 

提前明确我方的流量目标,与合作方进行沟通,要求合作方制定相应的保障策略,例如让合作方在大促期间尽量避免变更等操作。最终一起与合作方输出流量评估结果和应急手段。

 

产出物:

  • 与合作方的评估结果表格,包含: 业务场景、评估结果、合作方值班人、应急预案等。

 

四、不同团队的保障要点

 

上文我们提到过,在具体保障工作中,要结合各团队的业务特点,制定出相符的保障方案。在多业务形态的公司中,就有个比较典型的情况:前台业务和中后台业务的保障要点是不一样的。比如说,以哈啰的业务场景为例,会有下面的两个特点。

 

1、前台业务

 

例如两轮、四轮、电动车、电池等等,核心的目标是保障用户体验和支撑业务流程,因为重点是保证自身和相关下游强依赖系统的稳定性。注意两个点:

 

  • 全链路:从业务流程开始到业务流程,整个业务链条的稳定性。

  • 端到端:从APP(小程序/H5)端开始,到网关、业务系统、存储等稳定性。

 

在整体的方案设计中,要结合业务逻辑,准备充足的应急预案。

 

2、中后台业务

 

例如用户平台、支付平台、交易平台、地图&AI等等,在保障全链路稳定性的基础之上,还需要格外注意多个上游之间的流量叠加之后的压力。例如在平时的时候,两轮和四轮的高峰期可能重叠度不高,大促期间进行了大量的营销推广,高峰期可能会叠加;以及具备对不同上游的流量做隔离的能力,例如某个业务对平台侧服务调用量过大,平台侧应该有自我保护机制,避免系统被击垮后影响了其他业务线。

 

五、事后复盘

 

930大促顺利结束了,对于哈啰来说,各项业务指标也上了新的台阶。

 

但是对于有追求的技术人来说,大促结束之后,并不是一切都结束了,稳定性保障工作想要精益求精,就是要在日常的细节中做到位,在项目复盘中,要回顾大促期间的系统表现,与此前的预估模型、压测期间的系统表现进行对比。有没有哪些系统资源的水位出现了异常,利用率是否出现了过高或者过低的情况。要反过来思考为什么在此前的方案制定、压测演练中没能发现这些问题。进而优化后续的保障工作。

 

同时,也要回顾一些应急预案执行、变更破网等情况,比如预案的执行过程、执行结果是否都符合预期,有无优化余地。一些手动预案能否变成自动化预案等等。破网的变更有哪些,是否都是必要的,后续的大促中,能不能尽量提前变更,降低大促期间变更风险等等。

 

六、写在最后

 

稳定性的工作因为覆盖面比较广,事项比较大,因此大家总是觉得比较琐碎,我们要做的是从这些琐碎的事项中抽象提炼出共性的东西,对它进行归纳总结,将其形成我们自己的方法论,这样才能慢慢成长起来。这一次大促保障,不管是系统本身,还是我们的稳定性经验保障,都得到了很大的提升。但是技术是无止境的,我们也从不敢大意,仍然以谨慎的心态去做好稳定性保障。


作者丨孟闯

标签:预案,万无一失,保障,业务,流量,大促,合作方,操盘
From: https://www.cnblogs.com/88223100/p/How-to-ensure-the-stability-of-the-first-trading-promot

相关文章

  • 618技术揭秘 - 大促弹窗搭投实践
    背景618大促来了,对于业务团队来说,最重要的事情莫过于各种大促营销。如会场、直播带货、频道内营销等等。而弹窗作为一个极其重要的强触达营销工具,通常用来渲染大促氛围、引流主会场、以及通过频道活动来提升频道复访等。因此,如果能将运营的策略及想法快速转化为弹窗的内容并触......
  • 直播倒计时1天 | 一体化智能可观测平台如何保障电商节大促
    ......
  • 直播预告 | 一体化智能可观测平台如何保障电商节大促
    ......
  • 业务安全情报第16期 | 大促8成优惠券竟被“羊毛党”抢走!?
    近期,某电商小程序举办美食节营销活动,提供高额折扣券,并允许用户进行秒杀。然而,羊毛党团伙利用作弊手段,抢购囤券,然后倒卖变现,严重损害了商家的利益。八成秒杀账户是羊毛党根据顶象防御云编号为BSI-2023-rutq业务安全情报发现,某电商平台为吸引人气和促进销售推,推出高额折扣券福利......
  • 外汇天眼:跨过这些障碍,你就能成为优秀的操盘手!
    在金融市场中,成为一位成功的操盘高手不仅仅依赖于技术分析和市场洞察力。交易者的心态和情绪管理同样重要,甚至可能更重要。本文将为你探讨几个关键障碍,并提供调整心态的建议,助你成为一位优秀的交易者。接受不可控制的风险交易市场充满了不确定性和风险。重要的是要认识到你无法完全......
  • WM_大促之前的全链路压测监控篇(下)后面包含skywalking 细节 一般有用 看1
    大促之前全链路压监控篇1.skywalking服务监控1.1skywalking简介Skywalking是一个APM系统,即应用性能监控系统,为微服务架构和云原生架构系统设计它通过探针自动收集所需的指标,并进行分布式追踪,通过这些调用链路以及指标,SkywalkingAPM会感知应用间关系和服务间关系,并进行相应......
  • 操盘手心得
    概述一、吸筹盘中经常出现规律性的向上冲击波,一般为主力资金的吸筹动作。普通股票则很少出现这种有力的上攻动作。慢慢吸筹。经常有大笔卖单挂留,但随即会迅速撤掉,或者所挂的卖单手数越来越少。往往先跌破某一技术支撑位(如某条均线),但股价却未下跌多少。分时成交常出现无量空......
  • 面对风险与多变的外汇市场,如何成为一位成功的操盘手?
    好的交易系统必须经过实践证明能够长期稳定盈利,它应该是完整、连贯、前后一致的,而差的交易系统则是不完整、间断、前后矛盾的,导致交易行为杂乱无章。当投资者产生心理动摇时,往往会产生平仓欲望。但从整体来看,系统化的平仓方法要优于个人主观决定的平仓点。机械式的交易系统可以帮助......
  • “930大促”日活增速超40% ,哈啰如何用预案高效应急?
    一分钟精华速览应急预案,是指在系统出现故障时,为了保障核心业务能够持续可用,而提前准备的指导手册。这个手册可以用来告诉我们:在遇到什么样的问题后,做什么样的操作能最大化地降低对业务的影响,将被动响应变为主动防御。哈啰结合“930大促”活动,从多角度分享了其在日常梳理、预案保鲜......
  • 来自jackson的灵魂一击:@ControllerAdvice就能保证万无一失吗?
    前几天写了篇关于fastjson的文章,《fastjson很好,但不适合我》。里面探讨到关于对象循环引用的序列化问题。作为spring序列化的最大竞品,在讨论fastjson的时候肯定要对比一下jackson的。所以我也去测试了一下Jackson在对象循环引用的序列化的功用,然后有了一点意外的小发现,在这里跟大......