Serverless 应用引擎 SAE(Serverless App Engine)具备免运维IaaS、按需使用、按量计费、低门槛服务应用上云,并且支持多种语言和高弹性能力等特点,能够有效解决长期以来运维复杂、资源利用率不高、开发迭代效率低等问题。本文以在线教育行业的海底小纵队学英语为例,介绍SAE在支持应用极速上云方面的成功案例。
背景信息
海底小纵队学英语隶属于成都创感时代科技有限公司,是万达宝贝王全球正版教育授权的英语学习APP。海底小纵队学英语在传统“北美真人外教”沉浸式教学和剑桥儿童教学体系基础上,充分融合AI人工智能、云计算和动作捕捉等先进技术与教育,并广泛应用,将儿童IP改编成体系化低幼儿童(专注2~8岁)EQ英语启蒙APP,旨在促进中国孩子英语听、说、读、写、看全面进阶。
业务痛点
海底小纵队学英语最初采用自建K8s集群的方式,管理计算资源与部署业务。由于业务不断发展,海底小纵队学英语面临以下业务痛点。针对这些痛点,SAE逐一攻破。
业务痛点 | 为什么选择SAE |
运维复杂:需要维护K8s集群,黑屏化运维,且需要集成所有依赖的云产品。 | 微服务或单体应用等业务代码,可以零代码改造享受Serverless红利。SAE无缝对接各个云服务,提供一站式PaaS体验。 |
迭代效率低:运维人员既需要专注业务,又需要负责底层组件的开发和运维。 | SAE免运维K8s集群和IaaS主机,让开发人员更专注于业务本身。 |
资源成本高:需要长期保有固定的IaaS主机,业务低峰期闲置资源浪费大。 | SAE按需使用,按量付费,无闲置浪费。结合弹性、一键启停等功能,降低闲置资源成本。 |
容量评估效率低:依据人工评估,缺乏自动化,评估结果不精准。 | SAE支持基于CPU、内存使用率等监控指标自动触发扩缩容,也支持定时弹性。灵活的弹性策略能够轻松应对流量高峰,按需使用资源。 |
稳定性隐患:容易误操作K8s YAML和底层资源,造成集群事故,进而导致服务不可用。 | 由平台兜底微服务组件与K8s集群的稳定性,且SAE不暴露原生K8s,也通过堡垒机对资源做了一层隔离,有效避免开发人员的误操作导致的生产环境故障。 |
解决方案
海底小纵队学英语解决方案逻辑图如下所示。
海底小纵队学英语从自建K8s集群迁移至SAE时,无需改造业务代码,只需通过Jenkins与堡垒机,即可对接SAE与原有的自建运维系统。由于海底小纵队学英语所属在线教育行业,其业务流量存在明显的潮汐性,而Serverless的极致弹性能力正好符合其需求与痛点。
因此,海底小纵队学英语迁移至SAE之后,SAE就被作为一个按需使用、按量计费的计算资源池。与此同时,SAE作为应用PaaS平台,屏蔽了底层复杂的K8s运维,提供了完善的应用生命周期管理与监控能力。并且,SAE可以集成各种云产品,例如存储、网络、数据库、日志等组件,提供一站式PaaS服务。
使用效果
零改造:微服务或单体应用等业务代码,可以零代码改造享受Serverless红利。
弹性降本:通过一键定时启停应用,测试环境成本降低2/3以上;通过SAE的秒级自动弹性,动态扩容轻松应对峰值,峰谷时按需自动缩容,保证系统SLA的同时,比以往ECS保有方式节省了1/4左右的硬件成本。
免运维提效:免运维K8s集群和IaaS主机,让开发人员更专注于业务本身。同时通过Jenkins与Maven插件,将应用部署到SAE,简化运维复杂度。
稳定性:SAE内置K8s集群底座和微服务框架,同时用户也通过堡垒机对资源做了一层隔离,有效避免因开发人员的误操作而导致生产环境故障。
服务集成、一站式体验:SAE自动集成了阿里云的各项基础设施类产品、微服务生态周边产品,DevOps产品等,提供了开箱即用的一站式解决方案。