南瓜电影 CTO 庄徐麟分享如何在 7 天内全面实现业务 Serverless 化
南瓜电影成立于 2015 年,是国内近两年发展非常迅速的流媒体平台,凭借着无广告、纯付费的商业模式,在影迷圈
中打响了一定的知名度;之后又靠着很强的社区互动性(AI 智能推荐、影评互动、通过放映厅实现线上“云观影”等),
迅速完成会员增长及流媒体市场占位;接下来将逐渐往多元化视频平台发展:如纪录片、各类自制节目等。
作为互联网风口上的行业,流量和生命周期会因为市场风向的变化而有着截然不同的表现,这对企业的创新和低成本
试错提出了更高的要求。南瓜电影的整体应用架构也随着业务的高速发展,持续不断地进化。今天我主要从三个部分
来和大家分享这一段发展历程:
痛点:回顾南瓜电影当时的业务、架构现状和痛点。
选型:分享在技术选型之路上我们的思考和决策,以及为什么最终会选择使用 SAE 这款产品。
实战:我们是怎么一步步落地、在短短 7 天内将整个平台几百台服务器,30 多个系统全面 Serverless 化的。
1、痛点
从创业之初,南瓜电影的整体应用架构就构建在阿里云之上,是一个典型的“生在云上,长在云上”的企业。底层使用阿里云 ECS,基础设施、中间件,数据库、大数据服务、云安全等也全部使用阿里云产品,最大化云的价值。基
础服务之上是我们自研的能力中心,基于算法和视频增强能力,提供会员、自适应码率、搜索引擎、影评、放映厅等
服务。通过 SLB 全球调度以及 WAF 安全接入对各种用户提供服务。上层承接多端,基本涵盖了市面上全部的终端
类型:包括手机、Pad、网页以及各种客户端、车载设备等。
但随着业务的不断发展,基于 ECS 的运维架构逐渐暴露了很多问题,主要有:
1)弹性扩容太慢:流量洪峰时,需临时购买新机器再逐台部署,非常耗时也保证不了系统 SLA。
2)发版慢 & 易出错:互联网频繁发布是常态,但每次几百台服务器一台台部署发版非常慢,一不小心就出错。也尝
试过脚本化部署,跑顺确实省事,但当服务器组一多,脚本不断修改过程中,万一中间卡壳了,定位问题非常困难。
3)系统维护成本高:传统集群运维繁琐,人员技能要求非常高:既要精通 lua /ansible 脚本等,又要懂云产品网络
配置和监控运维。早期公司并没有专职运维人员,耗费了开发大量的精力,非常之痛。
4)容量规划难,资源利用率低:对流媒体行业,高峰期一般在中午或晚上,其它时间访问都比较低,但很难精准备容。
我们一般是按照峰值长期固定保有服务器,资源利用率相对比较低。
5)权限分配繁琐:面对企业多租户时,权限隔离往往是一个非常头疼的问题。尤其是新人到岗或者跨团队联调时,
配置用户组、RAM 权限,新机器登陆连接方式,非常繁琐,账号管理人员也时常会成为瓶颈。
一场热映电影加速了南瓜电影技术升级思考
相信会有很多企业也面临和我们一样的难题,同时也制约着公司的发展。但开发人员都存在一定的惰性,认为只要不
出事就先继续耗着。而真正让我们下定决心做技术升级的,还得感谢 19 年的那场热映电影。
那天早上接到同学的电话说业务压力大,我说:“不可能,一般早上流量比较少”, 他说:“不知道,各种业务都
开始预警,我已经开启了预案,不断的买买买机器了”。后来才知道 1 个小时内新增注册用户突破 80W+(是平时
峰值的 5 倍以上),对南瓜电影来说是一个巨大的挑战和机遇。很快服务器直接崩了,流量总入口 API 网关撑不住,
紧接着后端服务、数据库都异常。
大家紧绷着神经,开始了全链路紧急扩容:从买 ECS,上传脚本到新机器,运行脚本,扩容 DB…... 整个过程断断
续续对用户产生影响,有些用户直接访问不了,持续了 4 个小时才最终完全恢复。
因平台都是付费客户,那天我们的客服电话从早上忙到晚上,不断有用户来投诉,说早上不能使用,要求赔偿。
所以,像这种突然袭击对团队来说是比较锻炼团队的事,而对公司来说是损失比较大的事。我们对那天所有打开 APP 的用户都进行了赔偿:当天使用全部免费,这也是业务层面的损失。不过最终因为这场电影,南瓜电影的日新增注册用户一路高涨,业务增速明显。但回顾整个运维过程,耗时 4 个小时,太惊险刺激了,我们不想再经历第二次了。
《云原生架构白皮书2022新版》——各个行业面临的挑战及解决方案——南瓜电影 CTO 庄徐麟分享如何在 7 天内全面实现业务 Serverless 化(2) https://developer.aliyun.com/article/1232778