公告推出MongoDB 8.0,史上最快的MongoDB!了解更多 >>推出MongoDB 8.0,史上最快的MongoDB!>>

Helvetia如何通过MongoDB Atlas将云原生现代化加速90%

从DocumentDB和Elasticsearch迁移创建了一个简化和流程化的数据基础,用于新的基于事件的微服务

Hero

行业

保险
医疗保健

产品

MongoDB Atlas
Atlas Search

用例

内容搜索
单一视图
运营数据层

客户自

2020
简介

云原生现代化的路径

成立于1858年的Helvetia是瑞士最大的保险公司之一,为欧洲超过700万个人和企业客户提供服务。

通过其“Helvetia 20.25”战略,公司旨在成为财务安全的最佳合作伙伴,并设立新的客户便利性和接入标准。实现这一目标的一个方面是对其IT系统进行多年的转型。转型的核心是解锁被核心后端系统约束的多个数据孤岛,并将它们在Amazon Web Services (AWS)上运行的云原生微服务中进行联邦化。Helvetia容器平台为公司开发者提供基础,以构建吸引人的新客户体验,同时提高业务敏捷性和上市时间。

公司选择了具有统一数据库和应用搜索功能的MongoDB Atlas,以支撑公司的容器平台。今天,MongoDB Atlas为30多个不同服务提供支持,还有更多服务正在开发中。

在转型之旅中,Helvetia将Amazon DocumentDB迁移到了MongoDB Atlas,并用MongoDB Atlas Search替代了Elasticsearch。结果是:新应用功能发布速度提高了90%以上。

挑战

技术限制和应用复杂性

Helvetia容器平台基于事件驱动架构,Apache Kafka将所有数据变更从核心后端业务系统流出到容器平台。如图1所示,每个开发团队创建自己的数据产品,并通过API向前端服务暴露。通过遵循数据网格设计模式,每个团队负责其数据产品,对新服务进行治理和共享,这些服务需要跨之前隔离的客户和政策数据工作。
Helvetia’s architectural blueprint for the creation of new customer-facing services

图1:Helvetia创建面向客户服务的架构蓝图

容器平台的一个关键服务为Helvetia的销售团队提供了快速可靠访问客户数据的能力。该服务需要提供对所有客户接触点和保险产品的单一、360度的实时视图。这包括保单详情、报价、账户历史和客户服务信息,所有这些信息都通过快速可靠的全文搜索向用户展示。

从项目一开始,Helvetia的解决方案架构师就清楚,与传统的关系型数据库相比,文档数据库将是一个更好的技术选择。

“保险政策由许多不同的属性组成,而客户数据是分层结构的。这两者都自然地映射到丰富的JSON文档。试图将这些灵活的结构强行适应关系型数据库的僵化行和列会增加我们开发人员的摩擦。这将减慢我们的发布速度,并限制我们响应业务新需求的速度。”

Daniel Maier,Helvetia首席解决方案架构师

由于Hevetia的容器平台运行在AWS上,销售应用程序的第一个版本是在DocumentDB上构建的——这是Amazon对MongoDB文档数据库的模拟。为了提供应用搜索,将Elasticsearch附加到DocumentDB。然而,Helvetia的工程师发现DocumentDB缺乏许多MongoDB的高级查询和聚合能力,这些能力是支持高级应用功能所必需的。它也难以满足应用的可伸缩性要求。

为了解决数据库问题,团队决定从DocumentDB迁移到MongoDB。然而,与Elasticsearch的集成仍然复杂且成本高昂,需要通过单独的Kafka集群同步数据库和搜索引擎。

虽然Elasticsearch在Helvetia团队中受到好评,但其与数据库的复杂集成正在减慢创新速度。它未能提供最新的客户数据,影响了用户体验和客户满意度。通过将Elasticsearch附加到他们的MongoDB Atlas数据库,Helvetia团队不得不应对


  1. 管理独立的数据同步管道。如图2所示,Kafka Streams主题的消息被两个不同的目标消费——MongoDB Atlas数据库和Elasticsearch索引。每当应用程序的模式发生变化时,Elasticsearch索引都需要重新映射。任何同步失败都意味着Elasticsearch需要重新索引以恢复与存储在数据库中的客户和政策详情的一致性,在此期间,搜索查询将仅返回部分结果集。
  2. 使用多种查询语言和驱动程序查询数据库和搜索索引,减慢了开发人员的速度。
  3. 管理和监控三个独立系统的DevOps开销。诊断和修复应用程序问题可能需要数小时。

