九月中旬,北京秋意渐浓。
“颤动视频“的用户量,在会面后的这一周里,从五十万暴涨到了一百万。
日活跃用户也突破了五十万。
这个增速,超出了秦风最乐观的预期。
但也带来了问题——伺服器负载飆升,已经到了百分之八十的警戒线。如果再不扩容,隨时可能宕机。
宕机,对一个网际网路產品来说,是致命的。
用户会骂你、刪你、去用你的竞品,然后你辛辛苦苦积累的用户,一夜之间就没了。
秦风很清楚这一点。
他召集了一次紧急会议。
参会的人不多——张浩、李萌、王健,再加上被临时叫来的凌玥。
凌玥很少参加“颤动视频“的会议,但这次的情况比较特殊——伺服器扩容涉及到分布式系统的架构调整,张浩一个人可能搞不定。
会议在“颤动视频“的办公室里开。
秦风坐在会议桌的主位上,面前摆著一台笔记本电脑,屏幕上显示著伺服器的实时监控数据——cpu使用率、內存使用率、磁碟i/o、网络带宽,每一项都標著红色的警告。
“现在的问题是,我们的伺服器规模太小了。“张浩先开口,“只有二十台,面对一百万用户,每台伺服器要承载五万用户的数据请求。这个负载,已经接近极限了。“
李萌在旁边补充:“而且推荐算法的计算量也隨著用户量暴涨,如果不优化算法或者增加计算资源,推荐速度会下降。用户等超过两秒,就会不耐烦,然后关掉应用。“
王健没说话,但手指在桌面上无意识地敲著。
凌玥坐在角落里,一直没说话。她戴著一副黑框眼镜,头髮扎成了一个松松的丸子,看起来很安静,但眼神一直在秦风、张浩和李萌之间转。
秦风看著数据,沉默了好一会儿。
然后他开口了:“扩容方案,我想了两个。大家听听,选一个。“
他在白板上写了两个方案——
“方案一:立即扩容伺服器,增加五十台,预计成本两百万。这个方案的好处是稳妥,扩容后至少半年內不用担心负载问题。坏处是成本高,而且如果用户量增速放缓,会浪费资源。“
“方案二:优化推荐算法,降低计算量,同时渐进式扩容,预计成本一百万。这个方案的好处是经济,不会浪费资源。坏处是优化算法需要时间,期间如果用户量继续暴涨,可能会撑不住。“
他放下笔,看著三个人。
“你们倾向哪个“
张浩先开口:“我倾向方案一。稳妥一点好,万一宕机了,损失的不只是钱,还有口碑。“
李萌说:“我倾向方案二。算法还有优化空间,我可以把模型压缩一下,减少计算量。而且渐进式扩容更灵活,可以根据实际负载动態调整。“
王健想了想,说:“我中立。前端这边,不管选哪个方案,我都要优化一下视频加载的逻辑——现在是一个视频加载完才开始播放,可以改成预加载,用户还在看第一个视频的时候,后台就开始加载第二个视频。“
凌玥忽然开口了。
“两个方案结合。“
所有人都看向她。
凌玥的声音很轻,但每个字都清清楚楚:“先扩容二十台应急,把负载降到百分之五十以下,让系统恢復稳定。同时优化算法,降低计算量,为下一波增长做准备。这个方案,成本大约一百五十万,介於方案一和方案二之间。“
秦风看著她,没说话。
凌玥继续说:“扩容的时候,要注意一个问题——如何在不停止服务的情况下迁移数据。这个问题,如果处理不好,会导致扩容期间用户无法正常使用。“
“你有办法吗“秦风问。
凌玥点了点头:“蓝绿部署。旧伺服器保持运行,新伺服器上线后,逐步把流量切过去。整个过程,用户无感知。“
秦风想了想,说:“就按凌玥说的办。张浩负责扩容,李萌负责算法优化,王健负责前端预加载,凌玥负责整体技术架构的调整。“