航空公司系统是怎样炼成的?

刚接触航空业时,觉得自己像刚踏上美洲的弗朗西斯科.皮萨罗,或是刚遇见毛利人的库克船长,仿佛走进了信息技术的蛮荒之地,随便播下一颗“现代技术”种子,就能长出一片跨时代的技术森林。

与国内行业解决方案提供商交流之后,这种自信似乎得到了印证。一个拥有几十家航司客户的产品,代表着行业最高水平,却不支持插件化定制,没使用gitflow管理产品线和业务线,每个客户的代码都是单独维护的;航班运行全生命周期管控系统不允许宕机,却不具备基本的负载均衡、故障转移、服务降级,数据库没有主从热备,只有日备份,系统稳定性完全靠祈祷;系统升级没有回退机制,不支持新老并行,每次升级都是一场勇气与决心的冒险。

正当我撸起袖子,手握互联网技术的利剑,准备披荆斩棘,收割航空业信息化的硕果,开心地回答这道天赐送分题时,行业却问了我另一个问题:这系统安全吗?航空业对安全的追求深入骨髓,答不好就是送命题。安全是每个中国民航人做每件工作的必答题,值得国人骄傲的是,中国民航局对安全运行的要求和管控远高于世界平均水平,所以互联网典型思维,诸如快速试错、容灾,名字都不合法。

没有银弹

航空安全问题的边界在哪里,可以试着从航天安全切入,关于航天,埃隆.马斯克当有发言权,毕竟他的公司Space X,领先于NASA,实现了火箭回收重复利用的商业化。Space X的创举打破了航天技术高深莫测的神话,凡人也可以做出火箭,那么航空业的安全应该也可以通过我们熟知的技术来解决。

NASA,地球上少数几个可以和Google争夺人才的机构,是软件工程的鼻祖,世界上最初的巨型软件项目就是NASA的项目,这些项目的底线是不能出错。为了管理庞大软件项目的复杂性,NASA在实践中提出了软件工程概念,用系统化的工程方法解决业务复杂性问题。顺便提一句,软件工程师这个称谓也是由NASA的“临时编码工”玛格丽特提出来的,在她刚加入这个行业时,软件还只是硬件的一个部件。

既然安全问题说到底是个技术问题,既有的技术实践依然有效,那么航空业的信息化又回到了技术的轨道上。

没有上线,就没有伤害

第一个接受安全问题拷问的是运行控制系统,这个系统负责从制定航班计划,到飞行员资源调配,再到飞机起飞降落管控,乃至航班异常处理(备降/返航/调机),是航司生产运行的中枢系统。如此关键的系统,在设计之初,就考虑了平滑上线方案,保持老系统功能可用的条件下,业务分航线逐步切到新系统运行,一旦出现系统故障,可以立刻切回老系统继续管控航班。

这套方案最大的挑战在于电报系统,电报系统是航司和空管沟通航班调度的关键通道,每个航司只有一条专线与空管相连,无法做双线热备,是整套系统唯一的SPF(Single Point of Failure)。电报系统通过电报机通信,发送摩斯电码,模拟信号,据说建国前就在使用了,谍战片里那种,这样的古董系统,偶尔出现乱码也情有可原吧,但请谨记,航空业不允许出错,所以这就相当于要求一个Java程序员用C写代码,还不许有bug。

解决问题的关键在于回归问题本原,监控系统可用性的最基本策略是心跳检测,通过定时发送测试电报给自己,覆盖了发送和接收双向通道的可用性检测,并结合正常业务电报的收发以及航班疏密,适当减少检测频度以节约成本。

如何让新老系统共用一条线路?“Any problem in computer science can be solved with another level of indirection”,封装电报系统,内部分航线调度,隔离新老系统。同时冷备一条网络线路,预防运营商抽风。

做足了准备工作,系统终于要上线了,在发布准备会上,业务部门突然提出,分航线迁移业务不可行,因为虽然航班管控是按航线组织的,但飞行员是个共享稀缺资源池,如果按航线拆分,将出现飞行员短缺,而且局方不认可系统新老并行方案,局方要求新系统不允许出现故障。

局方,局方

