在线旅游:SAE支持百富旅行微服务极速上云

Serverless 应用引擎 SAE(Serverless App Engine)能帮助企业极速上云,将微服务应用平滑地迁移到SAE平台上,不涉及任何代码和业务逻辑的修改,并能通过灵活的应用启停来降低资源使用成本。本文以在线旅游应用百富旅行为例,介绍SAE在支持在线旅游应用上云方面的成功案例。

背景信息

百富旅行是在线旅游同业交易平台,覆盖机票、火车票、酒店、邮轮、汽车票、门票、旅游、商城等版块。

随着业务的飞速发展,百富旅行技术团队通过Spring Cloud等开源框架搭建了完善的微服务技术架构,并利用云计算提升工作效率,降低工作成本。随着系统迭代次数的增加,原有的微服务架构暴露出运维复杂、资源利用率低等问题。

业务痛点

百富旅行的痛点如下。针对这些痛点,SAE逐一攻破。

业务痛点

为什么选择SAE

微服务运维复杂。

  • SAE支持Spring Cloud、Dubbo等微服务架构,具有微服务免运维特性,能解决百富旅行的微服务架构复杂的痛点,满足百富旅行免运维的需求,从而节省人力成本。

  • SAE支持WAR、JAR、镜像等多种方式部署应用,操作便捷,无需学习Kubernetes以及容器技术。

  • SAE提供丰富的功能和服务,包括应用发布、应用生命周期管理、服务治理、自动弹性、一键启停应用和应用监控等,尤其是应用生命周期管理,都可以通过控制台进行可视化操作,简化发布方式,降低更新风险。

测试环境利用率低。

开发环境和测试环境,在SAE中以命名空间进行逻辑隔离。

闲置资源高。

SAE按实际用量计费,且支持小规格实例(例如0.5 CPU、1 GiB),可有效提高资源利用率。

解决方案

百富旅行解决方案逻辑图如下所示。百富旅行客户案例

方案实施如下。

  1. 环境隔离。

    百富旅行有开发环境和测试环境,可以在SAE中以命名空间进行逻辑隔离。更多信息,请参见创建命名空间

  2. 网络准备。

    百富旅行是一款在线旅游应用,有一定的网络要求,需要在部署前为应用创建VPC。更多信息,请参见创建VPC

  3. 部署上云。

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

  4. 应用访问。

    百富旅行部署在SAE后,需要配置SLB,使应用能够访问公网。更多信息,请参见为应用绑定CLB配置NAT网关使SAE应用能访问公网

  5. 应用管理。

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

    • 开发环境和测试环境,可以使用一键启停功能来批量停止闲置应用,减少资源浪费。更多信息,请参见一键启停应用

    • 针对百富旅行的业务潮汐特性,无需规划容量,利用定时弹性功能即可从容应对。更多信息,请参见配置弹性伸缩策略

    • 针对百富旅行的请求分发需求,可以通过网关路由功能实现。更多信息,请参见基于ALB/CLB配置网关路由(Ingress)访问

  6. 应用监控。

    • CPU、内存、负载、网络速率、网络流量包、磁盘等基础监控。更多信息,请参见基础监控

    • 应用总请求量、平均响应时间等应用健康指标监控。更多信息,请参见应用总览

    • 堆内存指标、非堆内存指标、直接缓冲区指标、内存映射缓冲区指标、GC(垃圾收集)累计详情和JVM线程数等JVM指标监控。更多信息,请参见JVM监控

    • SQL分析、异常分析、错误分析、链路上下游和接口快照等接口调用监控。更多信息,请参见接口调用

使用效果

部署在SAE上的微服务应用,可以按需申请资源,根据实际使用资源量按分钟计费,避免业务不活跃时段的费用支出,有效降低成本,并且微服务应用也能充分发挥弹性伸缩的价值。

通过SAE提供的应用生命周期管理能力,百富旅行技术团队彻底告别了通过编写脚本进行版本发布的方式。无论是应用的部署、启动、停止,还是与SLB关联、扩容实例、缩容实例,都可以通过控制台进行可视化操作。配合SAE的版本管理以及多种灰度发布机制,进一步降低了版本更新过程中的风险。对于新发布的版本,可以先在生产环境进行小规模验证,一旦无法满足要求,可以一键快速回滚。SAE还额外提供了系统监控功能,能从基础资源、JVM、应用链路等多个层面实时、直观地了解系统运行状态。

经历了基于SAE的Serverless化演进之后,百富旅行节省了大量云资源的成本投入,并且减少一半以上的运维工作,为业务持续发展打下了坚实的基础。