基于微服务的航空电商架构论文

基于微服务的航空电商架构

文/廖忠涛 陈川 许嘉伟

摘 要

本文主要介绍航空公司在探索数字化、新零售转型时,电商架构平台的发展遇到的问题及挑战,以及通过建设基于微服务适合航空公司业务发展需要的电商架构平台去应对挑战。这种基于微服务的航空电商架构平台在航空公司电商销售系统建设中具有较大的借鉴和推广价值。

【关键词】 微服务 电商架构

1 综述

随着云计算、区块链、人工智能的发展,行业新玩家介入、新模式的出现,航空市场面临的竞争日趋激烈,各航空公司纷纷在探索数字化转型、新零售转型。在转型过程中系统架构需要支持的业务需求更加纷繁复杂,对原有系统性能、整体架构、以及系统可维护性等带来愈加严峻的挑战。作为全球化的传统服务行业,用前沿的互联网技术打造全新的航空电商架构平台成为航空公司的当务之急。例如美国航空早在2017年7月就开始构建基于微服务和DevOps 敏捷型应用架构,大韩航空在2018年12月提出建设在aws 云上的、基于容器和无服务器技术的微服务架构,以适应不同规模及复杂性的业务负载。本文基于这种新形势下,探索微服务架构在航空电商平台的应用。

PNCR系统是使用气力输送原理,将粉体状的高分子脱硝剂从储料仓采用负压下料正压输送的方式,通过风机将脱硝剂输送到炉膛内最佳的反应温区,使氨基与高分子的化学键断裂,释放出大量的含氨自由基,氨基与烟气中NOx发生反应,实现脱硝。PNCR流程如图2所示;该高分子脱硝剂脱硝反应温度比氨水低,反应温度区间为800~900℃,脱硝效率可达到80%。

2 航空电商架构的现状及问题

2.1 航空电商架构的发展现状

航空公司电商平台主要提供机票销售、机票退改、会员管理、里程服务、航空附加产品销售等。软件建设之初,业务相对简单,将同类的或相似的业务应用放在一起,便于沟通、数据共享和解决功能依赖。随着业务的发展,更多新业务功能层出不穷,各系统在原来的基础上不断堆砌,各应用系统软件规模不断扩大,内部耦合程度增加,频繁部署,增加维护管理成本,给软件检测试也带来更多不确定性。

2.2 单一巨石型应用及问题

传统航空公司电商架构在模块化、微服务化之前,是一个单一的巨石型单体应用。所谓巨石型应用架构,将所有的包括查询、下单、支付、里程兑换、客票验真等放在一个应用包,在同一个Web 容器运行。随着业务的不断新增和日趋复杂,这个应用包变得越来越“庞大”、“臃肿”。其带来的后果是:

(1)增加复杂性:随着系统规模和团队规模发展到一定阶段,代码量不断增加,外部依赖越来越多,代码结构混乱,使团队成员不能理解整体代码逻辑,增加代码复杂度;

在开放的底层接口中,前端业务的接入五花八门,为了减少对前端业务的嵌入及耦合,在微服务应用架构的过程中需考虑许多种通讯方式的支持,因此微服务的架构需考虑“六边形架构”的模式,搭建和外部服务交互的端口和适配器。每个微服务都有明确的上下文边界,微服务间通过消息或者http 请求进行交互。

在开发和管理过程中,微服务突出表现在“小”这一方面,具体表现在开发周期和团队都变小。所以,原有的开发方式要做相应的调整,开发周期控制也采用敏捷迭代的方式,通过敏捷迭代加快开发进度和适应变更,更具灵活性。敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。对于快速增长变化的航空业务需求,“敏捷模型”可以很好的解决需求不断变化的问题,实现快速迭代、快速交付。

图1:Spring Cloud 架构图

(3)交付效率低:系统构建和部署耗时长,开发周期长,代码修改困难,故障定位困难;

(4)技术债堆积:模块功能耦合,只能使用固定、相同的技术栈,可扩展性弱。

3 微服务下的航空电商架构

3.1 微服务介绍

