构建实时银行应用程序:英国金融机构 Nationwide 为何选择 MongoDB Atlas

在这里插入图片描述

Nationwide Building Society 超过135年的互助合作

Nationwide Building Society(以下简称“Nationwide”) 是一家英国金融服务提供商,拥有超过 1500 万名会员,是全球最大的建房互助会。

Nationwide 的故事可以追溯到 1884 年,当时协会的创始人提议合作运动应建立专门的建房互助会。那时,人们的生活相对简单。各种银行产品通常只提供给富人,工薪阶层很难获得信贷资源和长期住房保障。这些普通的劳动大众需要有个能存钱、能借钱的地方。他们希望通过建立互助会来满足自身需求,提供各种金融新机遇。Nationwide Building Society 便由此应运而生。而在 135 年后的今天,这种互助基础依然牢不可摧。

自 19 世纪末以来,Nationwide在英国依旧家喻户晓。它为会员提供活期账户、抵押贷款、储蓄存款以及其他个人理财方面的帮助。

随着竞争品牌纷纷推出各种新型银行业务模式,客户对网络数字银行服务的需求和呼声日益高涨。如今的Nationwide需要不断提升技术堆栈,紧跟其拓展服务的步伐。

英国家喻户晓的品牌

英国家喻户晓的品牌


一、现状

努力推出各种线上实时功能

尽管 Nationwide 的移动银行平台自 2012 年以来经历了数千次更新,但该平台仍须不断优化提升,增加各种新功能。 如今,不少客户都期望使用数字优先的产品,他们希望实时查看自己的所有账户,并能制定有助于理财的各种规则。

Nationwide 的应用程序架构主管 Rob Jackson “我们的客户希望所有业务现在都能在线办理,而且要求支持实时操作。”

但对 Nationwide 来说,要实现这一目标,需要攻克复杂的技术难关——如果这些在线任务中有一项任务耗时过长,或者如果数据没有正确整合,客户体验就会受到影响。Nationwide需要采取全新的技术方法,更新底层技术基础设施,提升软件运营水平,从而实现实时追踪、修复和更新相关任务或数据。

推动更直观的理财方式

推动更直观的理财方式

二、挑战

从大型机迁移至现代技术

Nationwide 对大型机技术的长期依赖显然是 Jackson 及其团队开展创新的切入点。

自 2012 年起,Nationwide 就一直在大型机这个传统技术孤岛中存储和处理大量客户接触点(网络、移动设备和分支机构)数据。大型机很难使用,而且减缓了开发实践的速度。随着实时数据不断涌入,这些信息的速度和多样性开始对大型机构成了挑战。

为了提供全新的数字服务,Nationwide 需要掌握一种尽快从大型机中获取数据的方法,以便为客户提供最新信息。Jackson 表示,一种方法就是扩展大型机,但这种方法“速度太慢、成本太高”。相反,团队希望为大型机“减负”,将大型机上存储的数据复制到新的实时事件流平台上。该平台有助于整合所有数据,方便开发者使用并发布这些新功能。 该实时事件流平台被称为“加速层 (Speed Layer)”,它将成为Nationwide 海量数据请求和事件溯源的来源,而在事件溯源中,对应用的所有变更都会存储为事件序列。

"这意味着我们终于可以打破数据孤岛,实时合并和丰富数据。 只有这样我们才能更好地提升敏捷性、支持创新活动。"

为了实现所有这一切,团队需要一个全新的现代化数据库来查询、管理和扩展所有这些信息。该数据库需要具备灵活性、便于开发者使用,而且能够大规模地安全存储关键任务数据。

在这里插入图片描述

使用 Nationwide 银行应用尽享业务随时随地随心办

三、解决方案

摆脱数据库的束缚,构建各种新功能

Nationwide 评估了文档数据库的市场及其所需的各种企业级能力:多功能性、功能性、韧性和安全性。经过严格的试用和测试过程,团队选择了全球云数据库服务 MongoDB Atlas,并开始在 Amazon Web Services上运行该服务。

“我们听说过 MongoDB,也知道在有类似应用场景的组织中不少开发者都在使用它的文档数据库。MongoDB 是最受欢迎的一项数据库技术,而优秀的人都希望用上最好的技术。我们当是就想在 Nationwide 中打造这样的技术环境。”

如下文手绘的彩色草图所示,加速层通过变更数据捕获从大型机中获取实时数据,并将数据推送到事件流平台 Kafka 上。然后,速度层使用流处理技术为 MongoDB 生成各种 Kafka 主题。数据之后会被路由至 MongoDB 中进行持久化,形成支持查询的环境。
加速层堆栈

加速层堆栈

通过将大型机数据实时复制到 MongoDB Atlas 中,开发者可以借助微服务架构将有关信息推送给对应的服务,这意味着每个工程团队都能掌握最新数据,为客户构建各种新功能和实时功能。

有了 MongoDB Atlas,团队无需再担心基础设施预配、实例扩展或备份方面的管理工作,因为这一切均由 MongoDB Atlas 完全托管。而团队可以将精力集中在新功能的构建上。

