ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

双中台破解航司系统烟囱:业务与数据分离的落地指南

双中台破解航司系统烟囱:业务与数据分离的落地指南 简介中国南方航空数字化与双中台方案演示文稿系统呈现南航在数字化转型中的顶层设计与落地经验面向企业数字化负责人、中台架构师及行业研究者。方案重点阐述业务中台与数据中台的建设思路通过标准化、模块化能力复用解决重复投入与效率瓶颈。资源包含1个演示文稿文件pptx格式大小约1.1MB内容涵盖南航数字化管办分离体系、科技创新平台含五小创新、人工智能重点实验室、流程与人才机制以及航班中心、大兴机场转场通告快速分析、业务人员自助BI等具体案例。已有98人学习下载。适合需要参考大型央企数字化转型路径或希望了解双中台在民航业落地方法的读者可快速掌握南航从组织保障到技术平台的全景实践包括管办分离的信息化治理、业务中台航班中心微服务划分、数据中台基于QuickBI的自助分析与大兴机场转场通告快速出数案例。1. 这份数字化与双中台方案到底在给南航解决什么航空公司可能是传统企业里IT系统最复杂的一类离港、订座、常旅客、货运、销售、结算、运行控制每一套都是十几年甚至二十几年攒下来的老系统各自有独立的数据库和接口协议。所谓“数字化双中台”本质上是把这条七横八竖的系统烟囱改造成“前台轻、中台厚、后台稳”的新架构让新业务上线不用再等老系统排期。这份方案面向的人很具体——航司IT架构师、数字化推进办成员、以及给航司做乙方售前的解决方案顾问。它的价值不在PPT画得多漂亮而在能不能把“业务中台管共享流程、数据中台管共享数据”这两层逻辑拆成可执行的建设节奏落地时少走弯路。2. 为什么航司需要双中台从业务痛点倒推架构选型2.1 航司IT的典型病根一个旅客信息散落在六套系统里我接触过的航司客户几乎没有哪家能在一分钟内说清楚“一个高价值旅客在全渠道到底产生了哪些行为”。原因不复杂官网注册走电商系统的库值机走离港系统的库里程累积走常旅客系统投诉工单在客服系统APP埋点数据又单独进数仓。每个系统都认一套会员标识手机号、证件号、常旅客卡号、护照号各自为政。这直接导致三个后果旅客体验割裂、营销活动无法精准圈人、数据团队花70%的时间在对数和清洗上。双中台的第一步就是要从架构上终结这种“各管一段”的现状。业务中台把跨系统都要用的能力抽出来——会员统一认证、订单中心、产品组装、促销引擎——变成一组共享服务数据中台则把这些服务产生的数据连同老系统的历史数据重新加工成统一标签和指标。一个管“写”一个管“读”分工清楚。注意这里说的绝不是推翻老系统重来航司的离港系统是AOC运行控制中心级的核心没人敢动。常见做法是老系统继续保留但在它前面加一层中台做能力封装和数据汇聚。2.2 业务中台与数据中台的边界用“写路径”和“读路径”一刀切很多方案把双中台画成两个并列的大平台落地时却经常边界打架业务中台的订单数据要不要进数据中台数据中台算出来的标签要不要回写给业务中台我一般建议用一条最朴素的准则切分——业务中台承载所有在线交易链路的共享能力它保证的是“这个订单在创建时状态正确、库存够扣、会员等级能识别”数据中台承载所有离线分析链路的共享能力它保证的是“这个旅客的画像标签可以被营销系统批量查询”。业务中台的数据必须准实时地流向数据中台但数据中台的分析结果只在需要反哺在线场景时才写回业务中台且要经过API而不是直接连库。这里有一张我常用的能力边界对照表基本能覆盖航司双中台方案的第一轮讨论能力域业务中台数据中台会员统一登录认证、等级计算、权益发放会员360标签、流失预警模型订单订单创建、改期、退票状态机订单趋势分析、异常订单识别产品机票酒店接机打包组装产品热度预测、捆绑销售转化分析促销优惠券发放、满减计算优惠券核销率、人群圈选航班运行航班动态查询服务延误预测、运行品质分析按这个表去读方案里的架构图基本能一眼看出哪些模块放错了位置。比如“航班延误预测”被画进业务中台就属于典型的边界混淆——延误预测是分析产物它应该运行在数据中台预测结果再通过接口喂给前端APP推送服务而不是在业务中台里跑一套预测模型。2.3 为什么是“双”中台而不是一个中台也不是上云就完事单中台的思路是把所有共享能力放一个篮子里在航司这种组织里很难走通因为业务中台和数据中台背后的团队KPI完全不同前者考核的是接口稳定性、可用率、需求响应速度后者考核的是数据质量、标签覆盖度、模型效果。混在一个项目组里必然出现一个团队忙死、另一个团队没事干的局面。分而治之表面上是架构选择实际上是组织匹配。至于“上云就能数字化”的说法在航司场景下尤其不成立。南航这类航司的生产系统受制于安全合规和运行保障要求核心交易链路不可能全量上公有云。双中台的价值恰恰在于它可以骑在混合架构上无论底层是物理机、私有云还是公有云中台对外输出的都是标准API和数据服务让上层应用感觉不到底层的割裂。这也是方案里把标准和规范放到很高位置的原因没有统一的服务规范和数据规范双中台就只是给老系统换了个调用方式。3. 把PPT拆成可落地路径中台建设顺序与模块拆分3.1 先建会员域还是先建订单域顺序决定了项目生死一份双中台方案如果不写清楚建设顺序落地时大概率会变成“哪里缺人就先建哪里”最后做成一锅夹生饭。我见过的成功路径第一枪基本都是打向会员域。理由很简单航司最值钱的资产是高频常旅客而常旅客数据散落最严重、业务方最痛、最容易在短期内做出可感知的成效。会员域统一之后紧接着建订单域——因为机票订单是交易主链路所有产品行李、选座、餐食、保险、酒店都要挂到订单上。这两个域稳定之后再扩展营销域和产品域。这个顺序背后的逻辑是“先打地基再盖房”会员域提供Who am I订单域提供What I bought有了这两个后面的推荐、促销、数据分析才有数据基础。方案里如果写的是“全面铺开、六域齐建”建议直接打回重做因为在航司这种复杂环境里多线并行意味着每个业务方都要配合改造配合意愿和配合质量都会急剧下降。3.2 从PPT架构图到系统边界清单这一步不能省很多团队拿到方案PPT就直接进入编码阶段这是最危险的动作。PPT里的“会员中心”只是一个方块但落库时你得知道会员基础信息表在哪个库等级变更记录放哪里权益发放要不要发消息老常旅客系统的数据怎么同步我建议第一步先把PPT里的每个框翻译成一张“系统边界清单”包含服务名、所属域、读写类型、依赖的老系统、数据流向、接口协议格式类似下面这样服务/数据实体所属中台读写上游依赖下游消费接口协议会员统一查询服务业务中台-会员域读常旅客库、电商会员库APP、客服系统REST/JSONOneID映射表数据中台-标签域写全量会员数据加工会员统一查询服务内部表订单状态机服务业务中台-订单域写电商订单库、离港PNR退改签系统REST/JSON旅客RFM标签数据中台-标签域写订单明细、乘机记录营销圈选系统API这张表比任何架构图都值钱。架构图只告诉你“我要建一个会员中心”这张表告诉你“会员中心要接哪五个系统、每天同步多少数据、消费方是谁、挂了我该通知谁”。我一般会用这张表跟每个业务方过一遍确认他们对“数据从哪来、到哪去”没有异议再进入开发。这一步花了时间后面联调至少省三倍。3.3 中台服务的最小可交付单元一个会员统一查询服务的定义落地时不要一上来就建一堆服务先把一个最核心的服务做出样板。以南航场景为例第一个服务通常是“会员统一查询服务”——把常旅客号、身份证、手机号、会员ID统一映射到一个旅客视图上。这个服务的接口定义我建议用OpenAPI规范写清楚因为它的调用方至少有APP、客服、营销、地面服务四个系统接口不清晰后面全是扯皮。一个最小化的接口定义大致长这样openapi: 3.0.0 info: title: Unified Member Query Service version: 1.0.0 paths: /v1/members/{member_id}: get: summary: 查询统一会员信息 parameters: - name: member_id in: path required: true schema: type: string - name: id_type in: query required: false schema: type: string enum: [FFP_NO, ID_CARD, MOBILE, PASSPORT] responses: 200: description: 返回统一会员视图 content: application/json: schema: type: object properties: one_id: type: string description: 全局唯一旅客ID ffp_no: type: string description: 常旅客卡号 tier: type: string enum: [SKY_TEAM_ELITE, GOLD, SILVER, BLUE] mileage_balance: type: integer description: 里程余额 linked_members: type: array items: type: string description: 已绑定的其他会员账号这段定义背后有几个关键设计逻辑id_type参数让调用方可以用任何一种既有标识来查会员不用先自己维护一套映射关系返回体里的one_id是数据中台加工出来的全局ID业务中台服务直接消费它而不是自己再造一套IDlinked_members字段是给客服场景用的处理“家人账号绑定”这类需求时不用再跨系统查。这两个设计就是业务中台和数据中台合作的最典型样例——业务中台提供在线查询能力数据中台提供ID映射的加工结果。4. 数据中台在航司的落地细节埋点、标签体系与实时链路4.1 全渠道埋点统一否则标签体系就是空中楼阁数据中台最容易被低估的环节是埋点。很多航司的APP、小程序、自助值机设备、机上WiFi门户各有各的埋点规范同一个“点击值机”事件在APP里叫checkin_click在小程序里叫value_machine_click数据中台接入之后光做名称映射就要耗掉两周。我见过最快的解决方案是上线一套强制的事件规范所有端必须按统一schema上报违规埋点一律不接入数仓。下面是一份最小可用的埋点事件规范示例字段不多但足够支撑绝大部分分析场景{ schema_version: 1.2, event_name: checkin_click, event_id: uuid, timestamp: 2024-06-01T10:23:4508:00, channel: { channel_id: APP_IOS, app_version: 5.3.1 }, user: { one_id: M_20240601001, is_login: true, ffp_tier: GOLD }, context: { page: checkin, route: home_checkin_btn }, properties: { flight_no: CZ3101, dep_airport: CAN, arr_airport: PEK, checkin_method: auto } }这份规范的要点event_name是人读的event_id是机器查的一条事件缺了后者就没办法做去重和排障user.one_id是数据中台回传给端上的端上只管透传这样分析侧才能统一按one_id拉全旅程行为properties里放的是动态业务字段允许各端扩展但不能改名。执行层面我通常建议在数据中台前面加一个校验层schema不合法的事件直接进隔离队列宁可丢数据也不要脏数据。等埋点规范稳定运行一个月再开始建标签体系否则标签加工出来的东西全是垃圾。4.2 旅客标签体系怎么建从RFM分层到OneID打通标签体系是数据中台最容易“自嗨”的部分。业务方张口就要“高价值旅客”“流失倾向”“亲子人群”但你要先回答一个基础问题这些标签的加工逻辑是什么我一般从RFM入手因为它是航司场景里最通用、业务方最容易认可的一套逻辑。用SQL写一个简化版的高价值旅客分层跑在数仓的离线调度里大致长这样WITH rfm AS ( SELECT one_id, DATE_DIFF(CURRENT_DATE, MAX(flight_date), DAY) AS recency, COUNT(DISTINCT order_id) AS frequency, SUM(passenger_revenue) AS monetary FROM dwd_flight_order_detail WHERE flight_date DATE_SUB(CURRENT_DATE, 365) GROUP BY one_id ), rfm_score AS ( SELECT one_id, CASE WHEN recency 30 THEN 4 WHEN recency 90 THEN 3 WHEN recency 180 THEN 2 ELSE 1 END AS r_score, CASE WHEN frequency 6 THEN 4 WHEN frequency 3 THEN 3 WHEN frequency 1 THEN 2 ELSE 1 END AS f_score, CASE WHEN monetary 50000 THEN 4 WHEN monetary 20000 THEN 3 WHEN monetary 5000 THEN 2 ELSE 1 END AS m_score FROM rfm ) SELECT one_id, r_score, f_score, m_score, (r_score * 100 f_score * 10 m_score) AS composite_score, CASE WHEN r_score 3 AND f_score 3 AND m_score 3 THEN 高价值活跃 WHEN r_score 2 AND f_score 3 THEN 沉睡高价值 ELSE 普通 END AS tier_label FROM rfm_score这段SQL看起来简单但踩坑点都在细节上dwd_flight_order_detail这张表必须已经是OneID打通后的明细表如果还停留在“按会员卡号关联”的阶段跑出来的数据会漏掉用手机号下单但没绑卡的用户DATE_SUB往前取365天是行业常用窗口但航司旺季和淡季差异大我建议至少要和去年同期做对比否则夏季做的模型到了冬季会严重偏移。这套标签做好后最大的受益方是营销系统——圈选人群从“手动导出Excel”变成“中台API实时查询”。4.3 实时链路航班动态和延误信息怎么支撑前台体验航司数据中台里实时计算链路的优先级比离线报表高得多因为航班动态直接影响旅客的现场体验。一条典型的实时链路航班起降数据从AOC系统出来经过消息队列进入数据中台的实时计算引擎关联天气、管制、前序航班状态生成一个“延误预估”结果再推送到达APP的弹窗。端到端延迟要求一般在30秒以内超过这个阈值旅客可能已经走到登机口才发现登机口改了。实时链路里最容易被低估的是数据质量监控。流式计算框架本身的稳定性经过几年发展已经比较可靠真正的黑匣子是输入数据的准确性——AOC发出来的某个航班状态字段突然变了枚举值实时任务不会报错但会把“正常”算成“延误”。我一般会在实时链路里加一个“跨源校验”的步骤航班状态同时从AOC和机场地面系统取数两者不一致时默认取更保守的值并告警。这条规则看起来简单但能避免大量“系统显示延误、旅客到了机场发现没延误”的投诉。4.4 文创IP数字化被忽略的航司第二增长曲线现在航司做文创已经是普遍趋势飞机模型、联名周边、主题文创在电商渠道的销量逐年上升。这个场景和双中台有什么关系关系非常大——南航这类航司的文创电商如果挂在老电商系统上会员积分兑换文创礼品要走常旅客系统库存管理要走ERP物流查询走第三方快递接口每一段都是孤岛。双中台在文创IP数字化里的价值是把“积分兑换现金购买会员权益”三种交易形态统一到订单域把文创商品的浏览、加购、兑换行为统一进数据中台的行为标签体系。后面做IP联名推广时可以直接用数据中台的画像圈出“收藏癖人群”“亲子人群”“飞友人群”分别推送不同文创品类而不是群发短信。5. 双中台建设的5个常见坑现象、原因与解决办法5.1 中台变成“大烂账”所有接口都往中台塞现象中台上线半年后服务数量涨了三倍但每个服务的调用量都很低团队陷入“为抽象而抽象”的泥潭。原因是没有定义中台能力的准入标准任何系统说一句“我要接中台”就被纳入建设范围最后中台变成了新的ESB。解决引入“双业务方原则”——一个能力必须至少被两个独立的业务方使用才有资格进入中台只有单一业务方需要的逻辑留在前台自己实现。这个标准在每次架构评审会上都要重申否则半年后就没人记得了。忠言逆耳但这条最管用。5.2 数据中台变成了报表中心现象数据中台上线后业务方天天提“我要看XX报表”数据团队疲于奔命交付报表但业务决策并没有更智能。原因业务方的思维惯性是“你给我东西看”而不是“我把我的系统接上你的服务”。解决数据中台考核指标从“交付报表数量”改为“数据服务被调用次数”在需求评审时问一句“这个报表是要给人看还是要被系统调用”——如果说不出系统消费方就放到BI工具里让业务方自己拖拽不进中台建设范围。这一条能把中台的边界护住不然数据中台就是个升级版数仓。5.3 OneID映射比想象中难手机号不是万能键现象会员打通项目做了一半发现同一个旅客在常旅客系统里是卡号A在电商里是手机号B两者没有关联关系合并后产生大量重复ID。原因手机号可以换、可以一人多号、可以家人共用不能作为唯一的确定性标识。解决建OneID映射表按“证件号 常旅客卡号 手机号”的优先级做置信度加权匹配低置信度的对不上的先进人工审核池。我见过最稳的做法是上线初期只对数据中台内部开放one_id等映射准确率稳定在95%以上再回写给业务中台对外开放。不要一上来就追求100%准确率那是不可能的先跑起来、跑起来才能发现问题。5.4 老系统不改造中台和老系统两边数据对不上现象中台已经上线了但老系统还在被其他渠道继续写入两边数据每天对账都有差异。原因并行期没有明确“数据权威源”老系统和中台都在改同一份数据冲突是必然的。解决建立数据源分级制度每个数据实体只允许一个系统做写操作。在过渡期让老系统继续作为权威源、中台异步同步还是让中台作为权威源、老系统反向同步我的判断标准是核心交易链路如出票先让老系统保持权威边缘场景如会员资料修改优先切换到中台边切换边对账分批次收编。这里对账脚本要提前写好每天自动跑差异数据进队列让业务方确认不能只靠开发手动查库。5.5 业务中台和数据中台边界打架数据到底归谁管现象做标签回写时业务中台说“这是数据中台的表我不管”数据中台说“这是在线交易的数据应该你负责”两边扯皮。原因切入时就只画了架构图没定义“读路径”和“写路径”的交接协议。解决写清楚一条细则——业务中台负责所有在线事务的写操作和数据一致性数据中台负责所有分析型数据的加工和存储数据中台把加工结果回写业务中台时必须通过API且由业务中台编码落库数据中台不允许直连业务中台的库。这一条写进开发规范里比反复开协调会管用。做双中台最怕的不是技术难度而是权责不清造成的组织内耗这是所有坑里最贵的一个。6. 中台上线后怎么验证价值一个可复用的度量方法中台建设最怕的一件事就是上线时轰轰烈烈、验收时却拿不出业务价值。我常用的验证方法不是看服务数量、不是看数据总量而是盯住“一个典型业务需求的交付周期”。具体做法选一个改造前要跨五个系统手工协作的场景——例如“新增一种会员权益类型全渠道同步生效”——在旧架构下这个需求的交付周期通常是四周加两次跨部门评审。中台上线三个月后再做同一个需求记录从业务提需求到全渠道生效的时间。如果这个周期没有缩短到原来的三分之一以下那中台一定哪里建歪了别听任何汇报数据不会骗人。除了需求交付周期我还会盯两个过程指标中台服务的复用率被两个及以上业务方调用的服务占比目标是60%以上和数据API的周调用次数趋势。这两个指标不太会被美化因为它们直接体现在监控系统里。做双中台这几年我最大的教训是不要追求“大而全”地一次性把中台做完美也不要被PPT上的宏大叙事带偏节奏。先锁死一个业务域把它打成样板——让业务方切实感受到“原来三天的活现在三小时能完成”后面所有抵抗都会变小。这个方向值不值得投入不看选型报告就看跑完样板业务域之后业务方还愿不愿意继续配合你往下建。希望帮到你。本文还有配套的精品资源点击获取
返回列表