我国的军粮供应工作已经走上了制度化、标准化、规范化道路,军粮管理、供应和服务工作得到很大的发展。现在纸制军用粮票已经被更先进、更快捷的电磁卡所取代,纸制军用粮票完成了历史任务,在我党我军的历史上为中国人民的解放事业和国防建设事业做出了重大贡献,将被载入史册,彪炳千秋,为后人铭记。

微服务最早由MartinFowler 与James Lewis 于2014年共同提出。微服务体系结构风格是一种将单个应用程序拆分为一组小型服务进行开发的方法,每个服务都在自己的进程中运行,并使用轻量级的通信机制。这些服务是围绕业务功能建立而成,匹配一套最低限度的中央式管理机制,且各服务可通过不同编程语言编写而成并使用不同的数据存储技术。其特点是“小而专”,可以在“自己的程序”中运行,服务组件化,服务之间通过轻量级设备基于Http 的Restful API 进行通信协作,使业务系统彻底组件化和服务化。被拆分成的每一个小型服务都围绕着系统中的某一项或一些耦合度较高的业务功能进行构建,并且每个服务都维护着自身的数据存储、业务开发、自动化测试案例以及独立部署机制。同时,这些微服务可以使用不同的技术栈、多种编程语言来实现。

研究表明,当学生处于不被延误刺激而产生的不被影响的情境中时,对成功的期望更强烈,但是当学生的情绪是不稳定且反复的这种情况,在面临一个行为、任务、活动时自我效能会受到影响。大学生就业焦虑这种情况就是一种不稳定的复杂的情绪体会,会伴随毕业时间的临近而越来越严重,也会伴随成功就业而消失。所以,在面临毕业就业问题时,大学生要学会控制自己的情绪,对就业形势全面看待,不要以为盲目乐观或过于自卑,再就业选择上作出错误的决定。要学会自我调节,通过各大招聘网站了解就业信息,借助老师和已就业学长学姐对职场的感知帮助自己判断,并为自己制作一个符合自身能力以及未来期望的职业规划方案。

3.2 基于Spring Cloud微服务架构

Spring Cloud 是一个基于Spring Boot 实现的一些列框架的集合,为开发者提供了在分布式系统的配置管理、服务发现、断路器、智能路由、微代理、控制总线等一些列微服务架构生态链,与Dubbo 框架采用的RPC 通信方式相比,Spring Boot 采用HTTP 的REST 方式,尽管从一定程度上牺牲了服务调用的性能,但也避免了RPC 带来的服务提供方与调用方在代码上的强依赖的缺点,REST 相比RPC 更为灵活,服务提供方和调用方的依赖更少,这在强调快速演化的微服务环境下,适用性更强。Spring Cloud 框架集成了一系列强大的微服务基础设施组件,包括Netflix Zuul、Eureka 等,参见如图1。

3.3 微服务拆分

当传统的单体服务被拆分为微服务后,实例数量由原来一个变成了多个,彼此独立部署,对项目的部署和启动带来了挑战,所以需要引入容器化方法部署微服务项目,扩展灵活,已于管理。Docker 是一个开源的应用容器引擎,可以让开发者打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的linux 服务器上。Docker 本质上是一种轻量级虚拟化技术,提供和虚拟机相同的功能但又更加强大,简单易用,轻快便捷。Docker 还使用名称空间完全隔离应用程序对底层操作环境的视图,包括进程树网络用户id和文件系统。

图2:航空电商机票业务

图3:公共服务

在面向服务的模块化拆分基础上,接着进行微服务拆分。微服务的拆分是微服务架构的重点,需要结合自身业务特点、架构现状、技术团队等。业务特点主要是业务量及对应的领域模型,架构现状主要是对应技术选型(例如基于Spring Cloud 或Dubbo 等),团队组成主要是团队的技术组织特点,同时在微服务拆分过程中,团队组织也要做调整,构建更加灵活、敏捷型的组织。

