九月中旬,北京秋意渐浓。
    “颤动视频“的用户量,在会面后的这一周里,从五十万暴涨到了一百万。
    日活跃用户也突破了五十万。
    这个增速,超出了秦风最乐观的预期。
    但也带来了问题——伺服器负载飆升,已经到了百分之八十的警戒线。如果再不扩容,隨时可能宕机。
    宕机,对一个网际网路產品来说,是致命的。
    用户会骂你、刪你、去用你的竞品,然后你辛辛苦苦积累的用户,一夜之间就没了。
    秦风很清楚这一点。
    他召集了一次紧急会议。
    参会的人不多——张浩、李萌、王健,再加上被临时叫来的凌玥。
    凌玥很少参加“颤动视频“的会议,但这次的情况比较特殊——伺服器扩容涉及到分布式系统的架构调整,张浩一个人可能搞不定。
    会议在“颤动视频“的办公室里开。
    秦风坐在会议桌的主位上,面前摆著一台笔记本电脑,屏幕上显示著伺服器的实时监控数据——cpu使用率、內存使用率、磁碟i/o、网络带宽,每一项都標著红色的警告。
    “现在的问题是,我们的伺服器规模太小了。“张浩先开口,“只有二十台,面对一百万用户,每台伺服器要承载五万用户的数据请求。这个负载,已经接近极限了。“
    李萌在旁边补充:“而且推荐算法的计算量也隨著用户量暴涨,如果不优化算法或者增加计算资源,推荐速度会下降。用户等超过两秒,就会不耐烦,然后关掉应用。“
    王健没说话,但手指在桌面上无意识地敲著。
    凌玥坐在角落里,一直没说话。她戴著一副黑框眼镜,头髮扎成了一个松松的丸子,看起来很安静,但眼神一直在秦风、张浩和李萌之间转。
    秦风看著数据,沉默了好一会儿。
    然后他开口了:“扩容方案,我想了两个。大家听听,选一个。“
    他在白板上写了两个方案——
    “方案一:立即扩容伺服器,增加五十台,预计成本两百万。这个方案的好处是稳妥,扩容后至少半年內不用担心负载问题。坏处是成本高,而且如果用户量增速放缓,会浪费资源。“
    “方案二:优化推荐算法,降低计算量,同时渐进式扩容,预计成本一百万。这个方案的好处是经济,不会浪费资源。坏处是优化算法需要时间,期间如果用户量继续暴涨,可能会撑不住。“
    他放下笔,看著三个人。
    “你们倾向哪个?“
    张浩先开口:“我倾向方案一。稳妥一点好,万一宕机了,损失的不只是钱,还有口碑。“
    李萌说:“我倾向方案二。算法还有优化空间,我可以把模型压缩一下,减少计算量。而且渐进式扩容更灵活,可以根据实际负载动態调整。“
    王健想了想,说:“我中立。前端这边,不管选哪个方案,我都要优化一下视频加载的逻辑——现在是一个视频加载完才开始播放,可以改成预加载,用户还在看第一个视频的时候,后台就开始加载第二个视频。“
    凌玥忽然开口了。
    “两个方案结合。“
    所有人都看向她。
    凌玥的声音很轻,但每个字都清清楚楚:“先扩容二十台应急,把负载降到百分之五十以下,让系统恢復稳定。同时优化算法,降低计算量,为下一波增长做准备。这个方案,成本大约一百五十万,介於方案一和方案二之间。“
    秦风看著她,没说话。
    凌玥继续说:“扩容的时候,要注意一个问题——如何在不停止服务的情况下迁移数据。这个问题,如果处理不好,会导致扩容期间用户无法正常使用。“
    “你有办法吗?“秦风问。
    凌玥点了点头:“蓝绿部署。旧伺服器保持运行,新伺服器上线后,逐步把流量切过去。整个过程,用户无感知。“
    秦风想了想,说:“就按凌玥说的办。张浩负责扩容,李萌负责算法优化,王健负责前端预加载,凌玥负责整体技术架构的调整。“
    “有问题吗?“
    “没有。“四个人异口同声。
    会议结束后,团队立刻投入了工作。
    张浩联繫了云服务商,加急採购了二十台伺服器。正常情况下,採购流程需要三到五个工作日,但张浩在电话里跟对方磨了半个小时,最后加了两万块钱的加急费,把交付时间压到了两天。
    李萌开始优化算法。
    她把推荐模型的参数压缩了百分之三十——通过剪枝和量化,把模型的体积缩小,计算速度提升,同时保持推荐准確率不下降太多。这是个精细活儿,需要反覆调试,反覆验证。
    王健开始优化前端。
    他加入了预加载功能——用户在看第一个视频的时候,后台静默加载第二个、第三个视频。当用户滑到下一个视频时,不需要等待加载,直接播放。这个功能,大大提升了用户的使用体验。
    凌玥负责整体架构。
    她把“颤动视频“的伺服器架构,从单机部署改成了分布式集群。负载均衡、数据分片、故障转移、自动恢復,每一个环节她都亲自过了一遍,確保没有单点故障。
    扩容的过程,並不顺利。
    他们遇到了好几个技术问题——
    数据迁移时,如何保证数据一致性?
    凌玥的解决方案是:双写机制。数据同时写入旧伺服器和新伺服器,等数据完全同步后,再切换流量。
    负载均衡策略,如何选择?
    凌玥选了基於请求响应时间的动態负载均衡——哪台伺服器的响应时间最短,就给哪台分配更多请求。这个策略,比静態的轮询或者隨机分配,要聪明得多。
    故障转移,如何做到秒级切换?
    凌玥在每台伺服器上部署了一个心跳检测程序——如果某台伺服器宕机了,心跳停止,负载均衡器会在三秒內检测到,並把流量切换到其他伺服器。
    三天三夜,团队几乎没怎么睡觉。
    张浩的眼圈黑了,李萌的嘴唇乾裂了,王健的手指敲键盘敲得发了麻,凌玥的话更少了,整天整天地盯著屏幕,偶尔站起来活动一下僵硬的脖子。
    秦风也一直在。
    他不是技术专家,帮不上具体的忙,但他可以帮团队买饭、买咖啡、订夜宵,可以在他们疲惫的时候讲个冷笑话,可以在他们迷茫的时候给一个坚定的眼神。
    第三天晚上,扩容终於完成了。
    系统恢復了稳定——伺服器负载降到了百分之四十,推荐算法的响应时间维持在五十毫秒以內,前端预加载功能运行正常。
    张浩盯著监控屏幕,长长地吐了一口气:“活过来了。“
    李萌趴在桌上,秒睡。
    王健靠在椅背上,闭著眼睛,手指还在无意识地敲著。
    凌玥还在敲代码——她在处理一些善后工作,把扩容过程中的操作记录、配置文件、故障处理方案,都整理成了一份技术文档。
    秦风看著他们,心里涌起一阵暖意。
    这不是僱佣关係,这是战友。
    他走出办公室,站在走廊里,给每个人点了一杯热奶茶——张浩要半糖,李萌要全糖,王健要无糖,凌玥要温热的无糖乌龙茶。
    奶茶送来的时候,四个人都抬头看著他,眼睛里有著说不出来的东西。
    “辛苦了。“秦风说。
    简单的三个字,但每个人都听懂了。
    (本章完)

章节目录

重生高三,我带着1GU盘所有内容均来自互联网,PO18脸红心跳只为原作者佚名的小说进行宣传。欢迎各位书友支持佚名并收藏重生高三,我带着1GU盘最新章节。