凌云时刻 · 技术

导读:减少一半以上的运维工作,节省大量云资源的成本投入——SAE的Serverless化演进帮助百富旅行享受云计算的红利。

作者 | 山猎

来源 | 凌云时刻(微信号:linuxpk)

前言

由于SAE属于应用层的Serverless方案,对于之前通过Spring Cloud框架构建的微服务应用,可以非常平滑的逐步迁移到SAE平台上,不涉及任何代码和业务逻辑的修改,这一点也是百富旅行全面拥抱SAE方案最重要的原因。

百富旅行是全球领先的在线旅游同业交易平台,覆盖机票、火车票、酒店、邮轮、汽车票、门票、旅游、商城等版块,通过整合全球的优势资源,基于云计算和大数据决策为全球旅游从业者提供一站式智能整体解决方案。截至目前,百富旅行已经与600多家航空公司、国内所有火车线路、2500个汽车站,以及60多家邮轮集团进行了业务整合,网络覆盖全球100多个国家和地区。

微服务架构暴露问题

随着业务的飞速发展,百富旅行技术团队通过Spring Cloud 等开源框架搭建了完善的微服务技术架构,并在底层服务器资源方面全面拥抱阿里云ECS,利用云计算提升工作效率,降低工作成本。将微服务应用上云之后,不需要再考虑硬件资源购买以及服务器架设等运维步骤,这样技术团队可以将更多的精力投入到业务需求实现中。随着系统迭代次数的增加,原有的微服务架构开始暴露出一些问题。

从系统架构的角度,将微服务应用直接部署在云虚拟机上,跟部署在物理机房相比,并没有本质的区别,团队依然需要从底层维护每一个应用实例,包括操作系统调整、磁盘容量规划、JDK等组件安装等工作,这些工作都每一台云虚拟机投入使用的过程中,都是必不可以的。

另外,在系统频繁的迭代过程中,不同的开发小组甚至不同的开发人员都需要单独的一套测试环境,久而久之整个技术团队创建了多套测试环境,其中一些测试环境包含了所有的微服务应用,整体资源利用率特别低,造成了大量的资源浪费。而且旅游业务本身也存在非常明显的波峰波谷,微服务架构可以很方便地为每一个应用进行水平扩容,但如果用于扩容的虚拟机资源需要预先购买的话,同样会造成大量的资源闲置。

SAE方案完美适配

近些年在云计算领域异军突起的Serverless架构正好能解决上述这两个问题。由于不需要为Serverlesss应用购买底层服务器资源,直接按需申请,可以免去容量规划、操作系统调优等复杂的运维工作,Serverless架构的弹性伸缩机制也彻底解决了资源的闲置与浪费问题。因此,百富旅行技术团队开始对Serverless架构进行技术预研。

Serverless架构有两种常见的实现方式:第一种是把每个微服务应用进行容器化改造后,统一使用Kubernetes进行编排,并利用云厂商提供的弹性容器实例实现容器层的按需调用。这种方式的门槛很高,需要有精通Kubernetes技术的运维小组加入,并且需要团队投入比较大的精力对应用进行容器化改造,暂时不适用于百富旅行这样小规模高效率的技术团队。

另一种方式是使用类似于AWS Lambda或阿里云FC函数计算引擎,将所有业务逻辑进行函数化重构。这种方式基本上需要将之前写的代码推倒重来,而且在一些拥有复杂调用链路的业余环节并不能发挥Serverless的优势,对百富旅行而言更加不合适。

经过多轮技术调研以及与阿里云技术专家深入交流后,百富旅行技术团队认为,阿里云提供的Serverless应用引擎(SAE)方案最适合他们的Serverless平台区别于其它 Serverless 产品,SAE 直接支持 Spring Cloud、Dubbo 等开发框架,真正实现了 Serverless 架构 + 微服务架构的完美结合。开发者可以通过WAR、JAR、镜像三种方式部署Serverless应用,不需要学习Kubernetes以及容器技术,也能享受Kubernetes和云上弹性容器的技术红利。

由于SAE属于应用层的Serverless方案,对于之前通过Spring Cloud框架构建的微服务应用,可以非常平滑地逐步迁移到SAE平台上,不涉及任何代码和业务逻辑的修改,这一点也是百富旅行全面拥抱SAE方案最重要的原因。

部署在SAE上的微服务应用,可以按需申请资源,根据实际使用资源量按分钟计费,避免业务不活跃时段的费用支出,有效降低成本,并且微服务应用也能充分的发挥弹性伸缩的价值。特别是对于测试环境,SAE可以做到一键启停,避免了资源闲置问题。对于生产环境的任何一个应用,如果有扩容实例的需求,也能够迅速拉起新的实例,并自动与SLB以及注册中心完成绑定。

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

经历了基于SAE的Serverless化演进之后,百富旅行节省了大量云资源的成本投入,并且减少一半以上的运维工作,为业务持续发展打下了坚实的基础。未来,百富旅行将继续基于自身的技术特点不断深入探索Serverless架构,在拥抱新技术的同时也能充分享受到云计算的红利。

更多Serverless 应用引擎 SAE解决方案和产品细节,请点击下方“阅读原文”。

END

往期精彩文章回顾

关于Kubernetes规划的灵魂N问

饿了么四年、阿里两年:研发路上的一些总结与思考

再启程,Service Mesh 前路虽长,尤可期许

数据湖:设计更好的架构,存储,安全和数据治理

RocketMQ助力编程猫构建稳定的业务系统

云上发展,唯快不破!IT部门是数字化转型的变革者