一个服务的边界最好是由业务和领域模型决定。为了保证服务功能的单一内聚和独立布署,要参考领域驱动设计的思路去决定一个微服务的大小和边界。比如很多航空公司推出“低价日历”,对于低价日历这种业务模型单一的功能,可以直接使用一个服务就实现;而对于shopping 云库存缓存系统(缓存航班票价信息),就要组织相关的服务,结合数据的组成方式和功能,整理出监控、库存数据、缓存数据、查询等不同的微服务。

3.4 微服务的开发和管理

(2)增加系统耦合:各业务应用耦合在一起,模块代码间相互依赖,例如改了下单模块,会牵连影响导致航班查询、支付不可用;

秦虹路现状东西向下穿宁芜铁路,涵洞车道规模(双向两车道)与限高(仅3m)均收到较大制约,极易造成拥堵。优化后,将铁路走廊改造为城市支路和绿道,同时对该节点竖向进行优化,消除净空不足的安全隐患,也与周边地块竖向实现良好衔接。同时对新平面交叉口进行渠化设计,合理分配机动车与慢行空间路权。

微服务方案对于各部门而言是一种不同于以往的且以业务功能为核心的服务拆分及组织途径。根据康威定律:任何组织在设计一套系统(广义层面的系统)时,其设计成果都会直接体现该组织所使用的沟通结构。当着眼于将单一大型应用程序拆分成多个组成部分时,管理人员通常更重视技术层,其中具体包括UI 团队、服务器端逻辑团队以及数据库团队。当这些团队据此进行拆分时,即使是最简单的变更也将给项目造成跨团队协作负担,并因此导致时间与预算的双重支出。因此,需要改变传统的烟囱型职能组织,变成扁平的矩阵型及项目型组织,各团队成员将拥有跨职能特性,包括开发过程当中要求的全部技能组合:用户体验、数据库以及项目管理等等。例如镇针对航空公司行程中心中间库项目,建议配置了1个PM 和2 个开发作为主体进行开发管理,同时对CMC(统一配置管理中心)和监控功能再配置2 名开发人员辅助,整体5 个人团队可以完成相关项目。

3.5 接口适配

图4:行程中心微服务

总用地面积:90.41 hm2,其中A 地块总用地面积59.93hm2,B 地块总用地面积6.05hm2,远期地块总用地面积24.43hm2。

3.6 Docker容器部署

微服务拆分之前需要先进行面向服务的模块化拆分。模块化简单来说,就是把单一体应用按照业务特点拆分成多个应用,其特点是各应用高内聚、松耦合、可重用,可分布式部署。针对航空公司业务特点,可将电商机票直销后台架构拆分重建包括Shopping、Booking、Login、Payment、Order 等面向服务多模块化应用(如图2),各自实现包括查询、下单、登录、支付、订单管理等业务服务,各个服务可被多个应用共享,服务之间可以通信,可独立升级、可扩展、可维护。

同时,公司将满足本土需求,优化产品组合,聚焦创新和具有可持续性的领域,利用我们现有的环保产品,跟客户一起定制或者开发具有安全环保属性的产品。比如在消费品领域,中国本地的生产护肤品的制造商希望把产品打造成天然绿色的,我们会根据他们的需求进一步创新。科莱恩的EcoTain可持续发展旗舰标签已经成为客户推崇的产品。这些产品均经过36项经济性、环保性和社会性的严格筛选,具有的可持续性和优异性能为客户带来了巨大的附加价值。

3.2.1 吸痰系统 临床上现单用的开放式吸引系统和多用的密闭式吸引系统均在使用,研究表明[39],两者对VAP的发生无差异。但当患者呼吸道感染时,为防止飞沫传播或需要高的呼吸末正压(PEEP)时,应首选密闭式吸痰系统以保证充足的气体交换,每次吸痰后应冲净管腔中残余分泌物。

3.7 微服务治理

微服务去中心化治理。在项目初期,中心化的API 网关统一了所有API 的入口,随着业务的发展,API 网关开始暴露问题,每个用户请求经过机房时只要有服务之间的交互,则都会从API 网关进行路由,服务上量以后,由于内部服务之间的交互都会叠加在API 网关的调用上,所以在很大程度上放大了API 网关的调用TPS,API 网关很快就遇到了性能瓶颈。微服务架构倡导去中心化的服务管理和治理,尽量不设置中心化的管理服务,最差也需要在中心化的管理服务宕机时有替代方案和设计,这样当出现故障时可进行降级处理。

