Serverless 应用引擎 SAE(Serverless App Engine)能帮助企业极速上云,从容应对突发流量洪峰,以及通过灵活的应用启停来降低资源使用成本。本文以在线教育应用Timing App为例,介绍SAE在支持在线教育应用上云方面的成功案例。
背景信息
Timing App是武汉氪细胞网络技术有限公司出品的在线学习的教育社交类应用。不同于传统的在线学习应用,Timing app 提供了Timing自习室、图书馆学习、视频打卡、学习日记、契约群、学习服务等多类具有社交性质的在线教育服务,帮助用户找到自己的学习节奏并完成学习目标。
Timing App采用单体PHP架构,2020年开始尝试基于开源项目自建微服务架构和应用性能管理(APM)体系,但终因技术门槛高和人力不足等因素而未能成功。其业务具有潮汐特性,用户访问集中在夜间和节假日。2020年初,由于COVID-19疫情,远程学习成为重要的教育手段,在此期间Timing App的峰值流量暴增4倍,但由于没有专职运维人员,其业务压力和运维成本剧增。
业务痛点
Timing App的痛点如下。针对这些痛点,SAE逐一攻破。
业务痛点 | 为什么选择SAE |
微服务架构运维复杂。 | SAE支持Spring Cloud、Dubbo等微服务架构,具有微服务免运维的特性,能够解决Timing App的微服务架构复杂的痛点,满足Timing App免运维的需求,从而节省人力成本。 |
开发迭代效率低。 | SAE提供丰富的功能和服务,包括应用发布、应用管理、服务治理、自动弹性、一键启停应用和应用监控等,尤其是定时弹性功能完美解决了Timing App业务峰值流量的痛点。 |
资源利用率低。 | SAE按实际用量计费,且支持小规格实例(例如0.5 Core、1 GiB),可以有效提高资源利用率。 |
解决方案
Timing App解决方案逻辑图如下所示。
Timing App借助SAE,无需保有ECS资源,最终从单体PHP应用演变为Spring Cloud微服务应用。Timing App提供的各项在线教育服务(自习室、图书馆等),在拆分为各个独立的应用(自习室服务对应自习中心、图书馆服务对应图书馆中心等)后,快速部署至SAE。SAE提供的应用发布、管理和服务治理等应用全生命周期的一站式全托管服务,让Timing App能够专注于业务本身,减轻繁杂的运维管理。
针对业务本身的潮汐特性,Timing App通过配置弹性策略,能够自动应对洪峰流量,实现降本增效。
针对业务运维,Timing App通过SAE集成的ARMS监控,能够快速定位并诊断问题。
使用效果
降成本:Timing App节省了自建微服务架构的ECS成本。基于SAE秒级弹性能力,Timing App无需长期保有固定资源,按需自动弹性、按分钟计费,极大提升资源利用率。
提效率:屏蔽了底层IaaS购买、底层K8s细节和运维的烦恼,低门槛部署Spring Cloud、Dubbo等微服务应用,支撑新业务快速上线,还提供了QPS、RT、接口调用量、错误数等实时监控功能,用于快速定位问题,提升诊断效率,让企业专注于业务本身。
业务稳定:基于SAE的定时弹性能力和基于监控指标弹性(CPU、Memory等),无需规划容量,通过秒级弹性轻松应对流量暴增,保障SLA。