“我们发现 MongoDB Atlas 采用了一种很好的数据组织方法,对于我们的开发者来说非常简单易用。”

团队现在能够使用 MongoDB 的灵活数据模型更快地构建应用程序,处理极为多样化的数据类型,并且可以更加高效地大规模管理应用程序。

传统的关系系统采用复杂的表和行格式,而 MongoDB 的实时数据则以一系列 JSON 文档来表示,这让开发者能以自然语言更直观地表示数据,并由此开发出性能更好的应用程序。 尽管 Nationwide 如今在加速层中使用了 MongoDB Atlas,但 Jackson 解释说这仅仅是双方合作的开始。 由于数字化转型是 Nationwide 的长期项目,因此选择 MongoDB 既考虑到了即时影响,也考虑到了未来价值。

“该路线图看起来非常有趣。最近新增的 Atlas App Services 和移动数据库等功能可能会对我们将来扩展客户功能大有用处。”

四、效果

为企业创造新的竞争优势

加速层仍处于早期生产阶段,但已经表现出强劲的回报,特别是为 Nationwide 带来了韧性和敏捷性,而且能够摄取丰富的数据集。然而,加速层的效果最终将体现在它能否让 Nationwide 为客户大规模构建基于数据的各种实时功能上。新架构以事件为驱动,为客户更轻松地实现这些新功能提供了机会。

“长期以来,金融服务提供商在数据捕获和安全存储方面一直表现出色。但他们在向客户宣传有关数据的 10 个有趣事实方面做得不够,而这可以给他们带来实实在在的好处。为此我们正在改变这种状况。”

如今不难想象 Nationwide 的做法将催生大量新的应用程序和实时功能,并为其创造竞争优势。正如 Nationwide 在135 年前的初衷一样,无论数字化程度如何,Nationwide仍将继续以会员为核心,满足会员的日常需求。

在这里插入图片描述

MongoDB Atlas

MongoDB Atlas 是 MongoDB 公司提供的 MongoDB 云服务,由 MongoDB 数据库的开发团队构建和运维,可以在亚马逊云科技、Microsoft Azure、Google Cloud Platform 云平台上轻松部署、运营和扩展。MongoDB Atlas 内建了 MongoDB 安全和运维最佳实践,可自动完成基础设施的部署、数据库的构建、高可用部署、数据的全球分发、备份等即费时又需要大量经验运维工作。让您通过简单的界面和 API 就可以完成这些工作,由此您可以将更多宝贵的时间花在构建您的应用上。

点击了解更多MongoDB Atlas相关信息

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/378561.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

论文翻译:Large Language Models for Education: A Survey

目录 大型语言模型在教育领域的应用:一项综述摘要1 引言2. 教育中的LLM特征2.1. LLMs的特征2.2 教育的特征2.2.1 教育发展过程 低进入门槛。2.2.2. 对教师的影响2.2.3 教育挑战 2.3 LLMEdu的特征2.3.1 "LLMs 教育"的具体体现2.3.2 "LLMs 教育"…

BUUCTF逆向wp [HDCTF2019]Maze

第一步 查壳,本题是32位,有壳,进行脱壳。 第二步 这里的 jnz 指令会实现一个跳转,并且下面的0EC85D78Bh被标红了,应该是一个不存在的地址,这些东西就会导致IDA无法正常反汇编出原始代码,也称…

【Linux】将IDEA项目部署到云服务器上,让其成为后台进程(保姆级教学,满满的干货~~)

目录 部署项目到云服务器什么是部署一、 创建MySQL数据库二、 修改idea配置项三、 数据打包四、 部署云服务器五、开放端口号六 、 验证程序 部署项目到云服务器 什么是部署 ⼯作中涉及到的"环境" 开发环境:开发⼈员写代码⽤的机器.测试环境:测试⼈员测试程序使⽤…

离线语音识别芯片在智能生活中的应用

离线语音识别芯片,这一技术正逐渐渗透到我们日常生活的每一个角落,为众多产品带来前所未有的智能体验。它能够应用到多种产品中,‌包括但不限于:‌ 1、智能音箱:‌语音识别芯片作为智能音箱的核心,‌使用户…

自动驾驶车道线检测系列—3D-LaneNet: End-to-End 3D Multiple Lane Detection

文章目录 1. 摘要概述2. 背景介绍3. 方法3.1 俯视图投影3.2 网络结构3.2.1 投影变换层3.2.2 投影变换层3.2.3 道路投影预测分支 3.3 车道预测头3.4 训练和真实值关联 4. 实验4.1 合成 3D 车道数据集4.2 真实世界 3D 车道数据集4.3 评估结果4.4 评估图像仅车道检测 5. 总结和讨论…

Centos7 安装私有 Gitlab

在 CentOS 7上,下面的命令也会在系统防火墙中打开 HTTP、HTTPS 和 SSH 访问。这是一个可选步骤,如果您打算仅从本地网络访问极狐GitLab,则可以跳过它。 sudo yum install -y curl policycoreutils-python openssh-server perl sudo systemct…

算法 —— 快速幂

