春秋航空的API实践

中国信息化周报 / 2018年09月24日 15:38

互联网+

春秋航空低成本战略应用研究.doc

春秋航空是一家低成本航空公司,自开航以来,已经初步探索出一条低成本航空发展的商业模式。截止到2015年,春秋航空已经拥有了52架空客A320飞机,飞抵84个国内和国际城市,航线数目达到114条,平均客座率保持在93%左右。春秋航空自成立以来,自主研发离港系统,以网络直销为主。春秋航空还自主研发了旅客自助离港系统、自助登机系统、收益管理系统、飞行管理的FOC系统、飞机维修管理的MISS系统,不断的创新令航空信息化建设成果丰硕。

春秋航空作为中国首批民营的航空公司之一,从2010 年起就洞悉了广阔的互联网市场所埋藏的无限机遇,从而做出了移动平台开发的战略规划。如今,春秋航空研发的航空电商APP得到人们的广泛关注和赞许。就API的相关问题,春秋航空IT部运行事业部技术总监刘文辉和电商事业部运营总监朱亮接受了《中国信息化周报》的独家专访。

200多个外部API

刘文辉向记者介绍,春秋航空目前内部API有1300多个,外部API有200多个。“我们对内提供两种类型的接口。一是dubbo接口,二是消息服务MQ接口。传统的Webservice接口一般使用soap协议,我们现在用的是dubbo框架,用hessian协议。由于dubbo采用了zookeeper来管理集群,能够动态感知服务器健康状态,保障系统稳健高效的运行。在消息服务MQ接口方面,我们通过消息来解耦系统,提供更加健壮的服务,适用于实时性要求较高的场景。”刘文辉详细地向记者介绍道,“我们对外提供的以restful接口为主,也提供MQ接口和Webservice soap接口。其中restful接口的目标是兼容各个平台开发语言包括移动端调用。当然对于一些特定的用户(如机场、空管局),我们也提供MQ接口,这些用户的实时性要求较高,比如飞机机号变更要及时发消息通知机场等。但现在线上还有一些老用户使用的还是我们之前提供的Webservice soap接口。”

“我们原来各个系统是各自做各自的安全,各做各的安全策略,我们现在统一的网关实现接入的安全,然后通过加密、签名技术去对接口调用人进行身份认证,加时间戳进行防篡改。”朱亮告诉记者,现在的互联网尤其对航空公司来说,安全是第一位的。“所以我们在安全方面有所加强,包括统一的身份认证、接口调用的频率监控、访问次数的限制等。目前主要是自己开发,接下来在监控方面考虑用第三方的工具,比如用zabbix做服务器的监控,做负载均衡,防止单点故障、性能故障、宕机等情况的发生。”春秋航空有专门的团队在做API的监控平台,在做数据中心的同时,同步完善API平台。

为什么要这么做的原因,刘文辉告诉记者:“我们内部出现过这种情况,业务部门没有外部数据统一的数据源,提供给不同部门的数据从不同的接口来,数据有时是不一致的。比如原来做飞行员飞行小时的统计时,给飞行部门的数据和给管理层的数据会存在出入,因为是分别来自不同系统的数据汇总出来的。为了解决上述问题,我们就建了数据中心,把数据汇总统一,再以API接口统一调用。”外部调用时,首先进入网关,身份验证通过之后进入API服务器。

春秋航空的航空电商APP涉及范围广泛,包括酒店、旅游、跨境电商,甚至是生鲜,所以就有很多外部调用。用户平台、支付的平台,多品类产品的平台,用户规则、费改签的、支付订单的取消很多的API接口的调用。虽然是调用第三方的接口,但对于春秋航空而言,API越来越多,越来越复杂,需要做很多基础工作。

实现API标准化、安全与监控

“以前效率比较低,在API的规范上,不同供应商做的API,接口规范、格式五花八门。”刘文辉介绍说,如果直接提供给用户调用的话,对春秋航空开发而言,难度很大。春秋航空做了API的平台,这个平台起到以下几个作用:第一是将各式各样的API格式做适配,转化成统一服务,统一标准,各种规范、规则相对统一,实现API标准化。

