客户案例 > 案例详情

南瓜电影 7 天内全面 Serverless 化实践

客户介绍

南瓜电影成立于 2015 年,是国内近两年发展非常迅速的流媒体平台,凭借着无广告、纯付费的商业模式,在影迷圈中打响了一定的知名度。之后又靠着很强的社区互动性(AI 智能推荐、影评互动、通过放映厅实现线上“云观影”等),迅速完成会员增长及流媒体市场占位。接下来将逐渐往多元化视频平台发展,如纪录片、各类自制节目等。

作为互联网风口上的行业,流量和生命周期会因为市场风向的变化而有着截然不同的表现,这对企业的创新和低成本试错提出了更高的要求。南瓜电影的整体应用架构也随着业务的高速发展,持续不断地进化。

业务挑战

从创业之初,南瓜电影的整体应用架构就构建在阿里云之上,是一个典型的“生在云上,长在云上”的企业。底层使用阿里云 ECS,基础设施、中间件、数据库、大数据服务、云安全等也全部使用阿里云产品,最大化云的价值。基础服务之上是南瓜电影自研的能力中心,基于算法和视频增强能力,提供会员、自适应码率、搜索引擎、影评、放映厅等服务。通过 SLB 全球调度以及 WAF 安全接入对各种用户提供服务。上层承接多端,基本涵盖了市面上全部的终端类型:包括手机、Pad、网页以及各种客户端、车载设备等。

随着业务的不断发展,基于 ECS 的运维架构逐渐暴露了不少问题,主要有:

  • 弹性扩容太慢:流量洪峰时,需临时购买新机器再逐台部署,非常耗时也保证不了系统 SLA。

  • 发版慢且易出错:互联网频繁发布是常态,但每次几百台 ECS 服务器一台台地部署发版,速度非常慢,还容易出错。南瓜电影的技术团队一开始也尝试过脚本化部署,虽然能解决一些重复运维问题,但当服务器组一多,脚本频繁修改,还会引入新的问题,且定位问题也比较困难。此外,脚本的方式仍然无法实现完全自动化,紧急扩容时还得人工购买 ECS。

  • 系统维护成本高:传统集群运维繁琐,人员技能要求非常高,既要精通 Lua/Ansible 脚本等,又要懂云产品网络配置和监控运维。早期公司并没有专职运维人员,耗费了开发人员大量的精力。

  • 容量规划难,资源利用率低:对流媒体行业,高峰期一般在中午或晚上,其它时间访问都比较低,难以精准储备资源容量。通常按照峰值长期固定保有服务器,资源利用率相对比较低。

  • 权限分配繁琐:面对企业多租户时,权限隔离往往是一个非常头疼的问题。尤其是新人到岗或者跨团队联调时,配置用户组、RAM 权限、新机器登录连接方式,都非常繁琐,账号管理人员时常会成为瓶颈。

阿里云的解决方案
应用全面 Severless 化

SAE 简单上手、省时省力,无需做任何改造 WAR/JAR 包直接上传部署,且无需购买机器并部署、安装和运维,可节省技术团队大量时间。SAE 就是一个超大规模的弹性资源池,想弹多少弹多少,想什么时候弹就什么时候弹,非常适合南瓜电影的业务场景。

在正式迁移业务之前,基于 Travis CI + SAE 把 CI/CD 的流水线打通,提升发版效率。使用 SAE 之前,在 GitHub 上提交代码时,Travis CI 工具会自动集成,自动进行单元测试,测试通过后,会把文件上传到私有化 OSS 上,然后部署到 ECS 上。使用 SAE 后,只需要把 deploy 到 ECS 改成 deploy 到 SAE,对开发侧没有任何影响。此外,在应用部署的时候可以选择配置单批、分批、金丝雀等多种发布策略,异常时立刻中止和回滚,十分高效。

通过一周的时间,南瓜电影系统所有的应用实现了全面 Severless 化。整个迁移过程平滑、无任何改造成本、零故障,并且只投入了 1~2 个研发人员。

业务价值

相比之前传统服务器模式,整体开发效率提升了 70%,成本下降超过 40%,扩容效率提升了 10 倍以上。具体价值说明如下:

  • 扩容更快:不用考虑高峰期实例不够、低谷期实例浪费,SAE 会按照最优化自动伸缩调整实例数。

  • 发布更快:通过 CI/CD 流水线提升发版效率,通过 Cloudtoolkit 插件快速实现本地一键部署到云端 SAE,开发调试更便捷。

  • 运维更省心:免运维不是不运维,当用户收到告警,登上控制台开始修复的一刹那,基本上就已经完成了,整个运维速度比人工更加快捷。

  • 查问题更快:SAE 自带的监控能力,为技术团队排查问题节省了大量的时间。