开发者社区 > 云原生 > 正文

百富旅行是如何基于 SAE 的 Serverless演进?

百富旅行是如何基于 SAE 的 Serverless演进?

展开
收起
1358896759097293 2021-03-23 20:09:45 758 0
1 条回答
写回答
取消 提交回答
  • 45271990@qq.com

    用户介绍 百富旅行是全球领先的在线旅游同业交易平台,覆盖机票、火车票、酒店、邮轮、汽车 票、门票、旅游、商城等版块,通过整合全球的优势资源,基于云计算和大数据决策为全球 旅游从业者提供一站式智能整体解决方案。截至目前,百富旅行已经与 600 多家航空公司、 国内所有火车线路、2500 个汽车站,以及 60 多家邮轮集团进行了业务整合,网络覆盖 全球 100 多个国家和地区。 业务痛点 随着业务的飞速发展,百富旅行技术团队通过 Spring Cloud 等开源框架搭建了完善 的微服务技术架构,并在底层服务器资源方面全面拥抱阿里云 ECS,利用云计算提升工作 效率,降低工作成本。将微服务应用上云之后,不需要再考虑硬件资源购买以及服务器架设 等运维步骤,这样技术团队可以将更多的精力投入到业务需求实现中。随着系统迭代次数的 增加,原有的微服务架构开始暴露出一些问题: 1. 微服务运维难度大 从系统架构的角度,将微服务应用直接部署在云虚拟机上,跟部署在物理机房相比,并 没有本质的区别,团队依然需要从底层维护每一个应用实例,包括操作系统调整、磁盘容量 规划、JDK 等组件安装等工作,这些工作在每一台云虚拟机投入使用的过程中,都是必不 可少的。2. 测试环境利用率低,闲置资源高 在系统频繁的迭代过程中,不同的开发小组甚至不同的开发人员都需要单独的一套测试 环境,久而久之整个技术团队创建了多套测试环境,其中一些测试环境包含了所有的微服务 应用,整体资源利用率特别低,造成了大量的资源浪费。而且旅游业务本身也存在非常明显的波峰波谷,微服务架构可以很方便地为每一个应用进行水平扩容,但如果用于扩容的虚拟 机资源需要预先购买的话,同样会造成大量的资源闲置。 选型调研 近些年在云计算领域异军突起的 Serverless 架构正好能解决上述这两个问题。由于 不需要为 Serverlesss 应用购买底层服务器资源,直接按需申请,可以免去容量规划、操 作系统调优等复杂的运维工作,Serverless 架构的弹性伸缩机制也彻底解决了资源的闲置 与浪费问题。因此,百富旅行技术团队开始对 Serverless 架构进行技术预研。 Serverless 架构有两种常见的实现方式: 第一种是把每个微服务应用进行容器化改造后,统一使用 Kubernetes 进行编排,并 利用云厂商提供的弹性容器实例实现容器层的按需调用。 这种方式的门槛很高,需要有精通 Kubernetes 技术的运维小组加入,并且需要团队 投入比较大的精力对应用进行容器化改造,暂时不适用于百富旅行这样小规模高效率的技术 团队。另一种方式是使用类似于 AWS Lambda 或阿里云 FC 函数计算引擎,将所有业务 逻辑进行函数化重构。 这种方式基本上需要将之前写的代码推倒重来,而且在一些拥有复杂调用链路的业余环 节并不能发挥 Serverless 的优势,对百富旅行而言更加不合适。 经过多轮技术调研以及与阿里云技术专家深入交流后,百富旅行技术团队认为,阿里云 提供的 Serverless 应用引擎(SAE)方案最适合他们的 Serverless 平台。区别于其它 Serverless 产品,SAE 直接支持 Spring Cloud、Dubbo 等开发框架,真正实现了 Serverless 架构 + 微服务架构的完美结合。开发者可以通过解决方案 由于 SAE 属于应用层的 Serverless 方案,对于之前通过 Spring Cloud 框架构 建的微服务应用,可以非常平滑地逐步迁移到 SAE 平台上,不涉及任何代码和业务逻辑 的修改,这一点也是百富旅行使用 SAE 方案最重要的原因。 WAR、JAR、镜像三种方 式部署 Serverless 应用,不需要学习 Kubernetes 以及容器技术,也能享受 Kubernetes 和云上弹性容器的技术红利。部署在 SAE 上的微服务应用,可以按需申请资源,根据实际使用资源量按分钟计费, 避免业务不活跃时段的费用支出,有效降低成本,并且微服务应用也能充分的发挥弹性伸缩 的价值。特别是对于测试环境,SAE 可以做到一键启停,避免了资源闲置问题。对于生产 环境的任何一个应用,如果有扩容实例的需求,也能够迅速拉起新的实例,并自动与 SLB 以及注册中心完成绑定。 此外,通过 SAE 提供的应用生命周期管理能力,百富旅行技术团队彻底告别了通过 编写脚本进行版本发布的方式。不论是应用的部署、启动、停止、与 SLB 关联、扩容实 例、缩容实例,都可以通过阿里云控制台进行可视化操作。配合 SAE 的版本管理以及多 种灰度发布机制,进一步降低了版本更新过程中的风险。对于新发布的版本可以在生产环境 先进行小规模验证,一旦不能满足要求可以一键快速回滚。SAE 还额外提供了系统监控功 能,能从基础资源、JVM、应用链路等多个层面实时、直观地了解系统运行状态。 经历了基于 SAE 的 Serverless 化演进之后,百富旅行节省了大量云资源的成本投 入,并且减少一半以上的运维工作,为业务持续发展打下了坚实的基础。未来,百富旅行将 继续基于自身的技术特点不断深入探索 Serverless 架构,在拥抱新技术的同时也能充分 享受到云计算的红利。

    2021-03-24 10:04:44
    赞同 展开评论 打赏

阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。

相关产品

  • 函数计算
  • Serverless 应用引擎
  • 相关电子书

    更多
    Hologres Serverless之路:揭秘弹性计算组 立即下载
    Serverless开发平台: 让研发效能再提升 立即下载
    Serverless 引领云上研发新范式 立即下载