乐高用Serverless应对流量高峰
乐高,英文名LEGO,这家全球最大玩具公司,在数字化转型路上也有它的「困惑时代」。
乐高直购顾客技术工程经理Nicole Yip表示,与其他电子商务企业类似,新冠疫情的出现也将乐高的在线订单流量推上历史高点。Yip指出,“想象一下,如果后端系统规模受限、公司内部又只能以整体方式调度设施资源,突如其来的峰值与同比流量增长必然要造成大麻烦。”
但有时候,这样的麻烦就是会不期而遇。她回忆道,2017年乐高曾经组织过一场备受瞩目的销售活动,当时推出的是公司有史以来发布的尺寸最大的《星球大战》千年隼号套装。在发布当天,乐高遭遇到巨大的峰值流量,后端服务明显不堪重负。于是,失望的客户们只能对着维护页面捶胸顿足。
经过排查,乐高的开发团队发现引发故障的罪魁祸首正是计算销售税的这部分对应功能。于是,运营团队立即对快速达到处理极限的内部税收计算系统进行了回调。Yip感慨道,“从那时候开始,我们就意识到乐高的业务正在快速增长,而本地系统已经无法支撑起如此迅猛的发展脚步。”
经过几番考虑,乐高公司决定启动云迁移计划。
云探索之旅
在云资源的支持下,乐高得以专注于执行业务逻辑,并将负载分发在多个serverless服务层当中。Yip表示,“我们精心挑选的第三方云服务商负责对负载进行批量处理,他们同时也提供支付功能及内容管理系统等其他专业服务。”其中的每一层都在设计中充分考虑到自动化与独立扩展需求,能够从容应对不断变化的流量态势。
乐高的云探索之旅始于2018年,最先迁移的只有一项支撑性的销售计税服务,之后又陆续迁移了三项其他后端处理服务。10 个月之后,乐高决定利用一套完全serverless平台匹配现有本地功能,到这时新平台已经能够处理等同于原有本地设施的流量与交易负载。她回忆道,serverless平台的交易率与流量很快就超过了本地设施,而且之后的每个月都在刷新历史纪录。
乐高于2020年开始制定正式的云发展路线图,不断壮大的相关运营团队并辅以这套刚刚上线几个月的新平台,有人向Yip提出了新问题,即如何应对突然爆发的新冠疫情以及由此引发的消费者行为变化。她也在思考,“我们能不能实现这一雄心勃勃的发展路线图,将远程办公的工程师数量翻上一番,同时始终维持平台稳定运行?”事实给出了肯定的答案,流量也如预期般攀升至新的高点。Yip提到,乐高后来又将服务数量再次翻倍,用于应对日益繁忙的在线销售业务。
serverless提质增效
过去一年半以来,乐高集团还将团队中工程师的人数增加了两倍,另外推出了36项新的serverless服务。Yip解释道,“不断壮大的团队意味着我们需要承担更多以往由本地基础设施团队集中处理的任务。而自动化,正是支持这支新团队及应用工程师们,并将他们开发出的功能与服务投入生产流程的关键所在。”
乐高推进业务转型的终极目标,是将应用工程师们培养成DevOps工程师,引导他们在生产的同时负责运营自己的服务成果。为了向这个目标坚实迈进,乐高提出了一项新标准,要求所有serverless服务都采用金丝雀软件更新方法——即在广泛发布正式版本之前,先部署一小部分服务器以供测试。Yip表示,serverless运营还要求值班团队集中监控各项关键高级指标,并根据不同服务的实际态势设置默认警报。
这相当于给乐高的工程团队提供了一个起点,帮助开发者学会监控生产状态下的服务,由此检测并快速应对相关职能空间内发生的问题。随着团队的快速增长,不同工程师所拥有的实践经验也将有所区别,这就让以往心领神会式的默契合作无法继续满足要求。为此,乐高为服务的部署及监控推出了新的指南,帮助团队成员轻松获得掌控权。
小结
展望未来,乐高集团计划为其他可靠性与性能支柱制定标准,并努力提升指标可见性。“我们希望以集中化方式统一展现工程师们所拥有的服务与各项服务的当前运行状态。”Yip最后总结道。在这样的高透明度、高运作效能态势之下,相信乐高还将创下更多令人印象深刻的新纪录。