中国民航局作为世界上最严厉的监管机构之一,事无巨细地监管着每一家航空公司的生产运行,高度管控可能局部高效,但整体必然低效,因为整体效率完全取决于管理层,这要求管理层都是超人。这与日新月异的大环境显然冲突,业内人都在呼唤变革,自上而下的严密监管体系制约了个体的创造力,变革只能自下而上通过奇点突破形成裂变辐射的形式发生。

我们希望在航空业的探索能够找到那个奇点,但在此之前,首先要解决业务部门尖锐的问题:局方不认可。备用系统为什么不被认可?不出故障只能是结果,怎么能是要求?再次回到问题本原,业务部门反对新老系统并行的真正原因是,不愿意在新老系统中录入两遍基础数据,这会增加工作负担。

找到根源,问题就解决了一半,通过自动同步新老系统数据,业务部门只需要录入系统差异部分数据,不仅规避了大量的重复人工,也保证了数据完整性和准确性。这件事不仅让我意识到要善于捕捉和发掘业务部门潜台词,更让我明白局方是个重要的第三方,可以是问题的核心,也可以是解决问题的支点。

新系统尽量实现自动化,但并非所有数据都能自动采集,有些即便可以自动获取但仍需人工确认,这些不自动的部分就像人类进化的尾巴,反成了难以忍受的累赘,比如上客时间和加油量等数据的录入,完全是线下行为,只能人工事后录入系统。这些遗留的人工,在自动化背景下成了额外的工作,没有人愿意接手。

体制是把双刃剑,可以借助监管的力量,反推信息化,统一技术目标与业务目标,形成部门合力,局方对航司各项工作可追溯的要求就帮了忙。所有工作必须可以通过各种工作日志、工单、审批单、会议纪要等完全还原,尤其当回溯事故/故障的原由,只要还原结果表明不存在人为过失,就可以免责,所以有句行业戏言,“工作做的好,不如记录记得好”。由此,为了保证信息流闭环,这些数据理所应当分到了合适的席位人工录入。

当然,在后续迭代中,所有现场人员都会配备信息终端,这类信息录入会简化成按钮点击,甚至只需摇一摇,即可完成;而系统本身也将演化成Event Sourcing架构,系统架构适配信息结构;这些事件、状态、工序、流程最终沉淀为数据,成为更深层变革的土壤。

数据说话

数据积累是航空业天然优势,飞机运行数据,从发动机性能参数,到飞行轨迹,到飞行员的每一次操作,从首飞开始完整记录。每一次故障,即便是空调扇叶螺丝松动,都要记录在案,而每一次修理,更是从使用什么工具,到每个具体的修理动作,比如登上脚手架,都详细记录。

这座数据金矿的价值不言而喻,但挖掘起来难度不小,主要原因是专业门槛太高,业务专家普遍缺乏系统意识,技术人员和技术专家就像修建通天塔的工匠。

 即便如此,对数据客观性的认可是共通的,每当双方各执一词,无论是立场还是观念的冲突,只要一方能够拿出扎实的数据佐证,通常就可以把问题范围缩小到数据有效性层面。

航司生产运行变动成本中,燃油占了大头,节油于航司不只是环保问题,更是真金白银的利润问题,飞机加多少油不只是个技术问题,更是理念之争。争论的两端,一方是公司要省钱,另一方则是航空公司最举足轻重的群体——飞行员。

飞行员在航空公司是特权阶层,享有巨大的发言权,就像互联网公司里的程序员,不可小觑。从飞机发动机启动开始,机长是负责航班的第一责任人,如果航班出现了特殊状况,比如备降或者返航,甚至被迫盘旋等待,油箱里有油,心里就不慌。可是飞机的载重是有限的,装了太多油,机票就只能少卖几张了,而且油自重也耗油,有时为了降落不超重,还要刻意消耗一些油减重,实在可惜。

理论上,航班耗油取决于飞机载重和航线距离,同时受天气情况(气温、湿度、风力)影响,备用油主要看备降场的选择,传统计算模型是物理公式,技术上本没有讨论空间,但理论与实践的差距很微妙,飞行员作为直接实践者,站在安全的制高点,质疑理论值只需要一个例外。

技术手腕如何对抗安全大棒?唯有动用数据的力量。如果预估油量计算模型吸收飞行员实际飞行的数据作为参数,飞行员操作习惯、飞机特性等公式中没包括的因素,都能涵盖了。

