野生树叶-中国-东方航空公司-迁移-f

航空业增长迅速,仅在10年内收入就增长了两倍,达到近7500亿美元。 然而,利润率仍然很低,迫使航空公司通过提供差异化的客户体验和降低成本来生存。 作为全球领先的航空公司之一,中国东方航空站在利用技术获得竞争优势的最前沿——通过升级到MongoDB来转变客户体验并降低总拥有成本(TCO),从而摆脱传统技术的束缚。

为了了解更多,我会见了中国东方航空公司工程和项目经理童帅华和首席工程师黄冲。

你能先给我们介绍一下中国东方航空公司吗?
中国东方航空股份有限公司每年为近8000万旅客提供服务,使我们成为世界上客运量最大的五家航空公司之一。 我们的总部设在上海,拥有超过430架飞机。 我们也是天合联盟航空公司联盟的成员,将我们的航班网络从上海扩展到全球近200个国家的1000多个城市。

请描述一下你是如何使用蒙古数据库的。
作为我们积极发展计划的一部分,我们已经着手实施一项重大的数字转型项目,将客户服务置于我们运营的核心。 乘客服务系统战略由我们的首席执行官发起,要求实施新一代现代信息技术系统来提供高质量的客户体验。

这一战略的一个关键部分是改善乘客在我们的网络和手机上搜实时同步数据库 索、发现和预订航班的方式。

MongoDB为我们新的搜索平台提供动力。 它是提供差异化客户体验的核心,这对于确保未来增长至关重要。

在蒙古数据库出现之前你用了什么?
我们最初的搜索应用程序建立在甲骨文数据库上。 随着需求的发展,我们发现它限制了我们创新和向客户发布新搜索功能的速度。

您在甲骨文面临的具体问题是什么?
我们需要向乘客提供最新的航班信息以供搜索。 此前,我们将旅行数据系统(如旅行天空)中的库存批量加载至甲骨文。

我们还希望在产品搜索方面为乘客提供更大的灵活性。 除了航班可用性,我们还需要包括多城市旅行、当前和历史价格、机场位置等标准。 随着多个表之间的复杂连接,Oracle很快成为输入/输出绑定。 它无法将这些数据大规模地提供给成千上万的并发用户,也无法维持毫秒级的响应时间。

蒙古数据库如何帮助您解决这些挑战?
MongoDB的文档数据模型消除了对表连接的需求,其以内存为中心的设计使我们能够满足我们的性能服务级别协议。 在测试中,我们实现了每秒30,000次查询,同时每秒处理6,000次写入。 这是一个包含1亿个文档的数据库。 也许最令人印象深刻的是,这一切都是在一个节点上完成的,该节点的系统利用率仅为15%。 这证明我们可以同时扩展到数千个客户,同时为我们未来的扩展提供充足的空间。

使用MongoDB富有表现力的查询语言和丰富的二级索引,我们现在可以提供客户所需的搜索灵活性。 他们可以使用复杂的搜索标准来快速发现最佳飞行选项,端到端应用延迟不到95毫秒,而数据库只是其中的一小部分。

将数据从甲骨文迁移到蒙古数据库非常简单。 我们使用Pentaho ETL工具在两个系统之间移动数据。

你考虑过这个项目的其他选择吗?
是的,我们还评估了GemFire的数据网格作为一个潜在的解决方案。 在我们的测试中,这两个系统都提供了相当的性能,但GemFire的成本要高得多,从而推高了总体拥有成本。

你能描述一下你的部署环境吗?
我们目前在单个副本集上运行应用程序,为我们提供了冗余和自我修复恢复,以确保没有应用程序停机。 我们计划将来扩展到多数据中心部署。

除了横向扩展,MongoDB还为我们提供了高横向扩展性能,这有助于减少服务器蔓延。 我们已经提供了MongoDB 3。0将WiredTiger存储引擎安装到基于64核Linux的服务器上,每台服务器都配置了512GB的内存和固态硬盘。 这一令人印象深刻的硬件占用空间为我们未来的发展提供了空间,并使我们能够在未来为更多的应用程序提供支持的情况下,将更多的实例放在同一个位置。

我们使用包括Java、JavaScript和Python在内的混合编程语言,因此MongoDB的本地驱动程序对我们的开发人员来说是一个巨大的易用优势。

野生树叶-中国-东方航空公司-迁移-f


东航在线服务架构:蒙古银行将数千个航班连接到数百万名乘客

您如何管理您的蒙古数据库部署?
我们使用蒙古数据库操作管理器进行配置和监控。 从MongoDB收集的遥测数据,加上来自运营经理的主动警报,使我们能够立即洞察任何可能影响用户体验的问题。 配置工具帮助我们在测试和生产中快速启动和升级实例,而不必依赖命令行手动配置。

因为有了运营经理,我们的管理员效率更高。

你使用蒙古数据库的其他服务吗?
我们使用MongoDB企业高级版来降低这一关键应用程序的风险。 如上所述,运营经理给我们带来了运营效率。 此外,我们可以获得24×7全天候支持,并获得有保证的服务级别协议以及与MongoDB工程团队的直接合作,从而提供我们所需的保证,以保持应用程序的可用性和性能。

我们对蒙古数据库非常陌生,所以为了帮助我们从一开始就朝着正确的方向发展,我们使用了蒙古数据库咨询服务。

事实证明,我们在模式设计、硬件选择和操作最佳实践方面获得的帮助在加快上市时间方面非常宝贵。

您如何衡量蒙古数据库对您业务的影响?
跨越三个维度:

  1. 构建一个在甲骨文上根本不可能的应用程序。 跨多个在线渠道提供强大的实时搜索能力,以低延迟搜索新数据,使我们能够为客户创造与众不同的体验
  2. 显著节约成本。 这个项目已经证明了蒙古数据库是甲骨文的一个可行的替代方案,并将有助于减少我们未来对它们的依赖
  3. 提高开发人员的效率。 文档数据模型的简单性、动态模式、惯用的驱动程序和索引灵活性意味着我们的开发团队可以更快地构建新的应用程序

您是否计划将MongoDB用于其他应用程序?

是的。 我们现在正在进行两个具体的项目:

  • 使用蒙古数据库对乘客数据进行实时分析的推荐系统
  • 现有应用程序的社交支持,蒙古数据库存储配置文件数据和社交流

对于考虑在下一个项目中使用蒙古数据库的人,你会给他们什么建议?
每当你考虑一项新技术时,不要惊讶于遇到一些阻力。 我们从一些团队成员那里听到的一个特别的问题是在非关系数据库中缺少多记录事务。 我们花时间演示了MongoDB的数据模型和符合ACID的文档更新是如何为这个项目和许多其他项目提供我们需要的事务一致性的。 这并不意味着将来添加多文档事务对一小部分应用程序没有用处!

我们提供的第二条建议是关于缩放。 MongoDB的自动分片非常强大,但是仅仅因为你可以分片,并不意味着你总是需要分片。 我们已经能够从单个副本集获得非凡的性能。 如果你确实需要切分,花时间选择最合适的切分键。

你对蒙古数据库3有什么想法。2?
我们对这次发布感到非常兴奋。 我们所有的工程师目前都在3号楼接受培训。2,我们打算很快开始评估。

感谢您抽出时间与MongoDB社区分享您的经验!