背景概述
南瓜电影成立于 2015 年,是国内近两年发展非常迅速的流媒体平台,凭借着无广告、纯付费 的商业模式,在影迷圈中打响了一定的知名度;之后又靠着很强的社区互动性(AI 智能推荐、 影评互动、通过放映厅实现线上“云观影”等),迅速完成会员增长及流媒体市场占位;接下 来将逐渐往多元化视频平台发展:如纪录片、各类自制节目等。
需求分析
南瓜电影底层使用阿里云 ECS,基础设施、中间件,数据库、大数据服务、云安全等也全部使用阿里云产品,但随着业务的不断发展,基于 ECS 的运维架构逐渐暴露了很多问题,主要有:
- 弹性扩容太慢:流量洪峰时,需临时购买新机器再逐台部署,非常耗时也保证不了系统 SLA。
- 发版慢&易出错:互联网频繁发布是常态,但每次几百台服务器一台台部署发版非常慢,一 不小心就出错。也尝试过脚本化部署,跑顺确实省事,但当服务器组一多,脚本不断修改过程 中,万一中间卡壳了,定位问题非常困难。
- 系统维护成本高:传统集群运维繁琐,人员技能要求非常高:既要精通 lua/ansible 脚本 等,又要懂云产品网络配置和监控运维。早期公司并没有专职运维人员,耗费了开发大量的 精力,非常之痛。
- 容量规划难,资源利用率低:对流媒体行业,高峰期一般在中午或晚上,其它时间访问都比 较低,但很难精准备容。我们一般是按照峰值长期固定保有服务器,资源利用率相对比较低。
- 权限分配繁琐:面对企业多租户时,权限隔离往往是一个非常头疼的问题。尤其是新人到岗 或者跨团队联调时,配置用户组、RAM 权限,新机器登陆连接方式,非常繁琐,账号管理人员 也时常会成为瓶颈。
解决方案
针对以上的问题,南瓜电影在权衡了几个方案之后,最终选择了阿里云 Serverless 应用引擎( 简称 SAE),简单上手,省时省力,不用做任何改造,WAR/JAR 包直接上传部署,也不用买 机器运维机器,节省开发大量时间。并且,SAE 就是一个超大规模的弹性资源池,想弹多少弹 多少,想什么时候弹就什么时候弹,非常适合南瓜电影的业务场景。
在正式迁移业务之前,南瓜电影做的第一件事是基于 Travis CI + SAE 把 CI/CD 的流水线打 通,提升发版效率。之后先用了3天完成核心应用 API 网关的迁移上线,第5天验证结束100% 流量打到 SAE 上,第6~7天把其余30多个系统快速迁移到 SAE,前后只用了7天就完成了整 个系统的迁移,整个过程非常顺利。
用户价值
- 扩容更快:再也不用考虑高峰期不够、低谷期浪费,SAE 会按照最优化自动伸缩调整实例数,比以往方式节省了40% 左右的硬件成本
- 发布更快:通过 CI/CD 流水线提升发版效率、通过 Cloudtoolkit 插件快速实现本地一键部署到 云端 SAE,开发调试很方便。