《云原生架构白皮书2022新版》——各个行业面临的挑战及解决方案——南瓜电影 CTO 庄徐麟分享如何在 7 天内全面实现业务 Serverless 化(1) https://developer.aliyun.com/article/1232779
2、选型
针对以上的问题,我们在想下一步应该怎么改造,当时内部有两个方案,但都存在一些弊端:
方案一:脚本深度优化,虽然能解决一些重复运维问题,但维护成本太高了,真正能把脚本写好的运维人员太难招了。
我们也一直在用脚本,但确实没办法完全自动化,紧急扩容时还得人工购买 ECS。
方案二:自建 K8s,虽然能很好解决高密部署的问题,极大降低成本,也能自动扩容应用实例,但爆炸半径比 ECS 大,我们还是有点担心。最重要的是 K8s 学习成本实在是太高了,搭个环境跑跑容易,但正儿八经上生产的话还是要组建好专业团队,短期内显然无法完成。
后来,经过阿里云同事介绍,很快又有了方案三 —— 使用 SAE,也是最终落地的方案。
方案三:选择阿里云 Serverless 应用引擎(简称 SAE),对 SAE 的第一印象就是简单上手,省时省力,不用做
任何改造,WAR/JAR 包直接上传部署,也不用买机器运维机器,节省开发大量时间。并且,SAE 就是一个超大规
模的弹性资源池,想弹多少弹多少,想什么时候弹就什么时候弹,非常适合南瓜电影的业务场景。
3、实战
ROUND 1:CI/CD Pipeline – 加速迭代效率
在正式迁移业务之前,我们做的第一件事是基于 Travis CI + SAE 把 CI/CD 的流水线打通,提升发版效率。之前,
当我们在 GitHub 上提交代码时,Travis CI 工具会自动集成,自动进行单元测试,测试通过后,会把文件上传到私
有化 OSS 上,然后部署到 ECS 上。使用 SAE 后,只需要把 deploy 到 ECS 改成 deploy 到 SAE,非常简单,
对开发侧没有任何影响。并且在应用部署的时候还能选择配置单批、分批、金丝雀等多种发布策略,异常时立刻中止
和回滚,十分高效。
ROUND 2:上线第一个应用 API 网关
接下来就是挑选第一个应用实战了。当时我们做了一个大胆的决定:首先迁移 API 网关。API 网关是我们内部最核
心的应用也是压力最大的应用,为什么这么选择呢?
首先,它有全国各地的部署。第二,它本身就有大量的 ECS 集群,我们只要操作调度系统把部分流量打到 SAE,
假设 SAE 出现不稳定,也可以瞬间把流量切回到 ECS,对用户几乎没有影响。第三,API 网关作为总流量入口,
突发流量较多,比较匹配 SAE 的弹性优势,可以最大程度的测试出 SAE 是否适合我们的业务。
起初上生产环境,我们自己也很担心,为防止意外发生,我们决定让原有的 ECS 实例和 SAE 上的实例一起跑,如
果一方发生问题立马切换流量,跑稳之后再将 ECS 实例作为灾备链路。
《云原生架构白皮书2022新版》——各个行业面临的挑战及解决方案——南瓜电影 CTO 庄徐麟分享如何在 7 天内全面实现业务 Serverless 化(3) https://developer.aliyun.com/article/1232777