Technology sprawl with multiple systems for database, search engine, and data synchronization creating architectural complexity

图2:拥有数据库、搜索引擎和数据同步的多个系统导致的技术蔓延,增加了架构复杂性

解决方案

迁移到MongoDB Atlas

从DocumentDB迁移到MongoDB Atlas非常简单。完成概念验证和测试后,Helvetia工程师只需将DocumentDB备份恢复到Atlas。由于DocumentDB使用MongoDB驱动程序,应用程序无需进行任何更改,除了能够利用他们之前在DocumentDB模拟中无法使用的所有最新的MongoDB数据库功能。由于MongoDB Atlas与AWS平台紧密集成,Helvetia团队无需在现有使用的任何Amazon服务上进行妥协。

迁移完成后,Helvetia解决方案架构师利用这个机会通过从Elasticsearch迁移到Atlas Search来进一步精简和简化他们的技术资产。由于Atlas Search建立在与Elasticsearch相同的Apache Lucene库之上,因此像自动完成、支持分析器的多语言支持以及快速计数和排序等关键功能将保留核心应用程序功能。

为了开始迁移,Helvetia工程师首先审查了Elasticsearch索引定义,并将它们映射到Atlas Search。通过几轮API调用,配置的索引在MongoDB Atlas中部署,数据库和搜索索引之间自动同步数据。在重新编码查询以使用熟悉的MongoDB查询API后,Helvetia团队能够验证搜索结果的表现和可靠性。

注意:如果您想了解更多关于如何迁移到Atlas Search的信息,请下载从Elasticsearch迁移的5步指南
"Atlas Search非常快!我们可以在大约15毫秒内从包含数千万个文档的数据集中提取相关结果。"

Daniel Maier,Helvetia首席解决方案架构师

由于从Elasticsearch迁移,Helvetia的开发人员现在在数据库和搜索操作中使用单个MongoDB Java驱动程序时,工作效率更高。这种集成体验消除了他们编码时需要在不同的查询语言之间进行上下文切换的需求,并消除了不必要的构建依赖。

图3:在MongoDB Atlas中完全集成的数据库、同步和搜索实现了显著的架构简化

结果

将发布周期从几天缩短到几小时

MongoDB Atlas数据库和Atlas Search之间的深度集成使得Helvetia开发人员能够大幅缩短其发布周期。推出新功能通常需要搜索引擎重新索引数据。在Elasticsearch中这样做是一个复杂的过程。工程师必须更新转换逻辑和Kafka同步机制。为了避免搜索中断,他们必须在应用代码中创建索引别名,指向现有索引,同时构建新索引。一旦构建完成,应用程序代码必须重新指向新索引。
"协调团队之间的依赖关系和执行重新索引过程意味着使用Elasticsearch推出新功能需要我们3到5天。由于Atlas Search直接嵌入数据库旁边,所有这一切都为我们自动化了。现在我们的功能发布缩短到3小时,节省了90%以上的时间。" Johannes Mangold,Helvetia的首席解决方案架构师

Johannes Mangold,Helvetia的首席解决方案架构师

Atlas Search的一个关键功能是无停机时间索引修改。在索引重建的同时,应用程序可以继续读取和写入数据库和搜索索引。一旦Atlas Search重建了索引,旧索引将在后台替换,无需工程师采取任何进一步行动。
“Atlas Search 为我们提供了一个更简洁、更简单的架构。我们可以在单次 API 调用中创建新的索引。数据会在数据库和搜索索引之间自动同步,从而提供一致、高质量查询结果。开发者和运营开销降低,从而创造了成本和时间节省,我们可以将这些节省再投资于为客户构建产品。”

Johannes Mangold,Helvetia的首席解决方案架构师

在数字转型之旅的下一步,Helvetia 团队将通过公司的自助服务平台直接向客户展示其销售应用程序。通过迁移到 MongoDB Atlas,Helvetia 现在拥有了可扩展、灵活的基础设施,可以继续让客户满意。

如果您对使用最新的云原生技术感兴趣,Helvetia 团队非常愿意听到您的声音!请查看 Helvetia 招聘网站 上的开放职位。

下一步

如果您想深入了解 Atlas Search,您可以在 Atlas 免费层 上免费启动它。您可以使用我们的示例数据集,在 Atlas Search 文档 中参考材料和教程进行学习,或者在自己的开发沙盒中加载自己的数据以进行实验。

您的故事将是什么呢?

MongoDB 将帮助您找到最佳解决方案。