登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
园子
关于
博客
发1篇日志+1圆
记录
发1条记录+2圆币
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
VIP申请
网盘
联系我们
道具
勋章
任务
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
业界
›
第一次操盘大促,稳定性保障如何做到万无一失? ...
第一次操盘大促,稳定性保障如何做到万无一失?
[ 复制链接 ]
柏球侠
前天 20:01
业界有很多大促活动,像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大促顺利结束了,对于哈啰来说,各项业务指标也上了新的台阶。
但是对于有追求的技术人来说,大促结束之后,并不是一切都结束了,
稳定性保障工作想要精益求精,就是要在日常的细节中做到位
,在项目复盘中,
要回顾大促期间的系统表现,与此前的预估模型、压测期间的系统表现进行对比
。有没有哪些系统资源的水位出现了异常,利用率是否出现了过高或者过低的情况。要反过来思考为什么在此前的方案制定、压测演练中没能发现这些问题。进而优化后续的保障工作。
同时,也要回顾一些应急预案执行、变更破网等情况,比如预案的执行过程、执行结果是否都符合预期,有无优化余地。一些手动预案能否变成自动化预案等等。破网的变更有哪些,是否都是必要的,后续的大促中,能不能尽量提前变更,降低大促期间变更风险等等。
六、写在最后
稳定性的工作因为覆盖面比较广,事项比较大,因此大家总是觉得比较琐碎,我们要做的是
从这些琐碎的事项中抽象提炼出共性的东西,对它进行归纳总结,将其形成我们自己的方法论
,这样才能慢慢成长起来。这一次大促保障,不管是系统本身,还是我们的稳定性经验保障,都得到了很大的提升。但是技术是无止境的,我们也从不敢大意,仍然以谨慎的心态去做好稳定性保障。
作者丨孟闯
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
那些年搞不懂的高深术语——依赖倒置•控制反转•依赖注入•面向接口编程
如何优雅的使用RabbitMQ
分布式锁1 Java常用技术方案
浅谈我对DDD领域驱动设计的理解
游戏编程十年总结(下)
【前端性能】高性能滚动 scroll 及页面渲染优化
验证码对抗之路及现有验证机制介绍
从零开始入门 K8s | 手把手带你理解 etcd
中文写程序,何陋之有?
NHibernate之旅(2):第一个NHibernate程序
公司的中场
FFmpeg开发笔记(六十二)Windows给FFmpeg集成H.266编码器vvenc
Android 系统缺陷不完全点评
谈谈如何从本质上理解sql语句, 存储过程,ORM之间的联系和取舍。
[一步一步MVC]第一回:使用ActionSelector控制Action的选择
.net环境下跨进程、高频率读写数据
第二个iPhone应用程序:“Say Hello”
从零开始学习jQuery (十一) 实战表单验证与自动完成提示插件
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
浏览过的版块
科技
签约作者
程序园优秀签约作者
发帖
柏球侠
前天 20:01
关注
0
粉丝关注
9
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
敖可
9988
森萌黠
9996
堵赫然
9996
4
凶契帽
9996
5
处匈跑
9996
6
柴古香
9996
7
背竽
9996
8
斜素欣
9994
9
恐肩
9994
10
里豳朝
9994
查看更多