Serverless 应用引擎 SAE(Serverless App Engine)能帮助企业极速上云,将微服务应用平滑地迁移到SAE平台上,不涉及任何代码和业务逻辑的修改,并能通过灵活的应用启停来降低资源使用成本。本文以在线旅游应用百富旅行为例,介绍SAE在支持在线旅游应用上云方面的成功案例。
背景信息
百富旅行是在线旅游同业交易平台,覆盖机票、火车票、酒店、邮轮、汽车票、门票、旅游、商城等版块。
随着业务的飞速发展,百富旅行技术团队通过Spring Cloud等开源框架搭建了完善的微服务技术架构,并利用云计算提升工作效率,降低工作成本。随着系统迭代次数的增加,原有的微服务架构暴露出运维复杂、资源利用率低等问题。
业务痛点
百富旅行的痛点如下。针对这些痛点,SAE逐一攻破。
业务痛点 | 为什么选择SAE |
微服务运维复杂。 |
|
测试环境利用率低。 | 开发环境和测试环境,在SAE中以命名空间进行逻辑隔离。 |
闲置资源高。 | SAE按实际用量计费,且支持小规格实例(例如0.5 CPU、1 GiB),可有效提高资源利用率。 |
解决方案
百富旅行解决方案逻辑图如下所示。
方案实施如下。
环境隔离。
百富旅行有开发环境和测试环境,可以在SAE中以命名空间进行逻辑隔离。更多信息,请参见创建命名空间。
网络准备。
百富旅行是一款在线旅游应用,有一定的网络要求,需要在部署前为应用创建VPC。更多信息,请参见创建VPC。
部署上云。
SAE内置服务注册中心,提供WAR、JAR和镜像等多种便捷上云方式,降低了技术门槛。更多信息,请参见应用托管概述。
应用访问。
百富旅行部署在SAE后,需要配置SLB,使应用能够访问公网。更多信息,请参见为应用绑定CLB和配置NAT网关使SAE应用能访问公网。
应用管理。
SAE提供了应用生命周期管理、应用实例查看、网关路由、一键启停、弹性伸缩等功能。更多信息,请参见应用托管概述。
开发环境和测试环境,可以使用一键启停功能来批量停止闲置应用,减少资源浪费。更多信息,请参见一键启停应用。
针对百富旅行的业务潮汐特性,无需规划容量,利用定时弹性功能即可从容应对。更多信息,请参见配置弹性伸缩策略。
针对百富旅行的请求分发需求,可以通过网关路由功能实现。更多信息,请参见基于ALB/CLB配置网关路由(Ingress)访问。
应用监控。
使用效果
部署在SAE上的微服务应用,可以按需申请资源,根据实际使用资源量按分钟计费,避免业务不活跃时段的费用支出,有效降低成本,并且微服务应用也能充分发挥弹性伸缩的价值。
通过SAE提供的应用生命周期管理能力,百富旅行技术团队彻底告别了通过编写脚本进行版本发布的方式。无论是应用的部署、启动、停止,还是与SLB关联、扩容实例、缩容实例,都可以通过控制台进行可视化操作。配合SAE的版本管理以及多种灰度发布机制,进一步降低了版本更新过程中的风险。对于新发布的版本,可以先在生产环境进行小规模验证,一旦无法满足要求,可以一键快速回滚。SAE还额外提供了系统监控功能,能从基础资源、JVM、应用链路等多个层面实时、直观地了解系统运行状态。
经历了基于SAE的Serverless化演进之后,百富旅行节省了大量云资源的成本投入,并且减少一半以上的运维工作,为业务持续发展打下了坚实的基础。