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、Duboo等微服务架构,具有微服务免运维特性,能应对Timing App的微服务架构复杂的痛点,满足其免运维的需求,从而节省人力成本。
  • SAE提供丰富的功能和服务,包括应用发布、应用管理、服务治理、自动弹性、一键启停应用(可区分开发环境、测试环境和生产环境等)和应用监控等,尤其是定时弹性功能完美解决了Timing App业务峰值流量的痛点。
  • SAE按实际用量计费,且支持小规格实例(0.5核CPU、1 GiB内存),可有效提高资源利用率。

解决方案

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

业务结构

方案实施

  • 微服务改造。

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

  • 网络准备。

    Timing App是一款在线教育应用,有一定的网络要求,需要在部署前为Timing App创建VPC,详情参见创建VPC

  • 环境隔离。

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

  • 部署上云。

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

  • 应用访问。

    Timing App部署在SAE后,需要配置SLB以实现公网访问,详情参见为应用绑定SLB部署在SAE上的应用如何访问公网

  • 应用管理。

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

    • 开发环境和测试环境,可以使用一键启停功能来批量停止闲置应用,减少资源浪费,详情参见一键启停应用
    • 针对Timing App的业务潮汐特性,无需规划容量,利用定时弹性伸缩功能即可从容应对,详情参见配置弹性伸缩
    • 针对Timing App的请求分发需求,可以通过网关路由功能实现,详情参见为应用配置网关路由
    • 针对Timing App运行健康情况、CPU和内存使用情况和应用接口调用
  • 应用监控。

    SAE为Timing App提供了以下监控功能。

    • CPU、内存、负载和网络等基础监控,详情参见基础监控
    • 应用总请求量、平均响应时间等应用健康指标监控,详情参见应用总览
    • 堆内存指标、非堆内存指标、直接缓冲区指标、内存映射缓冲区指标、GC(垃圾收集)累计详情和JVM线程数等JVM指标监控,详情参见JVM 监控
    • CPU、内存、Disk(磁盘)、Load(负载)、网络流量和网络数据包等主机指标监控,详情参见主机监控
    • SQL分析、异常分析、错误分析、链路上下游和接口快照等接口调用监控,详情参见应用接口调用监控

开通SAE

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

立即开通 SAE