具体方案分为两个阶段:数据积累和模型训练。积累阶段,制作航班计划计算预估油耗时,选取条件最近似的历史数据作为锚点,记录每个航班的实际飞行数据,包括航距、载重、天气和耗油,进而按照不同飞行阶段细分数据,得到更精确的油耗,这个锚点油量也会作为参照值记录到这次航班的飞行数据中

积累一段时间的数据后,比对锚点油量、计划油量和实际耗油,如果锚点油量比计划油量更接近实际耗油,那么这个历史数据就可以用来修正计划油量计算模型,累计飞行数据不断训练,模型稳定后,就可以直接计算更准确的锚点油量。

原文链接:https://mp.weixin.qq.com/s/nCAsYaDsge0MQbJOJStmGA

Image placeholder
IT头条
未设置
  93人点赞

没有讨论,发表一下自己的看法吧

推荐文章
CSS粘性定位(position: sticky)是怎样工作的?

浏览器对CSS粘性定位有着非常好的支持,但很多开发者都没有用过它。究其原因有两个: ● 第一,受到浏览器的良好支持需要漫长的等待:浏览器的支持往往需要很长的时间才能完成,到时候它的功能已经被人们遗忘了

当年“你说什么,我都能实现”的软件公司,后来都是怎么死的?

在 #“我,80后,曾经靠副业的收入买车买房”# 的评论区里,有读者问,十几年前,圈内有不少软件公司,规模大小不一,遍布各个行业,但这几年似乎都没动静了,他们还活着吗?我说,撇开纯做“劳工”输出的外包

JVM是怎么和操作系统交互的?

来源:阿里巴巴中间件肉眼看计算机是由CPU、内存、显示器这些硬件设备组成,但大部分人从事的是软件开发工作。计算机底层原理就是连通硬件和软件的桥梁,理解计算机底层原理才能在程序设计这条路上越走越快,越走

史上第一张黑洞照片是用Python合成的?

这两天,史上第一张黑洞照片,在朋友圈和各大公众号疯传,希望你没有收到视觉中国的律师函。好了,言归正传。这个照片是怎么「拍到」的呢?其中一位研究人员(一个妹子,MIT 的博士,就是头图这位)就在 TED

上市公司招聘 PHP 高级架构师, 负责公司资讯网站

薪资35-40k*14【职位介绍】负责公司资讯平台开发,管理后端小团队岗位职责:负责公司资讯平台开发,管理后端小团队 负责平台开发、测试和维护工作; 岗位要求:计算机专业5年以上PHP开发经验,熟悉m

跳来跳去,到底去大公司还是小公司?

作者:一颗卤蛋,https://dwz.cn/NA3E0JFG职场生涯总会面临着选择,尤其对我们这些IT人来说,跳槽的频率应该是所有行业中相当大的了。那么我们跳来跳去,究竟该选择什么样的公司?大or小

又一知名公司炸雷,大量公司员工被带走调查

10月21日上午,港股上市公司“51信用卡”位于杭州西溪谷的办公地点突然遭警方调查。01.警方突袭杭州警方突击调查了51信用卡公司,据网上的视频信息看出,大约出动了上百名警力,带走了CEO兼公司法定代

DBA跳槽应该去大公司还是小公司?99%的人这样说…

职场生涯总会面临着选择,尤其对我们这些IT人来说,跳槽的频率应该是所有行业中相当大的了。那么我们跳来跳去,究竟该选择什么样的公司?大or小。 工作三年多了,经历一大一小,最近也面试了不少家公司,形态各

小公司锻炼人?还是大公司发展好?

编辑:zone来源:女朋友教我写代码作者:石小秀今天分享一下悉尼大学硕士小姐姐的经验,看她对大公司和小公司的一些看法?NO.12018年,花光了80万留学经费的我回国了。年少轻狂啊,觉得自己海归名校硕

PHP 是怎么接收到请求的?

php是怎么接收到请求的? 本片文章主要描述一下几点 nginx怎么转发请求给PHPFPM? CGI和FastCGI到底是个什么玩意? PHPFPM是什么?有什么作用? 简单场景描述 在浏览器上访

当金融科技遇上云原生,蚂蚁金服是怎么做安全架构的?

蚂蚁金服在过去十五年重塑支付改变生活,为全球超过十二亿人提供服务,这些背后离不开技术的支撑。在2019杭州云栖大会上,蚂蚁金服将十五年来的技术沉淀,以及面向未来的金融技术创新和参会者分享。我们将其中的

