年夜家好,我是李哥。
进阿里以来一直据说一句话:“没有颠末双11峰值验证过的技术都是玩具”。固然有些浮夸,然则弗成否定的是,一年一度的双11,是技术最好的孵化器,也是技术同窗最憧憬的阅兵场。
我很幸运,担任本年年中年夜匆匆的技术一号位,也便是技术卖力人。本日就来跟年夜家聊一聊我们作为一名技术在年夜匆匆中要去做哪些技术保障,以及若何去做。也愿望年夜家看完,就像身临其境的感触感染了一次年夜匆匆。也感激年夜家的存眷、点赞、分享。

我将故事分为三年夜部门:事前、事中、过后,末了我们再总结。
事前 KO会议
起首在事前,我们第一件事便是加入KO会议(Kick Off Meeting,项目启动会)。
它主要会转达以下几个信息:
年夜匆匆的配景与意义
年夜匆匆的目标与目的
营业的详细弄法以及详细光阴
年夜匆匆的职员组织架构
也便是说,在这里,我们技术必要从中获取如下信息:
营业预期DAU
营业预期DAT
详细有哪些运动弄法
运动弄法的详细光阴段
哪些商品介入年夜匆匆,是否有第三方商品
这些商品的库存分离是若干
沟通
KO年夜会上,可能会是一个全局的,整体的,对付一些细节,下来我们必要与营业进行沟通,好比运动粒度是若干。鼓吹力度是若干。营业的预期DAU与DAT若何评估的。是否精确。等。
这一步的目标是确认你的信息是无误的,以及相识一些细节。
流量评估
你必要清楚的知道,当前阶段天天的流量、DAU、DAT是若干,营业评估是若干,技术侧评估又是若干,当前阶段的机能是否能支持即未来临的年夜匆匆,假如不克不及,必要做出什么调整。
优化。怎么优化。优化哪些营业。如今优化还来得及吗。
扩容。扩容哪些服务。扩容到若干。为什么要扩容到这么多机械。
降级。什么营业降级。营业是否支撑降级。什么时刻降级。
这么多问题,看起来如今就必要对营业进行一次梳理了。
营业梳理
我们必要梳理出哪些营业是焦点营业,哪些营业长短焦点营业,哪些营业是可降级营业,这类数据年夜致可以从上一次年夜匆匆获取。
再加上前次年夜匆匆到本次年夜匆匆时代所发生的新项目(营业项目或技术项目)进行梳理,是否影响焦点链路。是否进行了压测。压测成果若何。这些项目可能存在什么技术风险。
你的服务依附哪些下游服务,这些下游服务又是若何依附的,这是个很麻烦的工作,由于跟着营业变年夜,依附关系会变得异常繁杂,很难断定与梳理。只管很难,然则这个依附关系仍旧要梳理清晰,只有梳理清晰了,才有全链路。
压测
有了营业梳理和营业指标,那么就在技术上要可以或许支持到这个营业级别,那便是压测了。
到今朝为止有两种压测方式:
不扩容压测
扩容后压测
不扩容压测一样平常不保举,这种方式必要对营业指标打折作为目的来进行压测,末了在扩容的时刻照样必要压测一次,由于局部压测不克不及完完全全代表整体压测,假如整体压测呈现问题,那么所有的局部压测都是白搭苦工。
扩容压测,便是指容量扩容到年夜匆匆支持位,然落后行压测。
值得注意的是,压测必定是针对临盆。
有些同窗对开发情况、测试情况、预发情况、灰度情况、仿真情况进行压测,从而揣摸出身产情况的机能。这是千万弗成取的,由于情况分歧,服务器的机能纷歧样,临盆情况和其他情况的DB机能也纷歧样,还有一些中央件机能也纷歧样。以是,压测必定要在临盆情况压测,然则有一个毛病,便是会对线上的正常流量发生影响,这也是弗成避免的,以是压测的时刻,一样平常都邑选择流量不年夜的时刻进行,只管即便削减对正常流量的影响,一旦发生影响,请立刻结束压测。
还有便是压测必要流量爬坡,牢记弗成一步到位,依照必定比例逐渐施压,每一个坡度都察看几分钟,没问题继续施压,到达目的后察看几分钟没问题直接结束压测,弗成恋战。
为什么不恋战。由于年夜匆匆的流量趋向便是那几分钟,久长的施压对服务器的机能有必定影响,好比CPU飙高啊,频仍GC啊等,以是在在压测进程中还必要赓续察看体系整体机能,还有便是也会影响到正常的用户拜访。举个例子,奥运会举重,明明只必要保证举起来三秒即可,你训练的时刻岂非要举起来三分钟吗。
对付压测,我们后面再零丁拎一篇文章出来,这里就不外多讲述了,敬请等待。
限流
压测完了后,我们必要输出一份压测申报,好比商详支撑若干qps,下单页支撑若干qps,下单支撑若干tps等。
这些数听说清楚明了,我们的体系,有若干实例,哪个接口能蒙受的最年夜峰值是若干。那么我们就必要对这个接口或这些接口做限流。
这里我们说一下单机限流与集群限流,单机限流指的是每台机械自身的限流,集群限流指的是整个服务集群的限流。
单机限流的目标是掩护服务自己,保证自身服务不被流量击垮。
集群限流的目标是掩护下游服务,保证下游服务不被当前服务击垮。
好比A->B->C,每个服务三台实例,整个B集群最年夜能支撑150qps,C集群最年夜能支撑100qps,那也便是说B服务必要设置集群限流100qps用来保证C,B的三个实例必要设置单机限流50qps用来保证自身不被击垮。
以是假如流量不倾斜的话,B服务每个实例会有33qps,假如倾斜的话,最年夜50qps。
我们回到年夜匆匆限流,以是,我们必要拿着我们的压测申报,针对我们的服务做单机限流与集群限流。
降级
限流后,我们可以或许保证服务自己不被击垮,保证下游不被击垮,然则,这不是我们的目的,我们的目的是要保证年夜匆匆时代商详没问题,下单付出没问题呀。
以是,我们要降级,一些比拟耗机能的营业降级,一些边沿营业降级,给焦点营业让路。
然后就必要梳理这些营业,有哪些必要降级的营业。什么时刻降级。由谁来降级。什么时刻规复等。
应急预案与练习训练
当我们保证了焦点链路的正常后,我们还必要斟酌非常的环境。对付电商体系来说,要斟酌到整个性命周期非常的可能性,好比:打开商详页失败、打开订单衬着页失败、下单失败、如约失败等。说的都比拟归纳综合,我们其时预备了上千个预案。
淘系双11年夜匆匆,为了平安起见,是不会有任何依附外部体系的,由于第三方体系都无法蒙受住淘系年夜匆匆时代的流量波。
假如你的电商体系有依附外部体系的,那么你还要梳理出哪些渠道哪些商品会介入本次年夜匆匆,这块也必要针对渠道做压测与限流,有可能渠道因为系统较小不支撑压测,这时刻你可能要斟酌到在如约的时刻做蓄洪与泄洪,使用真实流量来冲击渠道,用于查验渠道的机能。另外在有第三方介入的环境下必定要有每个渠道的应急预案,对应给用户展现的案牍是什么都是纷歧样的。
最紧张的是要与互助伙伴配合订定一份SLA(Service Level Agreement):服务级别协定,服务提供商和客户之间的协定,用于肯定所需的服务和预期的服务程度,对互联网公司来说是网站服务可用性的保证。
在这里SLA商定了客户对付互助伙伴的线上运维、方案运维、营业持续性以及故障处置能⼒的要求。
做完预案后,要经由过程预案平台进行练习训练,或者人工练习训练,要当做到熟能生巧,年夜匆匆出问题后才会显得临危不乱。
监控
年夜匆匆出问题。你怎么知道这块出了问题。这时刻必要监控,必要告警。
年夜匆匆年夜盘监控、全链路监控、焦点链路监控、压测监控、限流监控、资本监控、网关监控、渠道如约监控......
规范
年夜匆匆时代是必要订定许多规则,好比宣布红线、红线问责、预案执行规范、紧迫扩容规范、紧迫宣布规范......,我们这里统称年夜匆匆变革规范吧。
无以规则不成周遭,订定这些规范的目标是能让我们明白问题产生后我们应该依照什么流程去应急。
其他
还有许多其他的一些杂七杂八的,好比年夜匆匆前每周周会、年夜匆匆值班职员排班、年夜匆匆作战室、问题的上升轨制等。
到这里,我们万事俱备,只欠春风了。
事中
事中是整个环节最简单的,跨度最短的阶段,然则简单不代表不紧张。主要是存眷以下几件工作:
商品年夜匆匆时段、钱包年夜匆匆时段光阴点值班
年夜匆匆的症结节行动节点记载
年夜匆匆问题记载
重点存眷告警与监控
呈现问题依照预案与预案规范执行,依照问题进级规范进级
年夜匆匆时代严厉节制宣布变革与数据变革,避免影响年夜匆匆
年夜匆匆日会
最紧张的便是要连续存眷告警与监控,一旦呈现问题必要实时相应与止血,严厉依照预案执行。另外便是存眷年夜匆匆每个场次的峰值环境,经由过程主动记载某人工记载的方式进行记载峰值,便利作为下次流量评估的根据。
过后
过后我们最紧张的便是要做年夜匆匆复盘,清点年夜匆匆时代的一些好的点和欠好的点,对付好的点若何延续到下次年夜匆匆乃至更好,欠好的点若何进行调整。营业上存眷哪些商品在哪些区域更好卖一些,哪些弄法更能让用户接受一些;产物侧必要存眷共同营业对付现有的产物模子做出一些调整与优化;技术着重点存眷机能,本次年夜匆匆是否存在机能瓶颈,瓶颈在哪里,若何优化,架构上是否必要调整,下次年夜匆匆若何去支持等。
其次是降级规复,在年夜匆匆前做的降级,在年夜匆匆后必要对其规复。
我们还必要对付体系存在的机能问题进行连续优化改良,然落后行压测,得出结论,再优化,再压测,优化,压测,......。
总结&瞻望
年夜匆匆前:KO年夜会、年夜匆匆周会、细节沟通、流量评估、营业梳理、压测、限流、降级、预案、练习训练、监控、规范。
年夜匆匆中:值班、记载、存眷告警与监控、执行预案、执行规范、日会。
年夜匆匆后:复盘、降级规复、连续优化、连续压测、连续宣布。
每到年夜匆匆,若何保障体系岑岭扛得住、历久安稳是每个年夜匆匆人必需面临的问题。年夜匆匆时代产生的每一个问题都可能被无穷放年夜,以是我们必要谨严看待,这开不得打趣。
更多细节,可以加我微信,我们逐步聊,也可以加入技术群一路探究技术哦。迎接转发,感激存眷。