国内首个!阿里云发布容器ATT&CK攻防矩阵

从架构到代码:软件开发的七个新趋势

自带公网IP上阿里云

如何画好一张架构图?

长按扫描二维码关注凌云时刻

每日收获前沿技术与科技洞见

​阿里云SAE助力百富旅行实现Serverless+微服务完美结合相关推荐

  1. starops 云效运维 文档_阿里云 SAE 携手云效助力「石家庄掌讯」持续交付、降本提效...

    背景 石家庄掌讯信息技术有限公司创立于2009年,是一家提供企业信息化咨询.创新型软件产品.电商代运营服务,标准化管理.快速发展的高新技术企业.当前公司正处于企业互联网市场突破转型重要阶段,希望将更多 ...

  2. 阿里云 SAE 携手云效助力「石家庄掌讯」持续交付、降本提效

    背景 石家庄掌讯信息技术有限公司创立于2009年,是一家提供企业信息化咨询.创新型软件产品.电商代运营服务,标准化管理.快速发展的高新技术企业.当前公司正处于企业互联网市场突破转型重要阶段,希望将更多 ...

  3. 如何帮用户管好云账本?阿里云数据库助力收钱吧!

    简介:"收钱吧到账100万"成为普通商家最想听到的声音. 你有多久没摸过现金了? 中国互联网络信息中心发布的第47次<中国互联网络发展状况统计报告>数据显示,截至202 ...

  4. 如何帮用户管好云账本?阿里云数据库助力收钱吧 | 甲子光年

    简介: "收钱吧到账100万"成为普通商家最想听到的声音. 你有多久没摸过现金了? 中国互联网络信息中心发布的第47次<中国互联网络发展状况统计报告>数据显示,截至20 ...

  5. 阿里云MaxCompute香港开服 将引入更多人工智能服务

    9月18日,阿里云宣布大数据计算服务MaxCompute在香港正式开服.通过MaxCompute强大的计算能力,阿里云将为香港市场提供更多的人工智能产品,助力当地企业智能化升级. 据了解,MaxCom ...

  6. 阿里云 EMAS HTTPDNS 联合函数计算重磅推出 SDNS 服务,三大能力获得突破

    阿里云 EMAS HTTPDNS 联合函数计算重磅推出 SDNS 服务,三大能力获得突破 1. 什么是 HTTPDNS ? 传统的 DNS(Domain Name System)使开发者常面临着域名劫 ...

  7. 阿里云十年铸「器」,容器服务迈入智能化时代

    在成为云计算新界面之后,智能化再次成为容器服务一个重要发展方向. 国际权威咨询机构Forrester在今年发布的<The Forrester WaveTM: Public Cloud Conta ...

  8. 网站app被劫持怎么办?dns被劫持,域名被劫持,HTTPDNS阿里云域名防劫持, DNSPod移动解析防劫持服务D+...

    网站app被劫持怎么办?dns被劫持,域名被劫持 HTTPDNS阿里云域名防劫持, DNSPod移动解析防劫持服务D+ 垄断,就是鸡国的毒瘤. 域名被中移动劫持了,mlgb!! 关于互联网流量劫持分析 ...

  9. 阿里云新品:基于SASE架构的云安全访问服务

    2020年是特殊的一年,受疫情的影响,人们的工作和生活方式已悄然发生改变,远程办公.在线教育.在线医疗的激增,各行业都经历着一场"抗压测试".数字化转型已然是大势所趋,成为这场测试 ...

  10. 云原生语境下,如何重新解读微服务?

    最近,O'Reilly 公布了一份关于企业微服务市场现状的数据调研.报告显示,在访问了全球 1,502 名软件工程师.系统和技术架构师.工程师以及决策者后,有 77% 的组织反馈采用了微服务,其中 9 ...

最新文章

  1. linux 远程主机发送消息,linux – rsyslog不会将远程消息写入特定主机的日志文件...
  2. R语言将字符型(Character)变量转化为数值型(Numeric)
  3. html ajax put请求,javascript – PUT Ajax请求
  4. RuntimeError Assertion cur_target = 0 cur_target n_classes failed
  5. 【JavaScript】正则表达式 1
  6. 全局替换安卓应用字体
  7. [Everyday Mathematics]20150226
  8. 什么是Maven以及Maven的优点有哪些?
  9. exist name
  10. UVA1218 完美的服务 Perfect Service
  11. F5 cookie值与IP地址(二):将IP地址转换成F5 cookie值
  12. Oracle数据库的优化--索引
  13. k均值聚类算法原理和TensorFlow实现
  14. Simulink Solver
  15. LAV Filter 源代码分析 4: LAV Video (2)
  16. git 账号密码重置
  17. 考研操作系统【1.1 操作系统的基本概念】
  18. yolo v4 weights 权重
  19. 【python 时间戳】python获取13位时间戳以及时间戳转换
  20. python做马尔科夫模型预测法_python 日常笔记 hmmlearn 隐性马尔科夫模型案例分析...

热门文章

  1. SQL Server性能常用语句
  2. 〖Linux〗Ubuntu13.10搭建文件共享Samba服务器
  3. 连发12款软硬件产品 瑞星领跑企业级安全市场
  4. 活着的意义 在培训期间,为什么我如此的执着……
  5. Android开发——使用高级的RecyclerView实现侧滑菜单删除功能(SwipeRecyclerView)
  6. 2017.4.16 java 获取当前时间及年月日时分秒
  7. C#实现在图片上斜着写字
  8. 【软考10】计算机网络基础知识拾遗
  9. sed学习[参考转载]
  10. JS包含js文件 动态添加css