春节微信访问突发,存储业务如何平稳度过?

存储业务里面有很多访问突发的业务,其中微信就是一个典型的业务。微信承担了亿万用户的图片、视频和文件的收发,遇到特殊热点事件或者重大节假日,访问次数会突发10倍以上的增长。微信是一个海量的业务,平时机器的负载有限,实际运营中不可能预留10倍的Buffer,那么遇到传统节日春节的时候,我们是怎么平稳度过的呢?

春节就是一场保卫战,前期需要充足的准备,每年的Q4,大概国庆后就开始准备春节的事项了。到除夕夜那天,中间会经历圣诞节和元旦节的考验,这是2次战争前的检验。本文主要讲解微信C2C业务春节突发应对。微信C2C主要包括了单人消息和群消息里面收发图片、视频和文件。

主要从4个层面阐述应对春节的保障工作,分为软件保障、硬件保障、容灾柔性保障、监控保障。

软件保障

微信C2C分布式系统承载了微信业务用户海量的图片、视频、文件的上传和下载,通过智能动态路由调度就近接入,为用户提供了优质的服务。能支撑起如此庞大的业务量,得益于微信C2C强大的分布式系统。

上图为整个微信C2C系统的架构全景图,可以分为接入点和中心点两层,主要模块有以下2个:

接入点front_http

部署于全国以及全世界各地AC和OC点的接入模块,负责一个区域的用户上传下载接入,当front_http模块接收到用户上传时,会先将用户数据写入本区域部署的TDC缓存仓库确保数据落地,TDC以LRU方式淘汰老数据,成功后返回用户成功并异步将数据回传回DC中心点。

中心点zone_http

部署于DC点的中心点的数据备份管理模块,负责来自所管辖front_http回传数据的汇总的管理,同时也负责为其他模块提供数据的查找和拉取服务,zone_http一共有三处,上海点负责国内北方地区,深圳点负责国内南方地区,香港点负责港澳台以及国外所有地区。上海、深圳均可独扛全球的C2C服务。

C2C分布式架构优势如下:

1. 微信C2C传图采用存储转发的模式,使得通信双方耦合更小,业务扩展性更强。

2. 用户根据就近原则,通过尽量短的路径连接到加速系统的前端接入点。图片、视频上传到接入点即完成操作,后续的操作对用户透明。

3.接入点与中心存储点之间建立高速的传输通道,可快速在两点之间传输。

4.接入点本身缓存数据,同一个接入点覆盖的用户间传图和视频,在接入点内部完成传输。

5.不同接入点的用户发送,接收接入点通过快速传输通道,主动推送数据到接收用户的服务点,完成加速下载的目标。

6. 接入点可以根据用户的访问情况随时新增,扩容操作简单。每个接入点上线后负载上限确定,超过的访问动态的调度到备份接点。

硬件保障:

1.容量评估和设备报备(容量系统,全面准确)

每年国庆后会针对微信业务单独做一次春节扩容报备,运维团队联合微信业务团队,对齐春节活动的增长情况,综合评估后给出一个增长比例。运维根据增长比例,结合当前系统的负载情况,通过容量系统直接计算出需要扩容的各个模块的设备量。运维根据计算的设备量情况,去资源管理系统提交下达设备报备单,通过资源审核后就可以下单采购了。

容量系统评估预览:

2. 设备申请和扩容(变更系统,一键扩容)

设备采购完毕,交付验收后,运维就可以去资源系统自助申领设备了,申领后的设备自动分配到对应的模块名称下。运维获取到扩容的机器后,可以到变更管理系统提交一键扩容,完成自动部署业务,省时省力。2016年春节扩容,线上扩容5000+台服务器,涉及50多个业务子模块,100+次上线扩容操作,从申请服务器到扩容到线上切量正常访问,只需3天时间。

容灾柔性保障

1.单机模块演习

微信业务所有的功能子模块具备单机容灾自动剔除功能。为了防止单机剔除失效,我们建立了容灾演习系统,每个月有例行的单机死机剔除演习。系统自动根据业务模块演习情况,每周安排一天演习,演习成功会有反馈,演习失败会自动建立问题单派给运维跟进。

2.单机过载压测

每个季度会对线上每个模块做一次单机性能压测,主要是测试模块程序的性能,便于及时修正过载值,防止单模块因为过载值过大导致该模块不可用引发过载失效故障,或者防止过载值太小引起资源浪费。遇到重大节日,元旦或者春节,还会配合业务客户端做一次全路径的压测。微信后台会机器人程序模拟真实用户互发文件来压测线上所有模块,便于快速找出系统的瓶颈点,节前及时解决掉。

3.容灾切换演习

每个季度,微信业务会例行进行一次容灾切换的演习。主要分2个维度,异地容灾切换和内外网切换演习。

异地切换:由于分布点主要集中在各地的OC节点,平时有异常可自动调度到备份节点。但是中心节点只有3个,各地分担了全网用户的数据落地请求。若其中有一个地区的中心节点数据上传有问题,系统可切换到另外中心点上传。由于前端分布点有cache池,数据下载短时间内不会影响很大,这样就达到了中心节点异地切换的目的。

内外网切换:内外网切换主要是中心节点之间的通讯切换,正常情况下深圳、上海、香港三地的中心节点都是走专线互联拉取数据的。若专线异常,这个时候可重试外网连接,也可人工主动切换到外网,根据专线压力的情况,可以按百分比主动调度访问到外网去。

4.突发柔性演习

微信的访问量很庞大,其中视频的流量春节增长迅速,不是简单的扩容就能解决突发流量的容量问题,我们可以提供有损的服务来保障系统的稳定性。针对微信的业务,主要包括朋友圈视频,消息视频、图片,是重点的流量柔性对象。我们建立了一整套立体的柔性方案。柔性分三层:

