新型航空电商架构平台建设研究及应用
2018-10-21廖忠涛许嘉伟陈川彭向晖
廖忠涛 许嘉伟 陈川 彭向晖
摘 要 文章主要介绍基于移动互联网、大数据等新形势背景下,航空公司电商架构平台建设所面临的挑战,以及通过建设新型航空电商架构平台去应对挑战。此电商架构平台已应用在某航空公司电子直销平台,并取得了一定的效果。新型航空电商平台建设在航空公司电商销售系统建设中具有较大的借鉴和推广价值。
关键词 互联网;电子商务;平台构建
中图分类号 TP3 文献标识码 A 文章编号 1674-6708(2018)220-0089-05
1 综述
互联网二次革命移动互联网时代、大数据时代,面对国资委“提直降代”要求、高铁的冲击、航旅消费人群的变化,如何吸引及留住用户、提升系统响应、拓展辅加服务,提升用户体验及系统销量,实现“千人千面”营销,在激烈的竞争中脱颖而出,是各航空公司面临的重要课题。本文结合新形势、“互联网+”环境下,运用先进的互联网技术,研究新型航空电商平台的构建,探索这种新型航空电商平台在航空公司电商销售平台建设中的应用。
2 航空公司电商平台建设面临的挑战
2.1 业务需求的急速增长
电商平台就如同超市,没有流量就不会有销量,提升直销销量最重要途径之一,是提升网站及移动端用户访问量、活跃度。实现的方式是推出各种营销活动,吸引大量用户的关注和参与,并最终转化成购票行为。例如东航推出的机票秒杀活动、国航推出双11机票抢购活动、海航每月8号会员日活动等。活动期间必然导致访问请求量、并发量激增,高峰期可能是平时5~20倍的量级增长。如图1,某航空公司某次营销活动日请求量与平时对比。
2.2 业务逻辑日益复杂化
广告活动、机票销售等由传统“千人一面”变成“千人千面”,由B2C模式向C2B模式转变,后台基础服务要支撑包括机票、支付、优惠券营销、升舱、餐食、付费行李、付费选座、里程兑换、机上WiFi预选等各种业务处理。
2.3 业务数据多样化、异构化
业务模块增多,数据源越来越多,接入的数据结构由以前的结构化数据整合转为销售订单数据、访问大日志数据、网页访问行为数据、各种埋点数据等多元化异构数据整合。
2.4 业务的高速发展和迭代
业务高速发展和迭代,新增大量的业务需求,而且业务需求不断发展变化,部分业务需求有很高的时效性要求。行业数据显示,航空旅游消费主力群体集中在25岁~40岁之间,这部分人基本出生在改革开放后,较乐于接受新鲜事物,习惯手机网购,不仅仅满足于航空点到点的运输服务,期望对出行各环节、全流程全面的服务提供,更注重个性化产品服务体验,期望得到及时回应的互动式服务体验。消费群体变化,导致在航空出行全流程涌现各种不同的业务需求,包括个性化运价、线上线下营销(O2O)、机票打包、微信营销、机上娱乐等。对项目研发效率、项目管理方式、项目技术架构提出新的更高要求。
在这种新形势下,传统航空电商应用架构不得不变,要对系统应用架构的自我重生和涅槃,需要改为大数据及新的高并发架构,来应对业务需求激增及高速迭代带来的挑战。
3 应对挑战的系统架构改造思路
面对这些挑战,我们的应用系统架构应该如何涅槃?总体思路上从4个方面进行:
3.1 系统的存儲
存储是航空电商交易的核心,这一点对于整个系统的吞吐量和并发量的提升起到最关键的作用,需要结合数据存储模型和具体应用的场景。
3.2 系统的计算
主要从横向和纵向考虑:横向主要是增加并发度,增加并行链路及使用集群分布式。纵向拆分就是要求我们找到计算的结合点从而进行分层计算处理,将各层次计算完后的结果整合,尽可能最大化系统整体的处理能力。
3.3 业务层架构
要求系统的良好的模块化设计,清楚的定义模块的边界,模块自升级和可配置化。在模块化基础上,引进最新的微服务架构,并能实现容器部署。
3.4 开发管理模式转变
软件工程管理有自身特点,需求总是在不断变化,充满很多不确定性,需要通过不断的自我调整、不断迭代、阶段交付,与需求不断碰撞、与用户频繁交互等,去适应各种变化。传统的从上而下的“瀑布模型”已不能适应业务需求的高速发展和迭代,需要用新的快速迭代的方式去适应。
4 应对挑战的新型航空电商架构平台设计
面对这些挑战,航空电商架构平台如何涅槃?下面参考第三章中的思路,主要从对系统架构设计最重要的5个方面,即存储的设计、架构层设计、业务计算的设计、敏捷模型、云服务介绍新型航空电商架构平台设计。
4.1 存储的设计
马云曾说:人类正从IT时代走向DT时代。在大数据时代,数据是企业的一种宝贵资源,但最关键的是如何存储、使用和利用好数据。航空公司电商现状是需要安全存储海量的数据,高吞吐,并发能力强,同时随着数据量和请求量的快速增加,能够通过加节点来快速扩容。另外还需要支持故障转移,自动恢复,无需额外或只是很低的运维成本。下面以建立航空公司搜索智能库存缓存平台为例介绍存储的设计。
航空公司做电商直销平台架构的时候普遍面临一个问题:即高并发查询与自身后台或依赖的第三方接口性能处理能力不足之间的矛盾。如果把航班、舱位、票价当作商品,那么这个商品每时每刻都有用户高频的查询及购买,高峰期可能每秒达数百次查询,商品库存时刻在变化。面对库存的时刻变化,简单的做数据缓存无法解决用户查询缓存数据准确率低、用户体验不友好的问题。面对这个问题,我们通过建立仓储库存、消息通信机制、被动式+主动式缓存等3个方面设计解决。
建立“仓储”库存。建立仓储库存平台,把所有的航线、座位、票价等数据放在“仓库”,用户查询的时候直接从自己的“仓储”中拿出来返回给用户。可以根据不同业务数据特点,选择不同的“仓储”库存工具,针对座位、票价高并发访问数据,可选择采用MongoDB+Redis的数据存储方案。
通过消息通信机制保障库存“供应链”管理,实现实时或准实时更新。影响航线、座位、票价数据库存的因素很多,包括AV、航班计划、pricing、票价收益、Booking、监控等。通过建立消息队列通信机制,将每一个环节的变化信息发送给消息队列,消息队列则推送给“仓储”库存平台,在消息队列里面,保证每一个消息都会被处理。可选的消息队列工具包括RabbitMQ,Apache ActiveMQ,RocketMQ等。
建立被动式+主动式缓存机制。当用户实时搜索的时候可以做被动式缓存,用户没有搜索的时候做主动式缓存。根据各影响因子或环节特点设计主动更新库存时间表,每天按计划时间设置不同频率准时访问各影响因子或环节,并建立科学监控埋点,第一时间获取库存变化信息。
总体上,航空公司可以根据需要存储的数据大小、数据类型、数据读写频度等不同的业务场景需求,选择对应的存储技术。
4.2 架构的设计
1)面向服务的模块化:很多航空电商平台还在使用传统单体式应用架构,所谓单体式应用架构,简单的说就是将复杂的业务模块放在一个应用里面,开发、升级、部署都在一起。这种单体式应用架构的缺点是:随着业务需求不断增加,单体应用变得越来越臃肿,技术债务不断堆积,可维护性、可扩展升级性、灵活性逐渐降低,各业务应用模块相互影响及牵制。针对航空电商业务特点,可将其进行模块化拆分,将航班票价查询、机票下单、支付、登录、订单管理、优惠券管理、里程兑换、航班动态管理等模块独立出来,单独更新升级、独立部署。
2)微服务:微服务架构是一种架构风格和设计模式,他提倡将应用分割成一系列细小的服务,每个服务专注于单一业务功能,运行于独立的进程中,服务之间边界清晰,采用轻量级通信机制(如HTTP/REST)相互沟通、配合来实现完整的应用[2]。微服务是在模块化基础上的升级,是“小而专”,轻量级、组件化、服务化,服务可以细化到每个接口API。微服务架构改造不能生搬硬套,需要从微服务拆分、接口适配、服务治理、微服务的开发管理等进行改造升级。
(1)微服务拆分:主要从业务和领域模型、技术及业务量、团队组成等几个方面进行微服务拆分。一个服务的边界最好是由业务和领域模型决定,为了保证服务功能的单一内聚和独立布署,我们参考领域驱动设计的思路去决定一个微服务的大小和边界。例如对于航空公司航班票价查询Shopping云库存缓存系统,就要组织相关的服务,结合数据的组成方式和功能,整理出监控、整合库存数据、缓存数据、查询等服务;而对于低价日历这种业务模型单一的功能,我们可以直接使用一个服务就实现。
(2)接口适配:在开放的底层接口中,客户端的接入五花八门,为了减少对客户端的嵌入,在微服务应用架构的过程中需考虑许多种通讯方式的支持,因此微服务的架构需考虑“六边形架构”的模式(见图3),搭建和外部服务交互的端口和适配器。每个微服务都有明确的上下文边界,微服务间通过消息或者http请求进行交互。
(3)服务治理:为了更好的引入微服务,需要进行服务治理解决服务依赖问题。设计微服务时对颗粒度进行把控,减少多重依赖,使服务尽量扁平化;同时,需要将各公共服务独立出来,例如建立基于redis緩存服务,基于rocketMQ消息服务,基于flume+ElasticSearch+kibana的日志服务等。
(4)微服务的开发及管理:在微服务开发和管理过程中,微服务突出表现在“小”这一方面,具体表现在开发周期和团队都变小。开发周期控制采用敏捷开发的方式,通过迭代加快开发进度和适应变更,更具灵活性。团队的规模,根据康威定律,微服务的团队组织结构相比以前的项目就小很多。例如针对航空公司行程中心中间库系统,可以配置1个PM和2个开发作为主体,同时对配置管理平台CMC和监控功能再配置2名开发人员辅助,整体5个人团队就完成了相关项目。
实现微服务之后,可以将航空公司众多的业务功能点分散在各个微服务中实现,可以支撑快速响应开发,快速部署。
4.3 计算的设计
4.3.1 在线计算
横向扩展。应对访问量、销售量快速增长,使用增加并发链路、分布式部署方式,增加横向计算能力。例如针对移动端访问量新增,可扩大移动平台并发链路,对Redis集群部署等。
纵向扩展。拆分业务模块,对原来只有一层的单一应用,拆分成多层,例如把航班票价查询接口拆分成票价获取、航班获取、票价航班组合处理;针对机票下单拆分成票价校验、订座生成PNR、订单入库等。对存储拆分,对查询频率高的热数据放到缓存中,对冷数据则基于下一级存储,例如Mysql。
业务层推荐策略。根据用户搜索、用户点击浏览、用户曾经购买记录等,推测用户意图,推荐策略生成的产品数据集合,接着按照场景规则,业务逻辑重新过滤,聚合、排序。例如分析发现某用户对“广州-三亚”关注度很高,且根据其曾经购票行为判断为价格敏感型用户,则提前缓存近1~2个月“广州-三亚”“广州-海口”航线最低价数据,有针对性的推荐给用户。
4.3.2 离线计算
主要分4个阶段:
1)数据收集阶段:在网站、手机、触屏前端、应用端、接口端建立起各种“埋点”,收集各种用户数据。
2)预处理阶段:这块主要为后续数据挖掘做一些数据的准备工作,数据去重,过滤,对缺失信息的补足。举例来说用户打开APP,系统采集定位到该用户所在城市为北京,通过连接后台会员库、销售库获取该用户为银卡用户,过两天飞“北京-悉尼”,系统主动为其推送机上WiFi、机上餐食等。
3)数据挖掘阶段:主要运用一些常用的数据挖掘算法进行模型训练和推荐数据的输出。
4)数据导入展示阶段:对挖掘结果数据进行导入存储,并界面化、图形化进行展示。
4.4 敏捷模型
敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。对于快速增长变化的航空业务需求,“敏捷模型”可以很好的解决需求不断变化的问题,实现快速迭代、快速交付。图4为敏捷的一个模型图,以2周为一个迭代周期。
4.5 云服务
阿里巴巴2017年“双11”交易峰值达到32.5万笔/秒,支撑如此高并发处理的正是阿里“电商云化”架构。随着航空公司大规模营销活动、促销活动深入开展,国际化战略的深入,越来越需要得到一种可以弹性伸缩、可扩展的基础架构服务IaaS、平台服务PaaS、软件服务SaaS,并能够解决海外信息数据平台建设的问题。云服务部署能很好的解决上述问题。
5 应用案例
根据上述新型航空电商架构建设研究分析结果,某航空公司针对航班票价搜索、基于“仓储”库存+“供应链”管理架构设计、使用MongoDB+Redis存储及RocketMQ消息队列技术完成建设Shopping智能云库存缓存平台,日均处理消息1 500万+,库存数据库实现对该航空公司国内国际全年150万左右航班约3 900万个舱位的准实时更新,准确率达到98%,平均搜索响应时间只需要0.03秒。又比如该航空公司基于Spring cloud技术构建起包括航班搜索、机票预订、行程中心、用户登录、最低价日历等几十个微服务的“蜂巢”微服务架构平台,其中登录模块微服务改造之后,性能提升80%;旅客行程中心进行微服务改造并实现分布式集群部署,在整体数据量超过3亿条情况下,平均查询响应时间低于500毫秒。
基于此构建的新型航空电商平台,支撑其直销平台每年超过50%的增长,电子直销单日破亿的梦想变成现实,并渐趋常态化;移动商旅平台年销售额突破45亿元,同比提高超过100%,单日销售额突破3 000万元;电商平台年访问量近1.4亿人次,同比增长60%,支撑单日最高超过100万用户访问,App单日活跃用户数超过25万,社交媒体粉丝量超过1 000万;并初步构建起精准营销、一站式全流程服务电商架构支撑体系。
6 结论
本文研究的航空电商平台建设,主要基于中国南方航空的实际业务特点及对应的发展现状。国内航空公司电商平台的发展虽然也有各自特点,其发展历程及面临的问题跟南航有很多类似和可以借鉴的地方。所以,基于南航的这套新型航空电商架构平台建设,在国内航空中具备一定的普遍性。
目前,中国移动互联网用户11.2亿,移动宽带用户9.78亿,手机用户13.3亿,互联网上市企业市值近9万亿,2017年全国电子商务交易额达到29.16万亿元。在航空机票领域,国际上的在线旅游网站EXPEDIA\ORBITZ等,国内的携程、艺龙、淘宝旅行,在线搜索企业KAYAK、国内的QUNAR等公司,纷纷进军航空旅游,不断冲击航空旅游企业。国内航空企业如果能积极应对,在航空电商平台架构建设上进行创新,利用“互联网+”构建自己新型电商架构平台,将大大提升航空公司效益,提升竞争力。
参考文献
[1]Andrew Ryan. Under the Hood:Hadoop Distributed Filesystem reliability with Namenode and Avatarnode(Z). Facebook Blog, 2012.6.
[2] Kristina Chodorow,Michael,Dirof. MongoDB:The Definitive Guide, 2nd Edition(M). OReilly Media,2013.5.ISBN: 978-1-4493-4468-9.
[3]Eric Siegel. Predictive Analytics: The Power to Predict Who Will Click, Buy, Lie, or Die(M). Wiley, 2013.2. ISBN: 978-1-4571-6194-0.
[4]戴国良.C2B模式电子商务的产生、发展与展望[J].电子商务,2013(9):25.
[5]孙海洪,微服务架构和容器技术应用[J].金融电子化,2016(5):63-64.
[6]阿里巴巴雙11技术团队,不一样的技术创新——阿里巴巴2016双11背后的技术[Z],2016,12.