目录 P1045 [NOIP2003 普及组] 麦森数 P1226 【模板】快速幂 原理I 原理II P1226 代码解析 P1045 代码解析 P1045 [NOIP2003 普及组] 麦森数 本题来自洛谷:P1045 [NOIP2003 普及组] 麦森数,根据题意,我们可以看到本题需要计算最少2的1…

Docker的数据管理和网络通信

目录 一、Docker 的数据管理 1.数据卷 2.数据卷容器 二、端口映射 三、容器互联(使用centos镜像) 四、*Docker 镜像的创建 1.基于现有镜像创建 2.基于本地模板创建 3.基于Dockerfile 创…

SwiftUI中App启动入口分析,以及视图和App生命周期介绍

App入口分析 新创建的swiftui项目中我们应该先要了解一下app的入口函数在哪里,并了解大概的含义。 @main:标记应用程序的入口。 App 协议:SwiftUI 应用程序的入口点。 Scene:表示应用程序的一个视图层级,通常是 WindowGroup,表示主窗口的内容。 Scene讲解 Scene 表示…

线性表的链式存储结构————双链表(java)

线性表的链式存储结构————双链表(java) 文章目录 线性表的链式存储结构————双链表(java)双链表双链表的创建插入数据元素头插法尾插法 求链表的长度输出双链表删除双链表中的指定元素总代码运行效果用Java内部类实现双链表…

[HCTF 2018]WarmUp1

进入靶场,检查代码看到有source.php,访问 /source.php 读代码,在参数中传入 file,通过checkFile后,会加载file界面。 再看checkFile, 第一个判断,是非空并且是个字符串,否则返回false 第二个判…

小程序里面使用vant ui中的vant-field组件,如何使得输入框自动获取焦点

//.wxml <van-fieldmodel:value"{{ userName }}"placeholder"请输入学号"focus"{{focusUserName}}"/>// .js this.setData({focusUserName: true});vant-field

华为OD算法题汇总

60、计算网络信号 题目 网络信号经过传递会逐层衰减&#xff0c;且遇到阻隔物无法直接穿透&#xff0c;在此情况下需要计算某个位置的网络信号值。注意:网络信号可以绕过阻隔物 array[m][n]&#xff0c;二维数组代表网格地图 array[i][j]0&#xff0c;代表i行j列是空旷位置 a…

快捷:通过胶水语言实现工作中测试流程并行、加速

通过胶水语言实现工作中测试流程并行、加速 通过胶水语言实现工作中测试流程并行、加速工作场景&#xff08;背景&#xff09;问题抽象&#xff08;挑战&#xff09;如何做&#xff08;行动&#xff09;获得了什么&#xff08;结果&#xff09;后记相关资源 通过胶水语言实现工…

唐刘:当 SaaS 爱上 TiDB(一)- 行业挑战与 TiDB 的应对之道

导读 在 TiDB 8.1 发布后&#xff0c;TiDB 展现了强大的支持 SaaS 业务的能力&#xff0c;成为 SaaS 业务数据库的优先选择之一。 本文为“当 SaaS 爱上 TiDB”系列文章的第一篇&#xff0c;系列文章将从技术原理和真实用户体验两个角度深入探讨 TiDB 在 SaaS 业务中的表现&a…

qt 创建一个左侧边线拖拽的矩形

1.概要 2.代码 在Qt中&#xff0c;如果你想要创建一个矩形&#xff0c;并且仅允许通过拖拽其左侧边线来改变宽度&#xff0c;你可以通过重写QGraphicsRectItem类来实现。以下是一个简单的例子&#xff0c;展示了如何创建一个自定义的ResizableRectItem类&#xff0c;该类允许…

责任链模式+CompletableFuture异步处理

1、查询商品基础信息 2、查询商品价格 3、查询商品活动 4、查询商品库存 假设这几个服务逻辑比较独立&#xff0c;其实是可以并行调用&#xff0c;我们可以结合责任链模式和CompletableFuture进行优化: 下面是代码示例: Service public class ChainFactory {// 原型模式获取对…

GloVe: Global Vectors for Word Representation论文笔记解读

基本信息 作者Jeffrey Penningtondoi10.3115/v1/D14-1162发表时间2014期刊EMNLP网址https://aclanthology.org/D14-1162.pdf 研究背景 1. What’s known 既往研究已证实 全局矩阵分解方法&#xff1a;LSA&#xff0c;考虑整个语料库词频的统计信息得到共现矩阵&#xff0c;通…

Spring Security学习笔记(一)Spring Security架构原理

前言&#xff1a;本系列博客基于Spring Boot 2.6.x依赖的Spring Security5.6.x版本 Spring Security中文文档&#xff1a;https://springdoc.cn/spring-security/index.html 一、什么是Spring Security Spring Security是一个安全控制相关的java框架&#xff0c;它提供了一套全…

昇思25天学习打卡营第1天 | 基本介绍

打卡&#xff1a; 小白一个&#xff0c;第一次接触昇思MindSpore&#xff0c;之前使用chatgpt较多一点。这次相当于从使用着角色转换成制作者的角色&#xff0c;跨度比较大。如果之前没有接触过相关内容&#xff0c;学习起来还是比较费劲。 基本介绍&#xff1a; 昇思MindSpo…