数字金融时代的云原生架构转型
步入数字金融时代,“云原生架构”作为金融 IT 架构的关键发展趋势已经成为业界共识,但 IT 架构转型绝不是一蹴而就的,在积极探索和应用以“云原生”为代表的新兴技术的同时,必须考虑与传统模式和技术融合并存,沿着一条稳妥可落地路径进行创新变革,确保架构转型的价值交付能够稳妥支撑甚至积极引领业务创新。
在蚂蚁集团内部架构变迁和对外金融科技开放的过程中,我们一直在持续探索,并在不断巩固总结出一条金融级云原生的架构落地路径,顺应广大金融机构分布式改造和IT架构稳妥创新升级的需求。希望通过本文作为一个开端,将蚂蚁集团的云原生实践案例和经验持续和大家进行积极开放的交流分享,与行业共同推动架构转型升级与数字金融创新。
什么是云原生
许多行业的领导者和新兴创业机构,其技术架构都有普遍的共同点:以移动为核心增强用户体验、快速敏捷创新、服务持续可用、基础架构可扩展。这也是以金融为代表的传统机构 IT 数字化转型的目标,恰好也是云原生架构定位的价值所在。
云原生(Cloud Native)这个概念名词最初于 2013 年在技术社区中诞生,代表着一套先进架构理念的思想集合,包括了微服务、敏捷、DevOps 、持续集成部署、容器、可靠、高弹性、易扩展等领先的概念和特性。随后社区中涌现了许多非常优秀的项目,为了统一标准,Linux 基金会旗下的 CNCF(云原生计算基金会)应运而生。
2018 年 6 月,CNCF 正式对外公布了云原生定义的 1.0 版本:“云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式 API。”
企业的云原生架构演进之路
为充分理解云原生这个概念,并思考传统企业架构迈向云原生的转型升级路径,我们先简单回顾云计算的行业发展和企业架构演进的一般情况。纵观全局,可以把传统企业架构迈向云计算架构的演进之路粗粒度地抽象成三个阶段:
一、云机房(Cloud-Based),指的是把机房迁移到云(包括公有云或专有云)的第一步,基于虚拟化技术使资源利用率和运维效率有所提高,但依旧需要重点关注中间件和底层平台,每一部分都要考虑高可用、扩展、交付部署等因素。
二、云就绪(Cloud-Ready),基本完成去中心的服务化改造,应用无状态化并与缓存、数据库等持久化层分而治之,应用服务规模扩大,需要有较成熟的 DevOps 和自动化工具平台来统一管控。
三、云原生(Cloud-Native),通过微服务化架构、容器和编排技术、DevOps 等技术实践,加快应用的交付和部署。通过对平台能力的抽象和标准化,辅以微服务治理、敏捷的资源编排和管控技术,使开发者的关注重心上移,更关注业务逻辑本身,做到“代码定义一切”(Code Defined Infrastructure/Everything)。
在这三个发展阶段演进的过程中,体现出了两个关键趋势:
趋势一:从应用上云历程上看,架构关注重心逐渐上移
随着研发运维理念升级发展、相关工具平台的规范成熟,底层和中层基础平台设施的能力逐渐抽象,并同上层业务应用解耦,使得软件团队更加专注于业务逻辑的研发。基础平台技术和业务研发有了较清晰的边界和协同机制。业务开发团队因可不必太过关心业务系统的容灾、扩展等非功能特性,得以更加聚焦专注于业务逻辑的研发实现。
趋势二:随着容器和编排技术的成熟和统一,PaaS 层的技术方向也趋于稳定
企业应用迁移上云的历程,亦代表着业界对云计算的认知和云计算技术本身成熟度的升级过程。业务应用逐渐从对 IaaS 层的依赖,发展向对 PaaS 层的依赖。这些 PaaS 领域平台服务确实解决了许多现实应用问题,降低对底层基础设施的依赖,但业界也产生了困惑 - PaaS 产品本身很可能对应用开发和运维产生侵入性,这对厂商来说是粘性,对用户来说可能就是厂商绑定了。直到后来 Kubernetes 等容器编排技术的成熟,获得了大部分社区和用户的认可,行业才相对往一个较为统一的方向发展。
云原生可能是“银弹”,但架构转型绝非一蹴而就
从技术圈的社区讨论火热程度来看,云原生、微服务、DevOps、敏捷、容器化等技术和理念似乎就是未来IT基础设施建设的方向。业界普遍认为,云原生架构能加快需求交付、降低运营成本、支持容量伸缩、保证业务连续,从而使组织能更从容地接入创新技术、促进渠道触达。同时从最基础的定义上来看,面向云原生的架构转型貌似就像把大象放进冰箱一样简单:
微服务化 - 把大象拆分成许多小象;
容器化 - 打开冰箱门,把小象塞进冰箱;
动态编排 - 最优化这些冰箱的排列以保证空间资源利用率。
在企业级特别是银行等金融机构架构转型方面,云原生是一个很好的方向,但在应用这套新技术时,仍需要充分考量各项因素,以及使用一整套经过验证有效的落地路径与方法来进行有力支撑。
事实上,金融系统的架构转型不太可能一蹴而就,新兴技术同传统架构的融合并存在许多方面带来了更大挑战。以银行为例,从 80、90 年代开始建设电子银行、网上银行到移动智慧银行,新的业务需求层出不穷,面临着很多架构转型和变革的机会。银行的 IT 化程度很高,也看重云原生和分布式架构对于业务和整体 IT 交付的价值,但是系统越是成熟,历史包袱就越重,有着大量非常关键的遗留系统,实施架构转型时则无疑将面临许多关键的重大挑战。
挑战一:金融 IT 架构如何进行稳妥转型?
“架构”一词原本来自建筑学,其背后有着关于建筑的隐喻,从蓝图到地基再到封顶,在绝大多数建筑物拔地而起的发展过程中会尽量较少引入新的变量,因为对于建筑而言改变整体结构或根基的成本非常高,软件业从建筑业借用了“架构”这个概念,我们把那些一旦改变就会伤筋动骨的系列组件构成方式或设计决策集称之“架构(Architecture)"。传统 IT 架构和早期的软件研发,喜欢运用“瀑布式研发”模型,自上而下进行充分论证和设计,最终按照设计蓝图的定义进行构建,一旦设计成型之后很难改变,如果产生设计变更,则往往牵一发而动全身。
挑战二:严苛金融场景下如何实现架构平衡?
金融IT系统的架构选型需要非常慎重,以银行核心系统为例,系统选型几乎就是一个公司战略级别的决策,关乎着长期影响。在当前历史时期,有非常多的银行机构开始考虑逐渐从单体架构向分布式架构进行融合与升级。围绕着业务价值作 IT 架构交付,绝不只是看哪种技术比较时髦或功能强大,这背后的选型元素涵盖了服务化架构、敏捷交付、API 平台开放、综合成本等话题,也包含着落地可行性和生态成熟度等方面,因此更需要关注这套技术产品的长期愿景和发展规划,例如有没有公有云的业务战略、有没有提供一整套从经典架构迁移至先进架构的转型路径方法实践、在业内有没有真实参考案例和服务体系支撑。
挑战三:如何应对核心金融系统的关键技术挑战?
在普惠金融和互联网业务蓬勃发展的大背景下,具备大规模高并发交易处理的能力已成为银行等金融机构业务系统的标配。
核心金融系统,在技术层面的挑战有别于其他大规模互联网系统。在数字化转型的过程中,我们建议金融机构的技术决策者,预先考虑可靠的基础设施和弹性应用数据架构,在不同业务压力下依旧保证业务连续性和数据安全。而且在金融级交易系统中,对事务型的状态数据一致性处理以及交易成本的要求更高,对客户资金风险和安全性处理更加复杂。在产品迭代速度不断加快的背景下,还要有成熟的架构、流程和风险保障机制,在更新和维护应用及软硬件系统时,保证在任何极端严苛的业务压力下始终保持丝般顺畅的用户体验。
共建金融级云原生分布式架构
基于蚂蚁集团向云原生技术架构演进中积累的十多年实践经验,对于上述金融级 IT 系统在迈向云原生架构的过程中面对的挑战,我们总结了以下几点应对策略:
从经典 IT 架构迈向金融级云原生架构的转型过程中,我们建议应基于业务价值作增量式交付、稳健型创新、演进式规划,构建中台能力敏捷响应市场需求。
在架构和技术选型过程中,应寻求最平衡的发展路径以满足业务发展和严苛场景考验,而不仅仅关注功能本身。
基于云原生架构的核心金融系统,还应面对并解决机房级的扩展能力、地区级的容灾能力、高并发条件下的分布式事务并做到灵活资源调度以保证成本最优化。
同时,蚂蚁集团将持续把多年的积累的经验和科技向行业分享和开放,提供架构转型的可落地路径和相关洞见经验,也希望能同广大技术社区和各行业的伙伴深入交流,共同探讨和共建金融级云原生架构标准和最佳实践,使业务应用能专注需求作敏捷交付,又能同时原生地拥有高可用、一致性和互联网海量并发、弹性伸缩等金融级基础架构能力。
我们把这套金融级云原生的分布式架构解决方案,称之为 SOFAStack™(Scalable Open Financial Architecture Stack),源于自蚂蚁内部沉淀十多年的金融级分布式中间件技术体系,吸收了支付宝自创立以来在关键金融交易系统锤炼出来的架构实践。SOFAStack 所有的产品技术均经过蚂蚁集团自身严苛的金融场景验证,为金融交易技术在保证风险安全的同时,帮助业务需求敏捷迭代;同时满足异地容灾、低成本快速扩容的需求,能够解决传统集中式架构转型的困难,并通过打造大规模高可用分布式系统架构,来支撑金融业务创新。
同时,SOFAStack 体系内的各个组件已经开始逐步向社区开源:https://github.com/alipay。希望能与技术社区共同完善和改进各关键产品,支持大家更加敏捷稳妥地实现金融级云原生架构。