HSBC从65个关系数据库迁移到一个全球MongoDB数据库

2020-06-13 15:06:16

汇丰银行是世界上最知名的银行和金融服务机构之一,业务遍及60多个国家,为4000多万客户提供服务。然而,这种规模带来了相当大的运营复杂性-尤其是在银行如何交付其应用程序和数据模型方面。

汇丰商业银行数据设计师Narasimha Reddy本周在MongoDB.Live上发表讲话,解释了该组织如何寻求通过将65个关系数据库迁移到一个全球MongoDB实例来简化其应用交付方法。

在实践中,这意味着每个国家将能够维护其各自的应用程序要求,但不必操作唯一的国家数据库。一个单一的数据模型正在创建中,这不仅为汇丰银行节省了成本和资源,而且使其能够自由地推进自己的数据模型设计。

Reddy解释了下图如何为全球应用程序创建复杂的全局数据模型,该模型在软件开发周期的每个步骤都创建了高成本模型,降低了更改的灵活性,并导致业务照常运营的成本上升。他说:

全球实体在其世界上大多数运营国家/地区都运行相同的应用程序。但是,不可能只有一个版本的应用程序在所有国家运行。每个国家都将有自己的定制,以履行其当地或地区的职能和业务。当然还有监管要求。

这使得在关系数据库世界中不可能维护一个版本的应用程序和一个数据模型。

因此,我们最终拥有不同的代码库。我们都知道数据模型驱动了大部分系统设计。因此,我们在使用关系数据库时最终得到的是-每个国家/地区一个数据模型,这使得维护应用程序的一个版本变得不可能。

雷迪说,汇丰银行一直在寻求实现一个全球数据模型,从而建立一个全球数据库,这样它就可以得到一个更真实的“全球应用程序”版本。

这样做的好处包括降低了成本、灵活性,以及能够更轻松地运行全球分析和报告(每个国家都运行在单一数据模型上)。

从历史上看,如上图所示,HSBC确实拥有应用程序核心程序环境,该环境拥有应用程序的大部分核心功能。但由于数据模型和数据库的不同,它不可能有一个适用于所有国家的单一方案环境。

因此,它必须将特定于国家的程序环境放在应用程序的核心环境之上,以满足每个国家的特定应用程序需求。因此,当任何国家/地区的用户访问该应用程序时,它最终都会有自己的执行路径。然后,特定于国家的程序环境和核心程序环境将一起访问该国家的特定数据库并处理应用程序。

这是因为每个国家都有自己的功能、字段、业务逻辑接口、数据规则、数据生命周期和数据访问控制。因此,如果对数据模型进行调整,则程序环境变得与改变后的数据模型不兼容,并且必须建立新的程序环境。

汇丰银行的大部分应用程序已经在iSeries、大型机系统和DB2上运行了几十年。雷迪说:

由于所有这些概念,将应用程序设计为使用多个国家/地区的单个实例和单个数据库运行变得非常复杂。

这种模式带来了额外的后果。我们将不得不开发和应用另一个数据模型和数据库来运行全球数据的数据分析和报告。当然,这会消耗额外的资源。它肯定是以多种不同的方式计入成本。

然而,根据下图,汇丰银行现在有了一个新的架构。现在,它在全球各地都有运营国家使用相同的应用程序,但对资源的使用已经减少。它现在是一个适用于所有国家的一个服务环境、一个数据库和一条执行路径。这是因为MongoDB的文档模型,并且能够使用子文档将每个国家的所有不同表要求映射到单个集合中。使用国家/地区特定的标识符将所有内容简化为一个集合。

每个国家/地区的本地要求将内置到应用程序中,但不再需要维护单独的数据模型或单独的数据库。我们可以使用MongoDB JSON模式模型轻松地设计全局数据模型和数据库。这会将来自所有运营国家的数据放入一个数据库,并且应用程序只能在一个数据库上运行。这大大降低了资源和维护成本。

另一个好处是使用相同的数据库进行全球数据分析和报告。我们不需要转换为另一个数据模型或另一个数据库来从该特定数据运行分析和报告。所有这些都带来了巨大的资源和成本节约。

我在使用MongoDB时了解到,当数据库没有模式并提供强大的查询和索引时,我驱动我的数据模型设计,而不是数据库。