SAE能帮助企业极速上云,从容应对突发流量洪峰,以及通过灵活的应用启停来降低资源使用成本。本文以在线教育应用Timing App为例,介绍SAE在支持在线教育应用上云方面的成功案例。

背景信息

Timing App是武汉氪细胞网络技术有限公司出品的在线教育应用。

Timing App采用单体PHP架构,2020年开始尝试基于开源项目自建微服务架构和应用性能管理(APM)体系,但终因技术门槛高和人力不足等因素而未能成功。其业务具有潮汐特性,用户访问集中在夜间和节假日。2020年初,由于COVID-19疫情的缘故,远程学习成为重要的教育手段,在此期间Timing App的峰值流量暴增4倍,但由于没有专职运维人员,其业务压力和运维成本剧增。

业务痛点

Timing App面临以下业务痛点:

  • 业务代码耦合度高。
  • 微服务架构运维复杂。
  • 开发迭代效率低。
  • 资源利用率低。

为什么选择SAE

  • SAE采用Serverless架构,屏蔽了底层IaaS运维和K8s细节,并且与FaaS形态的Serverless产品不同,无需修改编程模型和改造代码即可直接使用。该技术特点降低了使用门槛,契合Timing App的需求。
  • SAE支持Spring Cloud、Dubbo等微服务架构,具有微服务免运维特性,能解决Timing App的微服务架构复杂的痛点,满足Timing App免运维的需求,从而节省人力成本。
  • SAE提供丰富的功能和服务,包括应用发布、应用管理、服务治理、自动弹性、一键启停应用和应用监控等,尤其是定时弹性功能完美解决了Timing App业务峰值流量的痛点。
  • SAE按实际用量计费,且支持小规格实例(0.5 CPU、1 GiB),可有效提高资源利用率。

解决方案

Timing App解决方案逻辑图如下所示。

业务结构

方案实施如下:

  1. 微服务改造。

    Timing App原为PHP框架,需改造为Spring Cloud或Dubbo微服务框架。SAE提供关于Spring Cloud或Dubbo微服务框架应用开发的Demo。更多信息,参见Spring Cloud开发概述或者Dubbo开发概述

  2. 环境隔离。

    Timing App有开发环境、测试环境和生产环境,在SAE中以命名空间进行逻辑隔离。更多信息,请参见创建命名空间

  3. 网络准备。

    Timing App是一款在线教育应用,有一定的网络要求,需要在部署前为Timing App创建VPC。更多信息,请参见创建VPC

  4. 部署上云。

    SAE内置服务注册中心,提供WAR、JAR和镜像三种便捷上云方式,降低了技术门槛。更多信息,请参见应用部署概述

  5. 应用访问。

    Timing App部署在SAE后,需要配置SLB以实现公网访问。更多信息,请参见为应用绑定SLB部署在SAE上的应用如何访问公网

  6. 应用管理。

    SAE提供了应用生命周期管理、应用实例查看、网关路由、一键启停、弹性伸缩等功能。更多信息,请参见应用管理概述

    • 开发环境和测试环境,可以使用一键启停功能来批量停止闲置应用,减少资源浪费。更多信息,请参见一键启停应用
    • 针对应用的业务潮汐特性,无需规划容量,利用定时弹性伸缩功能即可从容应对。更多信息,请参见配置弹性伸缩策略
    • 针对应用的请求分发需求,可以通过网关路由功能实现。更多信息,请参见为应用配置网关路由
  7. 应用监控。
    • CPU、内存、负载和网络等基础监控。更多信息,请参见基础监控
    • 应用总请求量、平均响应时间等应用健康指标监控。更多信息,请参见应用总览
    • 堆内存指标、非堆内存指标、直接缓冲区指标、内存映射缓冲区指标、GC(垃圾收集)累计详情和JVM线程数等JVM指标监控。更多信息,请参见JVM监控
    • CPU、内存、Disk(磁盘)、Load(负载)、网络流量和网络数据包等主机指标监控。更多信息,请参见主机监控
    • SQL分析、异常分析、错误分析、链路上下游和接口快照等接口调用监控。更多信息,请参见应用接口调用监控

开通SAE

单击下方按钮可立即前往SAE开通页面。

立即开通SAE