如何在银行核心系统中安全地搭建微服务架构?

本文涉及的产品
注册配置 MSE Nacos/ZooKeeper,118元/月
云原生网关 MSE Higress,422元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 微服务作为现代互联网应用的主流架构风格,已在很多行业应用中获得广泛的成功,而银行核心系统由于其复杂性和风险敏感性,主流架构依然在从单体式 SOA 到真正的微服务分布式架构的转型期。

在此情况下,我们邀请了金融壹账通核心系统产品及研发负责人吕书峰老师,请他来 ArchSummit 全球架构师峰会(上海站)会议上分享壹账通在银行核心系统领域的微服务架构的设计经验,以期帮你解决如何安全地搭建微服务架构的问题。(以下是采访对话内容整理)

**InfoQ:银行核心系统由于复杂性和敏感性,大多数主体架构依然在单体式 SOA 阶段,壹账通为什么选择了微服务架构呢?
**

吕书峰:进入银行 4.0 时代,基于高性能主服务器的 SOA 架构无法适应多变复杂的商业环境,当今环境要求系统能灵活地应对复杂的业务需求来提升业务敏捷性,同时又能够保证高度的稳定性和健壮性。

在数字化经营方面,受互联网金融的影响,银行普遍有快速推出创新产品的诉求,而经过积年累月的发展,核心系统通常会演变得非常复杂,即使有良好的参数化设计,也不可能覆盖所有的业务/流程需求,事实上,参数化程度越高将导致设计复杂度提升,而这将导致应用维护和运营管理成本和难度加倍。同时随着金融强监管的趋势,牵一发而动全身的核心系统的变更会更加敏感,因为一旦有所故障就会影响很多客户,达到一定程度就要向监管上报。

因此壹账通认为新一代的核心系统要能更好地实现分布式设计,做好领域模型的设计划分。而微服务职责分工清晰定位,能够独立开发、测试和部署,也能为未来扩展留出足够的设计空间,能支持可组装的业务设计需求,同时也能更好地结合云原生技术充分地利用物理资源,实现按需弹性扩容,因此我们选择了微服务架构。

金融壹账通是面向金融机构的商业科技服务供应商(Technology-as-a-Service Provider),为国家高新技术企业。作为中国平安集团的联营公司,金融壹账通在吸收了多次核心系统重构的经验,例如平安银行的多次迁移工程,服务了国内外很多客户,同时借鉴了行业内主流厂商核心系统的优缺点,推出了新一代的国产化分布式核心系统平台。到目前为止,我们基于新核心系统为多家数字银行提供了完善的整体方案,在帮助客户提升业务绩效、降低成本、全面走向数字化运营转型方面获得了一定的成就。

InfoQ:能否请您简单介绍一下金融壹账通核心系统领域的微服务架构?壹账通核心系统的微服务架构是如何搭建的?

吕书峰:首先,金融壹账通的核心系统的设计目标是以平台化的 SaaS 模式给中小银行提供低成本运营服务;这就要求其必须具备很强的平台扩展性和按需分配的可插拔的服务能力;同时核心系统在一家数字银行的运营业务中起到全周期的作用。因此我们按照 Gartner 的产品分层模型将系统架构划分成标准层、差异层和创新层。

这样,核心系统的公共特性,比如基础账户服务、基本核算规则、基本的存款和贷款的结算功能都属于标准层,基于基础服务构建的产品系统如大额存单、贷款额度等等属于差异层,比如,而场景端的金融产品设计则属于创新层。

与之相匹配,我们提供了基于标准层的平台服务、基于差异层的银行产品设计(基于平安多年的金融专家能力)和基于场景端创新层的生态产品的解决方案服务。

从平台化的核心系统的用户视角来看,产品分层模型又对应着 API 领域的 SystemAPI,ProcessAPI 和 ExperienceAPI, 即在标准层提供基础系统的标准 API;在差异层提供中台化的可复用的功能 API 和 API 流程引擎来提供构建丰富的产品特性的能力;在创新层提供专注体验设计的可扩展 API,如为渠道端提供设计组件库服务 API。

以上是纵向维度的设计。从横向维度来看,壹账通核心系统基于业务垂直领域进行了基于领域模型的微服务拆分。从架构逻辑上可大体分为数据管控层和业务管控层。其中,数据管控层依靠 Sidecar 模式管控和传递服务之间的流量;业务管控层负责对服务进行注册和分发,安全认证和流量加密。分布式核心体现了互联性,安全性,可控性和可跟踪性的特点。

我们业务模块的划分的核心是领域驱动的设计思路。金融壹账通的微服务在设计领域模型时会更关注银行具体的业务流程,而不是单一的功能或者数据。通过聚焦具体的业务流程,能更好地理解用户视角的功能边界,以便于微服务设计和落地时更容易设计边界上下文(boundry context)的切割以及边界上下文之间的映射衔接。这样的做法也可以避免让数据模型干扰领域模型的设计。

InfoQ:这个架构如何解决风险敏感和安全性两个问题的呢?