Fish Redux中的Dispatch是怎么实现的?

前言开源地址:https://github.com/alibaba/fish-redux我们在使用fish-redux构建应用的时候,界面代码(view)和事件的处理逻辑(reducer,effe

揭秘|每秒千万级的实时数据处理是怎么实现的?

01背景闲鱼目前实际生产部署环境越来越复杂,横向依赖各种服务盘宗错节,纵向依赖的运行环境也越来越复杂。当服务出现问题的时候,能否及时在海量的数据中定位到问题根因,成为考验闲鱼服务能力的一个严峻挑战。线

全球“黑客大赛”冠军霸气讲述:我是如何让50个文件一起骗过AI安防系统的?

大数据文摘出品来源:medium编译:邢畅、张睿毅、钱天培你有没有想过当黑客呢?破解手机密码,黑入公司系统,甚至…控制全球电脑。打住打住!违法犯罪的念头显然不能有。再退一步讲,咱也不一定有这本事。尤其

中新生态城的交通状况,是嘛时候成的“津门第一”?

今天大早,刚来完一套煎饼果子的小张打算开车去滨海新区拜访客户作为天津的市辖区滨海新区早在2005年就被写入“十一五”规划成为国家重点支持开发的国家级新区在快速稳健的发展中,整个新区一片方兴未艾的繁荣景

Kafka 如何优化内存缓冲机制造成的频繁 GC 问题?

目录1、Kafka的客户端缓冲机制2、内存缓冲造成的频繁GC问题3、Kafka设计者实现的缓冲池机制4、总结一下“ 这篇文章,给大家聊一个硬核的技术知识,我们通过Kafka内核源码中的一些设计思想,来

如何打包react生成的项目

如何打包react生成的项目1、点击开始-菜单-运行-cmd2、使用cd命令切换到react项目根目录3、执行npmrunbuild命令进行打包打包完成后会在项目目录下生成一个build文件夹,bui

怎样制定IT预算计划?

IT预算制定过程非常复杂,对于厌恶数字或预算制定以及申请过程的IT主管来说,这可能是一项艰难的工作。本文可以帮助IT主管简化预算流程,了解如何将预算当做工具来规划和验证IT战略,并通过预算计划提高企业

将要创造2.9万亿美元的AI有怎样的边界?

AI会抢走你的工作吗?没那么容易,上帝关上一扇门的时候往往会打开一扇窗。从古至今新技术的发展往往伴随着一些旧职业的消失,但同时也会有更多新的职业涌现出来。比较近的互联网革命,新的业态出现,类似程序员这

职业规划指南:怎样才能成为软件工程师?

如果你想从事软件工程师方面的工作,但又不确定从何开始,这里有一些关于薪资、就业市场、技能和该领域常见面试问题的信息。美国“千禧一代”刚刚进入职场,他们中年龄最大的人进入职场时,美国的就业市场正好,雇主

哈登vs字母哥,看AI怎样预测今年NBA最有价值球员!

想必篮球爱好者们都非常关注今年的NBA季后赛,MVP的奖项投票结果尚未出炉,但估计各家球迷们心中各有定论了。所以我们来用机器学习预测一下今年MVP奖项的结果。 哈登(JamesHarden)和字母哥(

分析帖!怎样辨别生物和人工神经网络中的递归?

递归是神经网络中的一个重要术语,在机器学习和神经科学领域有着不同的含义。然而,随着用于实际应用的人工神经网络(ANNs)越来越复杂,且在某些方面更像生物神经网络(BNNs),这种差异正在逐渐缩小(但总

2019年数据泄露事件激增,怎样防止数据泄露?

根据RiskBasedSecurity公布的数据,2019年的数据泄露事件达到了一个高峰,已经发现超过3800多起数据泄露事件攻击了企业或者机构,在过去四年中增加了50%甚至更多。报告指出,在2015

《双子杀手》票房扑街又怎样?李安开创的“AI易容术”,甩那些磨皮换脸大片几条街

大数据文摘出品作者:刘俊寰上映快小半个月了,李安导演的《双子杀手》大家都看了吗?这是李安继《少年派的奇幻漂流》(2012)和《比利林恩的中场战事》(2016)之后,再次推出的好莱坞电影工业的革新之作。