微服务的注册和发现是服务治理重要部分,基于Spring Cloud 下的Netflix Eureka 就是服务注册和发现的一个很好的现成解决方案,并且提供了相应的java 封装。在Eureka运行过程中,节点之间是相互平等的,部分注册中心的节点挂掉也不会对集群造成影响,即使集群只剩一个节点存活,也可以正常提供发现服务。哪怕是所有的服务注册节点都挂了,Eureka Clients 上也会缓存服务调用的信息。

因为微服务是一个个独立部署运行的单元,必然涉及到一些公共服务的调用,需要把微服务运行中的各公共服务独立出来,例如建立基于redis 分布式缓存服务,基于Kafka 消息服务,基于ElasticSearch+Logstash+kibana的日志服务等,如图3。

4 应用案例:“蜂巢”微服务架构

基于上述微服务的航空电商架构建设研究分析结果,某航空公司针对旅客行程中心领域建设“蜂巢”六边形微服务架构,将一个完整的行程中心应用拆分成多个不同的微服务,每个微服务都有明确的边界,彼此之间既相对独立,每个服务都能独立部署,独立维护,独立扩展。服务之间按照“蜂巢”六边形架构与外部服务进行交互,这些六边形架构的微服务就像蜂巢里面的巢房,不同的巢房具有不同的功能,各自分隔又紧密结合,共同组成了行程中心的整个微服务架构系统,如图4。

5 结束语

进行数字化转型、提升直销比例、构建信息化电商平台是未来航空公司的发展方向,本文分析了目前我国航空公司在信息化建设、业务发展壮大过程中,电商架构平台存在的问题。针对单体结构应用复杂性高、系统耦合、交付效率低、技术债堆积的问题,提出了基于微服务的航空电商架构。本文提出的微服务架构方案基于Spring Cloud 框架,并从微服务开发和管理、接口适配、Docker 容器部署、微服务治理等方面提出航空电商微服务架构平台构建方法,该方法在某航空公司运用并取得良好的效果。国内航空公司电商平台的发展虽然有各自特点,但其发展历程及面临的问题有很多类似和可以借鉴的地方。所以,基于这套微服务的航空电商架构平台建设,在国内航空中具备一定的普遍性。

参考文献

[1]韩平平,张祥民,丁明等.Hadoop 数据存储分析技术在风电并网系统中的应用[J].电力系统及其自动化学报,2018,30(01):43-50.

[2]郑锦男,李舒涵,许宏科.微服务框架下的交通信息化架构[J].信息技术,2019,036(08):1009-2552.

[3]黄嘉诚,董晶.基于微服务的智能档案服务系统设计与实现[J].电子设计工程,2018,26(02):26-31.

[4]李春阳,刘迪,崔蔚等.基于微服务架构的统一应用开发平台[J].计算机系统应用,2017,26(04):43-48.

[5]张杰,司维超,王丽娜,石春玲.一种面向微服务的通用考核系统设计与应用[J].计 算 机 与 数 字 工 程,2018,Vol.46 No.12,2463.

[6]陈清金,陈存香,张岩.Docker 技术实现分析[J].信息通信技术,2015(02):37-40.

[7]Bernstein D.Containers and Cloud: From LXC to Docker to Kubernetes[J].IEEECloudComputing,2015,1(3):81-84.

作者简介

廖忠涛(1986-),男,福建省人。大学本科学历。工程师。主要研究方向为航空公司电子商务。陈川(1977-),女,广西壮族自治区人。硕士学位。工程师。主要研究方向为航空公司电子商务。

许嘉伟(1987-),男,广东省人。大学本科学历。工程师。主要研究方向为航空公司电子商务。

作者单位

中国南方航空公司信息中心 广东省广州市 510403

标签:;  ;  ;  

基于微服务的航空电商架构论文
下载Doc文档

猜你喜欢