吕书峰:首先,我先讲下风险敏感和安全问题的重要性。核心系统是银行业务的心脏,风险和安全设计必须原生地考虑在整体架构中。业内通常每一家银行都有制定业务连续性政策和信息安全保护的政策要求,并为监管机构重点检视。

对一家数字银行(虚拟银行)而言风险和安全设计尤为重要,因为除了线上的渠道外,没有其他线下网点可以用来做备份来保证客户的权益,同时,由于更大程度的自动化运营,银行的手工运营人员配置越来越少,因此微服务的容错设计非常关键。

另一个方面是合规层面的要求,鉴于银行经营的特殊性,以及日益增强的监管压力,从业务运营的各个场景中抽象出有关运营风险管理的“切面”:checker/maker,反洗钱入口,反欺诈控制,CDD 等等各个业务口子的设计,同时考虑同步异步要求和用户体验,之前提到的 ProcessAPI 的设计要求考虑到合规运营的多种要素。当复杂的银行业务彼此连接或组合在一起,排查风险隐患也会随之越来越难。

得益于微服务架构天然的可分解性,当你让一小部分可以彼此配合工作时,确保正确的实施和行为将会变得更加容易,这需要微服务业务审计层面的设计来保证。

安全性主要从技术设计上考虑数据保护的问题,通常有四个方面的考虑,传输安全、数据存储、加密标准、授权机制等。

譬如在应用访问方面,有 API Gateway 首先处理基于访问令牌的身份验证,验证完客户端之后还必须实现访问授权机制。在一些特殊敏感的 API(比如动账类)还可以通过配置启用透明令牌(例如 JWT)来传递信息来增强安全性。

在数据传输方面,通过配置密钥(密钥本身也会加密托管在 Vault 中),使客户的敏感信息在传输过程中以及落库的时候都会进行加密处理,而在营运管理过程中接触到的客户数据则按照授权要求进行脱敏和还原处理。

核心系统的微服务架构要求具备在这四个方面的高标准的实现并能够按照部署模式的差异要求做出可配置的参数化能力。金融壹账通的核心系统在这四个方面达到了业界最高标准。

由于金融壹账通提供 SaaS 化的核心系统服务,整体的应用架构在依赖云平台的 IaaS 和 PaaS 的服务,也要求金融系统最高级别的风险和安全标准,实现无缝衔接和安全体系的一致性,因此,对主流的云平台我们也做了相关服务和方案的审核,包括在利用了云平台的系统服务的基础上,由专业安全团队对我们完整的产品服务进行安全测试,并邀请第三方做专业黑客测试等,来确保在充分利用强大的云的特性的同时,满足当地银行监管在风险、安全和合规方面的要求。

InfoQ:目前金融壹账通的微服务架构支持了怎样的业务呢?

吕书峰:第一,数字化银行整车,或者说 digital bank in a box,可为新开数字银行提供全面的数字化运营平台。比如,金融壹账通旗下虚拟银行“平安壹账通银行”(简称:PAOB),由金融壹账通完成总体的设计和实施,7 个月内即完成技术上的投产准备。再比如位于菲律宾的某数字银行,由金融壹账通为其设计和实施的全行整体的系统平台,在 MVP 阶段投产的一款贷款产品,在 5 个月内即获得了超过过去两年的贷款余额。

第二,多种业务场景下的细分领域的 SaaS 化产品方案,比如在贷款核心、在线账户管理、数字钱包、开放银行等等情况下对接场景端,为银行在数字化贷款的业务开展、获客、多场景的支付能力,以及整体的开放银行 API 的生态建设方面提供支撑。

第三,SaaS 化的存款运营平台,助力中小银行提升存款经营能力,迅速提升存款余额。这个平台目前服务 50 多家中小银行,在一个完整的业务生态内,为其提供存款运营的服务。

InfoQ:金融行业架构转型微服务架构有什么需要注意的问题呢?有什么经验和大家分享?

吕书峰:微服务不是银弹,只是一种架构风格。从软件工程的基础原则上看微服务本身没有什么不同,但在软件领域专业细分层面来看,微服务相关的诸多生态工具和平台提供了一个系统生态。如果你在一个优良的系统生态中,那你可能更能充分利用到微服务的优势,否则可能适得其反,在银行核心系统这一复杂领域来说尤其如此。

我认为下面几点对一个成功的微服务架构实践而言是非常重要的:

  • 进行微服务转型需选择具备全栈能力的云原生平台
  • 业务价值导向是从设计到运营整个周期的重中之重,同时需要把核心系统从业务中心向数据中心下沉
  • 需要有很强的 DevSecOps 的能力,应对管理任务。
  • 业务领域专家必不可少,也就是有能力做终端场景设计的产品专家,能够为客户业务直接服务的专家

我认为微服务架构做得好不好,就看三个方面,一是开放 API 驱动内外部系统的对接,二是是否能更有效地提升自动化运营的程度,三是用户是否能自助式地应用你的服务完成场景需求。综合这三个方面,就决定了你的产品能为客户创造多少价值,也就能卖多少钱。

嘉宾介绍

吕书峰,金融壹账通核心系统产品及研发负责人,拥有超过 20 年的银行核心领域技术研发和产品管理经验,曾担任包括在香港的虚拟银行系统建设在内的多家数字银行项目的总架构师。