第一层粗暴柔性,可以直接按比例拒绝用户的上传和下载访问;

第二层分场景柔性,贴近业务场景。例如分上传、下载、拉列表、图片、视频、文件等做适当限制;

第三层分维度柔性,在业务场景的基础上进一步细化,例如按文件大小、访问速度、访问比例、时间段等展开限制。

三层柔性环环相扣,根据实际的情况使用。系统访问持续增长的情况下,可以根据系统负载,循序渐进加大柔性力度,保证系统负载稳定在一个平衡值。遇到系统突发被打爆,也可以一棍子打压,直接调整拒绝比例,系统负载立马下降恢复后,再逐渐放开,配合业务场景的维度柔性,慢慢控制系统负载在一个稳定值。

针对春节我们会制定出详细的柔性方案,根据当前系统扩容后的负载和可支撑的能力,根据各个子业务预计增长情况和需要支撑的量,分类详细列出各个维度柔性的触发条件和采取的柔性策略,春节当晚严格按照计划执行,确保系统在可控范围内。

监控保障

针对春节的保障,监控视图不可缺少,除了平常正常的监控视图外,春节针对性的主要分三个维度:

1.春节监控视图

主要包括需要监控的流量、访问次数、延时和成功率等情况。会做成PC端,其中重要视图投放到电视监控屏幕,同时手机端也同步展示,方便大家节日期间随时掌握业务状态。

2. 柔性视图

主要包括柔性生效后产生的效果监控,例如拒绝的用户数,限制的视频访问次数、限制的回传文件数等等。

3.秒级监控视图

秒级监控是一个重要的监控,主要适用于突发场景,对时间敏感的业务。例如微信元旦、除夕凌晨效应,就是用户发图太集中,大部分集中在第一分钟的前10s,我们传统监控都是分钟级别,一分钟一个点,系统完全看不到用户的行为,所以需要做到秒级监控,拉长为60个点,用户访问及时信息大屏动态展示,便于我们配合柔性策略及时下发,防止系统冲垮崩溃。

除夕保障

节前通过软件保障、硬件保障、容灾柔性保障、监控保障4个维度的准备后,结合扩容后的系统负载情况,运维团队会综合各个因素,列出除夕当天的预案应对策略。主要分2个维度。

柔性操作类:已经明确需要柔性打压的操作,除夕上午运维发布配置生效,提前完成。

另外可能发生的柔性操作,除夕高峰根据制定的计划方案严格执行。

容灾切换类:春节除夕是业务的高峰期,一旦有任何异常,需要立刻恢复业务。例如分布点异常或者丢包,立刻切走。专线拥塞立刻切外网等。微信系统确保切换高速快捷,系统切换秒级下发配置到内存。

人员安排上,春节除夕夜至少2名运维人员和2名开发人员,值班到凌晨2点。

节后总结

最后一个重要的环节就是每年春节后,运维团队、开发团队、微信业务团队,QA团队会一起针对春节的应对情况展开回顾总结,根据除夕当天的所有问题,找出我们还需要不断完善的地方,推动不断优化改进,确保来年的春节相同的问题不会出现第二次。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云基础安全

3分钟了解主机安全问题

《碟中谍4》中,位于迪拜塔137层的数据中心,网络防火墙是军用级别口令和硬件网关,破解防护困难。于是阿汤哥只身从130楼爬到137楼,进入数据中心,绕过防护设备...

1911
来自专栏游戏杂谈

记一次郁闷的更新

  开发的游戏,使用双线,但每次更新都会有玩家反馈说无法进入游戏了。很不幸,上周日更新的时候又遇到了问题了,然后开始排查问题…

544
来自专栏云基础安全

主机安全防护:腾讯云云镜产品

腾讯云云镜是基于AI算法的轻量化主机安全软件,帮助用户解决木马感染(勒索,被篡改),被入侵(挖矿,数据窃取),漏洞,登陆密码爆破等主机安全问题。了解云镜: ht...

1890
来自专栏安恒信息

OLE 0Day漏洞病毒通杀主流Windows

Windows被曝存在一个编号为CNNVD-201410-268的OLE 0Day漏洞,该漏洞影响所有主流Windows操作系统(不包括XP系统)。此外,俄罗斯...

2805
来自专栏日志易的专栏

法规解读:什么样的日志审计产品才能达到合规要求?

按照新法规的要求,传统的运维做法及日志分析方式很难满足合规要求,存在众多的弊端与难题,如何高效、高性价比的解决此问题?

2360
来自专栏SDNLAB

【双语频道】ONOS架构原理

The purpose of this ONOS talk is to convey the rationale behind our approach to ...

3149
来自专栏企鹅号快讯

你的密码被破解了?看看你的Apple ID、邮箱密码是不是这些!

今天小沃本来想买元旦的车票来着,结果发现密码忘了,在输入两次错误以后,为了防止账户冻结选择了重新设置密码。卖票的 App 还不让设置太简单的密码,本来还想吐槽整...

2356
来自专栏刘君君

Rest Notes-设计Web架构:问题与领悟

1123
来自专栏张善友的专栏

OpenPetra 以及CentOS Mono 3.0 部署包

OpenPetra,是一款为非盈利及其他慈善组织提供的管理软件。该软件具有很好的灵活性和可定制化,可以帮助志愿者和非盈利机构进行任务管理。OpenPetra目...

1658
来自专栏区块链

提升网络安防 实现等保三级的 12 个难点分析

企业的安全等级防护建设可以提升信息系统的信息安全防护能力,为企业的业务发展提供安全保障。那么,企业如何做好网络安全工作,达到等保三级要求? 社区上周进行交流活动...

3059

扫码关注云+社区