第二是保障API安全,不排除有人会恶意订票、注册、刷单等恶意攻击等,安全管理非常重要,做很多控制,攻击几次要断掉,通过用户访问次数、用户行为来判断是否为恶意,并加以处理,做好安全防御。“简单做Webservice传输的话根本就不会考虑这些问题,只要调通,保持业务的连续,数据正常返回就好。”朱亮补充说。但实际上像航空电商APP这种大量用户应用的系统,系统的稳定和安全都是非常重要的。“调用时,我们给下游系统分配APP key,对应这个key有密码,客户端生成签名和时间戳,后台验证之后,过了时间失效;针对key 访问频率和次数我们是可以控制的。对内的API安全策略,我们采用白名单IP地址限制。”

第三是API的监控,实现自动化监控,当接口访问次数突然增加,服务器压力就会增大。“我们需要监控接口的响应速度,看看最慢的耗时,在地域上响应时间的不同,响应慢的接口是哪些,运营部门也会提供接口访问的压力预警,如果要有定单秒杀活动来临的话,订票接口和数据库都会给出压力分析预警。我们订票的业务在未来打算开放给互联网开发者,所以在安全性方面非常重要。”

价值与挑战

有了API,春秋航空电商直销占比85%,APP下载量2000万。对于API给春秋航空带来的价值,刘文辉如此总结,简单来说就是提高了效率。“现在是移动互联网时代,也是共享经济时代。我们春秋航空一直想将我们的航空和旅游产品通过API形式对个人开发者开放,让更多的个人开发者来帮助我们销售机票、辅营产品等,开发者可以得到一定比例的佣金,我们也提高了营收。大家都双赢,何乐而不为呢?”

对于接下来的难点,刘文辉认为有几方面:一是计费需要做,按照接口、成交量还是按照调用次数计费需要考虑;二是一旦开放API,相对比传统方式,调用量、安全压力会大,不可预料的情况会多,原来很容易管控,以后在管控方面挑战会很大,“我们已经有了预案,接下来会继续完善安全控制”;三是如果要开放出去的话,API的易用性、标准性要求很高,与现在内部人员理解API的要求很不一样,得让外部开发者看懂API的定义、规则,需要很好的文档的支持。“原来文档不是很标准,如果开放给开发者的文档不标准、不好用的话,估计个人开发者就会吐槽或者弃用了。在这方面,我们也要做些工作。”刘文辉说,对于API供应商的选择,“我们更倾向于互联网的企业的技术,传统的厂商有很多绑定,对我们来说是黑盒。我们的第一选择是,如果有相对成熟的开源产品,我们自己做一定的开发和封装;如果开源不够成熟,就会选市面上比较开放的产品,能跟上我们的节奏。”

记者手记

记者这次做API选题,既感觉踏实,又感觉惶恐。踏实的是,记者先后找到多位专业人士,并进行了独家采访,应该说,选题采访基础打得还比较扎实;但惶恐的是,毕竟记者自己没有做过开发,有些技术细节,受访者讲得很明白、很专业,但记者还是会担心自己没有100%理解透,不知道是不是完全表达清楚了受访者的观点。另外,对于更广大、更专业的读者而言,记者也不知道这次采访到的几位人士,是否谈出了他们想了解的内容。

但无论如何,一家之言也罢,观点偏颇也好,媒体的作用不就是要让更多人“发声”么,所以如果您是专业人士,您对记者所写的这个选题文章有任何相同、不同的看法,都欢迎与记者联系。我们愿意“耳听六路”,愿意洗耳恭听。当然了,如果有读者想要表达赞赏,欢迎您关注《中国信息化周报》,为我们点赞。

1.环球科技网遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.环球科技网的原创文章,请转载时务必注明文章作者和"来源:环球科技网",不尊重原创的行为环球科技网或将追究责任;3.作者投稿可能会经环球科技网编辑修改或补充。