目录
相关文章
|
16天前
|
弹性计算 API 持续交付
后端服务架构的微服务化转型
本文旨在探讨后端服务从单体架构向微服务架构转型的过程,分析微服务架构的优势和面临的挑战。文章首先介绍单体架构的局限性,然后详细阐述微服务架构的核心概念及其在现代软件开发中的应用。通过对比两种架构,指出微服务化转型的必要性和实施策略。最后,讨论了微服务架构实施过程中可能遇到的问题及解决方案。
|
25天前
|
Cloud Native Devops 云计算
云计算的未来:云原生架构与微服务的革命####
【10月更文挑战第21天】 随着企业数字化转型的加速,云原生技术正迅速成为IT行业的新宠。本文深入探讨了云原生架构的核心理念、关键技术如容器化和微服务的优势,以及如何通过这些技术实现高效、灵活且可扩展的现代应用开发。我们将揭示云原生如何重塑软件开发流程,提升业务敏捷性,并探索其对企业IT架构的深远影响。 ####
40 3
|
15天前
|
Java 开发者 微服务
从单体到微服务:如何借助 Spring Cloud 实现架构转型
**Spring Cloud** 是一套基于 Spring 框架的**微服务架构解决方案**,它提供了一系列的工具和组件,帮助开发者快速构建分布式系统,尤其是微服务架构。
128 68
从单体到微服务:如何借助 Spring Cloud 实现架构转型
|
14天前
|
运维 监控 持续交付
微服务架构解析:跨越传统架构的技术革命
微服务架构(Microservices Architecture)是一种软件架构风格,它将一个大型的单体应用拆分为多个小而独立的服务,每个服务都可以独立开发、部署和扩展。
136 36
微服务架构解析:跨越传统架构的技术革命
|
17天前
|
设计模式 负载均衡 监控
探索微服务架构下的API网关设计
在微服务的大潮中,API网关如同一座桥梁,连接着服务的提供者与消费者。本文将深入探讨API网关的核心功能、设计原则及实现策略,旨在为读者揭示如何构建一个高效、可靠的API网关。通过分析API网关在微服务架构中的作用和挑战,我们将了解到,一个优秀的API网关不仅要处理服务路由、负载均衡、认证授权等基础问题,还需考虑如何提升系统的可扩展性、安全性和可维护性。文章最后将提供实用的代码示例,帮助读者更好地理解和应用API网关的设计概念。
45 8
|
22天前
|
消息中间件 运维 Kubernetes
后端架构演进:从单体到微服务####
本文将探讨后端架构的演变过程,重点分析从传统的单体架构向现代微服务架构的转变。通过实际案例和理论解析,揭示这一转变背后的技术驱动力、挑战及最佳实践。文章还将讨论在采用微服务架构时需考虑的关键因素,包括服务划分、通信机制、数据管理以及部署策略,旨在为读者提供一个全面的架构转型视角。 ####
33 1
|
1天前
|
监控 Java 数据中心
微服务架构系统稳定性的神器-Hystrix
Hystrix是由Netflix开源的库,主要用于微服务架构中的熔断器模式,防止服务调用失败引发级联故障。它通过监控服务调用的成功和失败率,在失败率达到阈值时触发熔断,阻止后续调用,保护系统稳定。Hystrix具备熔断器、资源隔离、降级机制和实时监控等功能,提升系统的容错性和稳定性。然而,Hystrix也存在性能开销、配置复杂等局限,并已于2018年进入维护模式。
10 0
|
24天前
|
弹性计算 运维 开发者
后端架构优化:微服务与容器化的协同进化
在现代软件开发中,后端架构的优化是提高系统性能和可维护性的关键。本文探讨了微服务架构与容器化技术如何相辅相成,共同推动后端系统的高效运行。通过分析两者的优势和挑战,我们提出了一系列最佳实践策略,旨在帮助开发者构建更加灵活、可扩展的后端服务。
|
24天前
|
消息中间件 运维 Cloud Native
云原生架构下的微服务优化策略####
本文深入探讨了云原生环境下微服务架构的优化路径,针对服务拆分、通信效率、资源管理及自动化运维等核心环节提出了具体的优化策略。通过案例分析与最佳实践分享,旨在为开发者提供一套系统性的解决方案,以应对日益复杂的业务需求和快速变化的技术挑战,助力企业在云端实现更高效、更稳定的服务部署与运营。 ####
|
25天前
|
Dubbo Cloud Native 应用服务中间件
阿里云的 Dubbo 和 Nacos 深度整合,提供了高效的服务注册与发现、配置管理等关键功能,简化了微服务治理,提升了系统的灵活性和可靠性。
在云原生时代,微服务架构成为主流。阿里云的 Dubbo 和 Nacos 深度整合,提供了高效的服务注册与发现、配置管理等关键功能,简化了微服务治理,提升了系统的灵活性和可靠性。示例代码展示了如何在项目中实现两者的整合,通过 Nacos 动态调整服务状态和配置,适应多变的业务需求。
37 2
下一篇
DataWorks