数字化时代推动之下,银行核心系统建设的主流技术架构正在从集中式架构向金融级云原生架构演进。后者是分布式架构,采用“横向水平扩展”方式增加服务器数量以提升系统运行能力,理论上可以无限扩张运行能力。
随着越来越多的金融机构开始采纳云原生技术,亟需一套结合行业特性的统一标准为金融机构提供一个能力参照模型。结合金融行业实践来看,金融机构采纳云原生技术可采用的成熟度评估模型,覆盖包含微服务架构程度、应用云化程度、可观测性、高可用管理、配置自动化、DEVOPS、云平台能力、云原生安全、容器及k8s能力等。
金融服务对“灵活性、易扩展、高并发、标准化组件、低成本、可靠在线服务”的追求是不变的,因此核心系统战略应聚焦在这个“不变”上。云原生分布式核心应具备的能力详细拆解为十二项支撑能力。
除了分布式核心系统,在《架构即未来》一书提出了分布式应用设计的十四条基本原则,而这正是最为重要的云原生应用架构的核心要素。
N+1设计:要确保任何你所开发的系统在发生故障时,至少有一个冗余的实例。
回滚设计:确保系统可以回滚到以前发布过的任何版本。
开关禁用设计:能够关闭任何发布的功能。
监控设计:在设计阶段就必须要考虑监控,而不是在实施完成之后补充。
设计多活数据中心:设计时就考虑多活部署,不要被一个数据中心的解决方案把自己限制住。
异步设计:异步适合并发,只有在绝对必要的时候才进行同步调用。
无状态系统:无状态的系统更利于扩展,更利于做负载均衡。只有当业务确实需要的时候,才使用状态。
水平扩展非垂直升级:永远不要依赖更大、更快的系统。微服务核心思想是水平扩展,不要把所有的功能都集中在一个系统里面。必要的时候把需求分为多个系统,而不是升级原有的系统。
设计的前瞻性:提前考虑影响下一阶段系统扩展性问题的方案,不断提炼公共共享服务,以减少重构的次数。
非核心则购买:如果不是你最擅长的,也提供不了差异化的竞争优势则直接购买。数据库、云服务这种的就购买好了。
小构建,小发布,快试错:全部研发要小构建,不断迭代,让系统不断地成长。小版本的失败率较低,因为失败率与解决方案中的变更数量直接相关。
隔离故障:实现隔离故障设计,通过断路保护避免故障传播和交叉影响。避免多系统之间的互相影响,这个很重要。
自动化:“自动化是智慧之源”,在云原生架构中,快速部署和自动化管理是核心。设计开始就需要尽可能通过架构和设计实现自动化的过程。如果机器可以做,就不要依赖于人。
使用成熟的技术:如果某技术故障率比较高,就绝不能使用。
金融级云原生平台架构
金融云原生平台架构整体可分为:设计域、研发域、运行域、运维域、灾备域 5大领域。
设计态:采用领域驱动设计等与微服务架构体系天然亲和的设计方法,并在设计过程中,关注数据一致性、服务颗粒度等问题,贯彻分布式架构设计的设计原则和规范。
研发态:面向研发人员,提供一站式的研发生产力工具,屏蔽分布式技术的复杂性,提升研发人员体验和生产率。达成广泛共识的工程模板,降低组织认知成本。
运行态:面向应用,分布式应用运行的基础设施,覆盖应用全生命周期,包括创建、部署、监控、变配,支持多种形态的应用交互方式和数据存储形态。底层支持多种形态的计算方式以及其上的调度方式。
运维态:面向运维人员,解决分布式架构的先天复杂性,广泛使用工程手段,保证系统整体可用性水平。
灾备态:面向灾难,提供对节点级、机房级、城市级灾难的容忍能力。
金融级云原生数据架构
云原生框架天生具备快速交付、弹性伸缩、标准化、自动化、隔离性等诸多优势,与新一代数据技术不断融合,形成了具备如下几个特点的云原生数据架构体系。
1、可扩展的多种计算模式融合
云原生数据架构可统一支持批、流、交互式、多模、图等不同计算模式的融合,例如:湖仓一体、流批一体、流式机器学习,使多种计算系统进行深度整合,在功能、生态上形成互补,用户能够在一套系统内完成更多种类型计算,提升平台运行效率,降低使用成本。
2、多层智能化的分布式存储层
存储计算分离会在两三年内成为标准,数据平台向托管化和云原生的方向发展。存储内部精细化的分层成为平衡性能和成本的关键手段,基于分布式存储系统上的多层存储(热存储/标准存储/冷存储等)与存储利用相结合实现存储降本。AI在分层算法上将发挥更大的作用,编码和压缩在通用处理器上的优化空间有限的情况下,未来更大的突破和技术换代将取决于软硬一体化的技术发展及应用情况。
3、统一调度和弹性伸缩的资源池管理
随着数据湖存算分离不断深入, 围绕基于云原生架构下来建立统一容器化资源调度系统成为数据湖存算分离发展的必要组件,为大数据与AI一体化架构提供统一资源池化与在离线混部的基础支撑;通过统一算力资源池实现资源统筹调度,优化资源细粒度的管理与调度,可以将离线计算与其它在线计算任务进行资源混部达到峰谷互补的效果,有助于提升服务器资源利用率;同时,也可以根据业务优先级分配计算任务资源,确保资源调度期间不发生争抢,实现在业务高峰期,以弹性扩缩容模式调用算力资源,充分发挥资源算力,提升响应效率。
4、大数据SRE智能运维能力
大数据技术多样性和数据平台架构的复杂性,为大数据平台的运维带来挑战。新一代大数据平台可支持在线滚动升级,缩短升级时长;提供统一运行各类异构工作负载流程,统一管理作业生命周期,统一调度任务工作流,为任务的规模和性能提供保证;通过作业日志,性能指标,资源利用率等数据,结合历史记录和实时负载情况,使用机器学习方式进行分析、检测和调优,在查询计划、数据模型、资源管理自适应,以及系统异常检测和自愈等方面不断优化,形成大规模数据平台的智能化运维能力。
金融级云原生基础架构
金融级云原生基础设施需要满足5大总体要求和13项管理要求。
(一) 5大总体要求为:
一是采用成熟云平台产品,打造IaaS、PaaS一体化云计算平台,实现租户端和运维端的完整服务目录,与软件开发体系和生产运维体系无缝对接;
二是实现全公司级基础资源弹性供给,按照分布式技术框架,支撑全公司业务系统实现高可用容灾架构,满足安全生产要求;
三是全面满足信息技术应用创新要求,从云平台底座到软件服务具有全链路信息技术应用创新运行的能力,同时保障分布式应用高性能稳定运行;
四是具备提供大规模应用上云的基础,提供完善的应用框架,对应用系统提供稳定、持续、高性能的支撑;
五是云平台产品有成熟生态圈,与业界公有云技术发展保持基本同步,适配最新开源技术演进。
(二) 13项管理能力要求为:
统一资源管理:采用统一的物理资源类型和架构实现基础硬件资源的统一管理,如服务器、交换机、操作系统等;云管平台通过统一管理方式(控制台、API等)实现两地三中心的计算、存储、网络等云资源进行管理,降低开发和运维使用复杂度。
统一数据管理:对同城双活、异地多活架构通过数据存储、迁移、同步等方式,保障分布式云节点数据一致性,提供一体化容灾及联动切换能力,最大限度满足业务连续性要求。如提供统一的镜像方案、对象存储的容灾、数据库跨地域备份和同步等。
统一服务管理:支持两地三中心节点通过统一的API、SDK、控制台等管理云服务,如统一控制面进行服务的部署、更新等,大幅降低云服务管理复杂度,提升用云效率。
统一运维管理:通过云管实现对两地三中心不同节点采用相同的运维体系进行管理,提供一致的运营、监控、可靠性SLA等服务,减少运维管理人员工作量,提升运维效率,大幅降低系统故障,缩短故障时间。
统一安全管理:一方面通过物理基础设施、网络安全、数据面/控制面隔离等实现平台侧安全,另一方面通过主机安全、访问控制、防火墙、态势感知等实现安全服务,保障一体化安全。
统一资源调度:通过云管实现对两地三中心算力资源的统一调度,提供多种调度策略支持。基于位置调度满足对时延和带宽敏感的业务(如手机银行音视频应用);基于算力需求调度满足对AI、大数据等大计算量的业务(如潮汐调度、混部等场景);基于工作负载调度满足多维异构的场景(如理财抢购、积分兑换、双11等应用场景)。
统一监控管理:完成云上和云下各类型监控指标的接入和统一展现;完成云上和云下分布式链路追踪能力,实现从业务监控、到应用服务监控、到资源监控的逐层下钻和多维分析,完善故障定位分析能力;通过统一告警中心的对接和优化完成动态阈值,提升业务整体事件感知能力、快速定位能力和智能化分析决策能力。
支撑多元算力:云资源池兼容CPU、GPU等多种算力,为人工智能、深度学习、科学计算等多领域场景的金融科技类新应用产品提供高效的云算力服务。
支撑全栈信息技术应用创新:通过一套体系兼容多产品服务能力,支撑一云多芯、全栈XC云平台服务能力,推动信息技术应用创新战略落地。
支撑精细化管理:通过平台的计量计费能力以及与行内各系统打通,实现计算、存储、网络、安全等多类资源的计量计费能力。逐步实现IT成本精细化管理,实现业务IT投入与业务产出可度量、可评价,实现成本与效率的兼顾,实现IT资源的高效利用。
支撑裸机管理:满足裸金属交付从服务器上架、自动化装机、系统设置和软件编排的流程自动化和批量化,提升交付效率,降低人工工作量;满足裸金属统一纳管要求,实现裸机的统一监控和告警。
支撑服务质量:通过自服务能力提升,基础设施管理平台的建设将能够提供高效稳定运行精细化管理提供更好的服务,根据平台对于数据的收集及分析,将有效的改进管理方向和内容,能有效增强服务品质。
支撑架构发展:采用行业领先的专有云架构,搭建与公有云同源、满足金融行业容灾要求的云平台,通过一套体系支撑所有产品,支撑全行线上线下一体化运维体系建设,通过有机统一的体系结构设计,满足未来全栈云平台能力建设。
金融级云原生实现路径
金融级云原生能力评估
“投资未来的最好方法是改善现在”。
金融级云原生极大的释放了数字化时代的红利,云原生充分继承云的设计思想,未来应用将更多基于云上进行应用开发,即云原生应用更加适合云的架构,而云计算也为云原生应用提供较好的基础支撑,如资源隔离机制、分布式部署、高可用架构等方面,通过新的架构、技术保障应用系统变得更加健壮,可以说云原生最大程度发挥了云的优势。
某银行基于IaaS/PaaS 一体化云平台,运用分布式微服务框架、云中间件、容器、DevOps 等云原生技术,搭建了可提供横向扩展、秒级伸缩、智能运维、适应快速开发持续交付的 PaaS 级云平台,推动该银行从传统架构向互联网架构演进。该平台基于容器进行应用部署、运行、调度资源,利用容器的轻量级特性,在服务数量激增的情况下节省更多应用部署和运行资源,可以轻松应对波动的业务流量。同时,应用的镜像交付形式实现了“一次构建,多次部署”,避免传统部署过程带来的操作复杂度与操作风险。通过该平台,应用交付周期缩短了 80%,业务需求响应速度提高 50%。
然而,在金融机构开始大量采购采纳云原生技术时,却存在云原生技术产品体系过于庞杂、开源生态缺乏治理、产品之间兼容适配困难等诸多问题。局部技术特性往往给金融机构选择造成很大干扰,并产生较高的试错成本。
“抛开整体来看局部细节都是耍流氓”。
越是平台型技术,越需要从整体角度来考量。所以,迫切需要一套结合行业特性的统一标准,为金融机构提供一个能力参照模型,以便金融机构定位自身云原生技术转型的发展阶段,对比分析发现云原生能力建设的不足,制定未来技术和能力建设方向。我们结合一些金融行业实践,为金融机构采纳云原生技术提供一套完整的技术能力框架,和九大维度的成熟度评估模型,可以参考如下指标进行展开:
微服务架构程度、应用云化程度、可观测性、高可用管理、配置自动化、DevOps、云平台能力、云原生安全、容器及K8s能力。
金融级云原生演进路径
好的架构是进化来的,我们既需要一套完整的架构规划,来确保完整性和建设规范,但也需要架构能够持续演进,确保整体稳妥可控,所以我们归纳总结了两种云原生架构演进路径作为参考。
参考路径一:全局宏观尺度来看(从上向下),根据云原生能力评估来寻找技术短板和演进路径。如下示例是一个云原生架构三阶段演进路径,帮助金融机构逐步实现应用架构从单体微服务改造,走向单元化,实现同城双活再到异地多活的变迁。寻求最平衡的架构发展路径以满足业务发展和严苛场景考验。
参考路径二:从问题出发(从下向上),架构演进的目的一定是解决某一类问题。不妨从“问题”的角度出发,来设计整体云原生架构演进。如下示例使一个以解决技术问题来不断进行云原生架构演进的实践。
步骤1:为了让整个应用架构有“更好的底层支撑”,将应用架构运行在云平台上
步骤2:为了解决单体架构“复杂度问题”,使用微服务架构
步骤3:为了解决微服务间“通讯异常问题”,使用治理框架 + 监控
步骤4:为了解决微服务架构下大量应用“部署问题”,使用容器
步骤5:为了解决容器的“编排和调度问题”,使用 Kubernetes
步骤6:为了解决微服务框架的“侵入性问题”,使用 Service Mesh