金融级云原生分布式架构转型之路

一、云原生加快数字化发展,建设数字金融

国家“十四五”规划指出,要“加快数字化发展、建设数字中国”。迎接数字时代,激活数据要素潜能,推进网络强国建设,加快建设数字金融、数字经济、数字社会、数字*,以数字化转型整体驱动生产方式、生活方式和治理方式变革。其中“打造数字经济新优势”即为开篇之论,要充分发挥海量数据和丰富应用场景优势,促进数字技术与实体经济深度融合,赋能传统产业转型升级,催生新产业新业态新模式,壮大经济发展新引擎。


1.新型数字金融需要“云原生”作为新动力

2020年数字经济在国民GDP的占比已经超过四成,数字化已经成为社会发展的强大动能。“十四五”时期,中国将迈进数字化的高质量发展阶段,一系列的新型金融域态(普惠金融、绿色金融、数据金融、科技金融、产业金融、跨境金融、农村金融、数字供应链金融等)都需要强大的数字化动力来支持。计算是数字世界的动力,云计算是数字时代的“水电煤”。云原生,究其根本意义,是规范“用云”的架构模式、技术标准,是把云计算真正变成“水电煤”的关键所在。未来的一切应用应该是按照云原生规范构建的,通过云原生工具,可以即插即用地对接到任何一朵云上而获得澎湃动力。

金融级云原生分布式架构转型之路

数字金融对应用的敏捷性、弹性与韧性,提出了更高要求。在疫情下,许多金融机构快速构建云上营业厅、音视频空中服务、数字化场景金融、产业金融服务,为个人消费者、小微企业、三农扶贫等提供便捷的数字金融服务。很多开发者需要在短时间内上线新系统,快速伸缩以满足突增的访问量,确保系统在任何情况下持续正常运转。为此,开发者付出了无数个不眠之夜。同时,金融云原生架构也被推到了前所未有的高度和热度。究其核心原因,还是云原生能够让研发的关注点从基础设施进一步分离,聚焦上层业务逻辑实现,带来对业务的快速支持、创新能力。


2.“云原生”推动金融技术架构升级

纵观我国银行IT四十年发展史,大致经历了分散式架构,集中式架构,分布式+集中式双核架构,再到全面分布式云原生架构的多次变迁。20 世纪80 年代,银行开始引入主机系统,此时构建的业务系统高度分散,效率极低。每个地级市都有自己的业务系统,彼此业务无法联通,一笔跨地区汇款需要多级清算,流程如下:一个城市的网点——市分行——省分行——总行——目标地省分行——市分行——网点,而现在是实时转账、零级清算、秒级到账。90 年代末,随着计算机性能的提升和网络的发展,银行对数据集中的需求愈发强烈,大集中架构拉开帷幕。2010年左右,分布式架构渐渐进入主流视野,集中与分布式融合的架构成为目前银行IT的主流架构。而随着2020年疫情带来的线上业务剧增,越来越多银行开始将分布式云原生架构作为下一代银行核心技术架构。

分布式架构是云计算的实现形式,云计算是传统分布式的延伸。面对数字化业务的井喷,接入并发量和数据量仍呈指数上升的现状,分布式云原生与云计算是一对最佳组合,分布式云原生面向应用的延伸,云计算改善了分布式的易管理性、用户友好性和弹性。核心银行系统入云是大势所趋,中国信息通信研究院数据显示,目前我国41.18%的金融机构已应用云计算,46.80%的金融机构计划应用云计算,共占比87.98%。金融机构采用云计算时,采用分布式云原生技术无疑是最优选择,能让应用能最大限度享受到云计算的红利。

云原生(Cloud Native)是一个舶来词。它是一个思想的集合,包括DevOps、持续交付(Continuous Delivery)、微服务(MicroServices)、敏捷基础设施(Agile Infrastructure)、康威定律(Conways Law)等,以及根据商业能力对公司进行重组。Cloud Native既包含技术(微服务,敏捷基础设施),也包含管理(DevOps,持续交付,康威定律,中台,重组等)。对金融机构而言,Cloud Native云原生可以说是一系列技术架构、管理方法的集合。为什么现在云原生这么火了?这和企业数字化这一大背景息息相关,企业数字化在2020年疫情后提上整个社会发展的日程,它指的是企业和数字技术的全面融合,最根本的点在于用数字化的云平台能力,将企业各个要素和环节进行高效协同和迭代创新,包括技术、业务、人才、资本等等。

在金融机构数字化转型的过程中,以云原生为突破是打造金融数字化韧性一个重要因素。数字韧性被越来越多的金融机构所提及,什么是数字化韧性?当应对外界环境变化,或者客户需求变更时,软件产品需要有弹性和韧性,要有反应足够快的数字化体系,而云平台是整个体系的一个关键要素,云原生则是云平台的技术核心,向下可以调度包括算力和网络等资源,向上承载各个行业业务的应用开发、部署和运行。所以云原生是整个数字化转型的内核或者驱动,它是金融行业实现技术和业务融合最关键的黏合剂。

在金融的业务和技术的融合过程中,以云原生为核心的架构重塑是一个不断演进的过程(金融云原生架构不断结合演进),由原来1.0的应用迁移上云到2.0时代以业务为中心逐渐云原生化,在这一过程中,不管是基础设施的重构(多活灾备、分布式云),还是算力调度(单元化、离在线混部),应用架构的重构(中台化+低代码重构),都是金融云原生架构演进的核心。

此外,随着业务的复杂化不断增加,整个系统的研发效率(研发态)、服务规模(运行态)、稳定可靠(运维态)成为一个“三元悖论”。如何实现在三者间的平衡是一个难题,一些新技术(广义云原生)提供了新的解决思路,比如Serverless、中台化、低代码、混沌工程等,这些广义云原生架构的落地,为银行基础架构在研发效能、服务治理、容量管理、运维管控等能力向自动化、低代码化、智能化拓展打开了更广阔的发展空间。

金融级云原生分布式架构转型之路

云原生能将过去在应用架构层做的大量工作,尤其是弹性与韧性,下沉到云平台层去实现,让应用只需要关注客户体验与业务逻辑。所以,我们有理由相信,银行的主流技术架构将从以IOE为核心的集中式架构向广义的云原生架构演进。未来金融机构在基于云原生的应用,将天然具备弹性与韧性。

金融级云原生分布式架构转型之路



二、金融云原生架构演进参考路径  

云原生可能是“银弹”,但架构转型绝非一蹴而就。

业界普遍认为,云原生架构能加快需求交付、降低运营成本、支持容量伸缩、保证业务连续,从而使组织能更从容地接入创新技术、促进渠道触达。但事实上,金融系统的架构转型不太可能一蹴而就,新兴技术同传统架构的融合并存在许多方面带来了更大挑战。以银行为例,从80、90年代开始建设电子银行、网上银行到移动智慧银行,新的业务需求层出不穷,面临着很多架构转型和变革的机会。银行的IT化程度很高,也看重云原生和分布式架构对于业务和整体IT交付的价值,但是系统越是成熟,历史包袱就越重,有着大量非常关键的遗留系统,实施架构转型时则无疑将面临许多关键的重大挑战。

在当前历史时期,有非常多的银行机构开始考虑逐渐从单体架构向分布式架构进行融合与升级。围绕着业务价值作IT架构交付,绝不只是看哪种技术比较时髦或功能强大,这背后的选型元素涵盖了服务化架构、敏捷交付、API平台开放、综合成本等话题,也包含着落地可行性和生态成熟度等方面,因此更需要关注这套技术产品的长期愿景和发展规划,比如有没有云规划和战略、有没有提供一整套从经典架构迁移至先进架构的转型路径方法实践,更看重在业内有没有真实参考案例和服务体系支撑。

好的软件架构是进化来的,而不是由一开始就能够进行完整的巨细靡遗的设计和按图制造。金融IT架构转型创新的前提是保证用户体验和现有业务连续,确保整体稳妥可控,对此我们分享三个原则观点:

增量化交付(Incremental)架构落地不追求一步到位,由简单入手,渐进式攻克,每一步都为未来奠定基础。

稳健型创新(Sustainable)金融的本质是风险识别和管理,而对于金融IT架构来说技术风险亦是重中之重。任何一笔交易处理的差错背后都有可能导致不可预计的资金损失。需要建立一支专业的技术风险团队(SRE,Site Risk Engineering),确保从系统架构平台到风险文化机制,在架构设计、产品开发、变更上线、稳定性评估到故障定位恢复等等环节,都能全生命周期地确保风险质量控制,对任何系统变更作兜底保障。

演进式规划(Evolutionary)谈到互联网时代的技术和产品迭代,我们常常看到一个观点,鼓励“快速试错”。精益创新和敏捷迭代固然重要,然而在严苛金融场景下进行关键架构决策时,“试错”的代价往往会变的难以承受。从我们的实践经历来看,演进式规划的本质是,迈向一个架构愿景目标时一定要对关键架构决策进行原型验证,为此还要最大程度上在实际环境中保证可行性。

大道至简却知易行难,基于阿里的实践经验,我们将这些金融架构稳妥转型的三大原则与金融云原生技术路径结合,形成一套金融云原生演进参考路径。寻求最平衡的架构发展路径以满足业务发展和严苛场景考验,而不仅仅关注技术本身。帮助金融机构逐步实现应用架构从单体微服务改造,走向单元化,实现同城双活再到异地多活的变迁。在此过程中,需要同步关注技术风险,形成中台架构,不断把技术中台和业务中台沉淀下来。我们相信这些原则、方法具有一定的通用性,尤其是适合作为金融IT架构变迁的参考路径。

金融级云原生分布式架构转型之路




三、金融云原生架构原则

云原生架构演进作为一种架构模式,金融机构需要通过若干原则来对应用架构进行核心控制。这些原则可以帮助技术主管在进行技术架构迭代时具备更加整体的视角。


1.服务化原则

随着金融业务的数字化不断发展,单体应用能够承载的容量将逐渐到达上限,即使通过应用改造来突破垂直扩展(Scale Up)的瓶颈,并将其转化为支撑水平扩展(Scale Out)的能力,在全局并发访问的情况下,也依然会面临数据计算复杂度和存储容量的问题。因此,需要将巨石型单体应用进行服务化拆分,按业务边界重新划分成分布式服务模块,使应用与应用之间不再直接共享数据,而是通过服务调用(约定好的契约进行通信)来交互,以提高扩展性。通过服务化架构把不同生命周期的模块分离出来,分别进行业务迭代,避免迭代频繁模块被慢速模块拖慢,从而加快整体的进度和稳定性。同时服务化架构以面向接口编程,服务内部的功能高度内聚,模块间通过公共功能模块的提取增加软件的复用程度。

分布式环境下的限流降级、熔断隔仓、灰度、反压、零信任安全等,本质上都是基于服务流量(而非网络流量)的控制策略,所以云原生架构强调使用服务化的目的还在于从架构层面抽象化业务模块之间的关系,标准化服务流量的传输,从而帮助业务模块进行基于服务流量的策略控制和治理,不管这些服务是基于什么语言开发的。

2.弹性原则

传统银行的大部分系统部署上线需要根据业务量的估算,准备一定规模的机器,从提出采购申请,到供应商洽谈、机器部署上电、软件部署、性能压测,往往需要好几个月甚至一年的周期;而这期间如果业务发生变化了,重新调整也非常困难。弹性则是指系统的部署规模可以随着业务量的变化自动伸缩,无须根据事先的容量规划准备固定的硬件和软件资源。好的弹性能力不仅缩短了从采购到上线的时间,让企业不用操心额外软硬件资源的成本支出(闲置成本),降低了企业的IT 成本,更关键的是当业务规模面临海量突发性扩张的时候,不再因为平时软硬件资源储备不足而“说不”,保障了企业收益。

3.高容错(面向失败的设计)原则

根据“墨菲定律”  — “怀疑一切、任何节点失败都会发生!” (“Anything that can go wrong will go wrong” )。分布式系统可能受到硬件、软件等因素、或者内部和外部的人为破坏。我们在应用架构设计时需要时刻关注系统的可用性,关注潜在的“黑天鹅”风险。在业界有一个非常流行的隐喻:“Pets vs. Cattle”,宠物和家畜。我们面对一个架构选择:对于应用所在服务器我们是需要精心伺候,防止系统宕机,出现问题后不惜一切代价抢救(Pet);还是倾向于出现问题后,可以通过简单抛弃和替代进行恢复(Cattle)。

云原生架构的建议是:允许失败发生,确保每个服务器,每个组件都能够在不影响系统的情况下发生故障并且具备自愈和可替代能力。立即失效(Fail fast and Fail small)是另一个云原生系统设计原则,它背后的哲学是既然故障无法避免,问题越及早暴露、应用越容易恢复,进入生产环境的问题就越少。Fail small 的本质在于控制故障的影响范围——爆炸半径,关注点将从如何穷尽系统中的问题转移到如何快速地发现和优雅处理失败。这个原则在架构设计和服务设计上都需要关注。

金融级云原生分布式架构转型之路


4.可观测原则

今天大部分金融机构的软件规模都在不断增长,原来单机可以对应用做完所有调试,但在分布式环境下需要对多个主机上的信息做关联,才可能回答清楚服务为什么宕机、哪些服务违反了其定义的SLO、目前的故障影响哪些用户、最近这次变更对哪些服务指标带来了影响等等,这些都要求系统具备更强的可观测能力。随着云原生技术的发展,基于异构微服务架构的场景会越来越多、越来越复杂,而可观测性是一切自动化能力构建的基础。只有实现全面的可观测性,才能真正提升系统的稳定性、降低 MTTR。因此,如何构建系统资源、容器、网络、应用、业务的全栈可观测体系,是每个金融机构云原生架构转型都需要思考的问题。

5.韧性原则

韧性是指当软件所依赖的软硬件组件出现异常时,软件所表现出来的抵御能力。这些异常通常包括硬件故障、硬件资源瓶颈(如 CPU 或网卡带宽耗尽)、业务流量超出软件设计承受能力、影响机房正常工作的故障或灾难、所依赖软件发生故障等可能造成业务不可用的潜在影响因素。

当业务上线后,最不能接受的就是业务不可用,让用户无法正常使用软件,影响体验和收入。韧性代表了当软件所依赖的软硬件组件出现各种异常时,软件表现出来的抵御能力,这些异常通常包括硬件故障、硬件资源瓶颈(如CPU/ 网卡带宽耗尽)、业务流量超出软件设计能力、影响机房工作的故障和灾难、软件bug、黑客攻击等对业务不可用带来致命影响的因素。韧性从多个维度诠释了软件持续提供业务服务的能力,核心目标是提升软件的MTBF(Mean Time Between Failure,平均无故障时间)。从架构设计上,韧性包括服务异步化能力、重试/ 限流/ 降级/ 熔断/ 反压、主从模式、集群模式、AZ内的高可用、单元化、跨region容灾、异地多活容灾等。

随着数字化进程的加快,越来越多的数字化金融业务成为整个社会经济正常运转的基础设施,但随着支撑这些数字化业务的系统越来越复杂,依赖服务质量不确定的风险正变得越来越高,因此系统必须进行充分的韧性设计,以便更好地应对各种不确定性。尤其是在涉及核心行业的核心业务链路(如金融支付链路、交易链路)、业务流量入口、依赖复杂链路时,韧性设计至关重要。

6.所有过程自动化原则

技术往往是把“双刃剑”,容器、微服务、DevOps、大量第三方组件的使用,在降低分布式复杂性和提升迭代速度的同时,因为整体增大了软件技术栈的复杂度和组件规模,所以不可避免地带来了软件交付的复杂性,如果这里控制不当,应用就无法体会到云原生技术的优势。通过IaC(Infrastructure as Code)、GitOps、OAM(Open Application Model)、Kubernetes operator 和大量自动化交付工具在CI/CD 流水线中的实践,一方面标准化企业内部的软件交付过程,另一方面在标准化的基础上进行自动化,通过配置数据自描述和面向终态的交付过程,让自动化工具理解交付目标和环境差异,实现整个软件交付和运维的自动化。

7.零信任原则

零信任安全针对传统边界安全架构思想进行了重新评估和审视,并对安全架构思路给出了新建议。其核心思想是,默认情况下不应该信任网络内部和外部的任何人/ 设备/ 系统,需要基于认证和授权重构访问控制的信任基础,诸如IP 地址、主机、地理位置、所处网络等均不能作为可信的凭证。零信任对访问控制进行了范式上的颠覆,引导安全体系架构从“网络中心化”走向“身份中心化”,其本质诉求是以身份为中心进行访问控制。零信任第一个核心问题就是Identity,赋予不同的Entity 不同的Identity,解决是谁在什么环境下访问某个具体的资源的问题。在研发、测试和运维微服务场景下,Identity及其相关策略不仅是安全的基础,更是众多(资源,服务,环境)隔离机制的基础;在员工访问企业内部应用的场景下,Identity 及其相关策略提供了灵活的机制来提供随时随地的接入服务

8.架构持续演进原则

今天技术和业务的演进速度非常快,很少有一开始就清晰定义了架构并在整个软件生命周期里面都适用,相反往往还需要对架构进行一定范围内的重构,因此云原生架构本身也应该和必须是一个具备持续演进能力的架构,而不是一个封闭式架构。除了增量迭代、目标选取等因素外,还需要考虑组织(例如架构控制委员会)层面的架构治理和风险控制,特别是在业务高速迭代情况下的架构、业务、实现平衡关系。云原生架构对于新建应用而言的架构控制策略相对容易选择(通常是选择弹性、敏捷、成本的维度),但对于存量应用向云原生架构迁移,则需要从架构上考虑遗留应用的迁出成本/ 风险和到云上的迁入成本/ 风险,以及技术上通过微服务/ 应用网关、应用集成、适配器、服务网格、数据迁移、在线灰度等应用和流量进行细颗粒度控制。


四、金融云原生技术趋势与核心系统能力

1.金融云原生趋势

就金融云原生发展而言,架构会朝着“四化”的方向发展。首先是服务统一编排化,K8S统一云原生基础设施资源管理成为云原生的操作系统;其次是服务治理Mesh化,解耦非业务功能将中间件能力下沉,Mesh层将成为连接应用和基础设施的桥梁;第三是应用开发Serverless化,云原生的发展是从底下往上,越来越接近业务,降低开发和运维的复杂性及成本,缩短交付周期,专注高价值的业务开发,让业务开发更便捷、简单;第四是服务中台和低代码化,通过将公共领域能力聚合到中台服务,中台来提供一些核心能力框架,低代码是中台的外延,让业务部门与中台服务进行协作与交互的业务快速交付平台。

未来云原生需要结合大数据等来真正提高运营的价值。云原生更多是为应用而生,而应用本身是无状态的,如果要让云原生跟运营更深地结合在一起,需要跟大数据结合,包括云原生数据库等等,只有这样云原生才能从中台往上发展,真正穿透到企业的业务和运营层次,真正为整个数字化的转型提供最直观和价值链的作用,从而真正重塑价值链。在此过程中,最终云原生可以跟IOT、大数据等结合,来实现技术链、价值链、数据链全链条的打通。


2.金融云原生架构5大核心域

金融云原生整理的能力分为:设计域、研发域、运行域、运维域、灾备域5大领域。

l  设计态:采用领域驱动设计等与微服务架构体系天然亲和的设计方法,并在设计过程中,关注数据一致性、服务颗粒度等问题,贯彻分布式架构设计的设计原则和规范。

l  研发态:面向研发人员,提供一站式的研发生产力工具,屏蔽分布式技术的复杂性,提升研发人员体验和生产率。形成达成广泛共识的工程模板,降低组织认知成本。

l  运行态:面向应用,分布式应用运行的基础设施,覆盖应用全生命周期,包括创建、部署、监控、变配,支持多种形态的应用交互方式和数据存储形态。底层支持多种形态的计算方式以及其上的调度方式。

l  运维态:面向运维人员,解决分布式架构的先天复杂性,广泛使用工程手段,保证系统整体可用性水平。

l  灾备态:面向灾难,提供对节点级、机房级、城市级灾难的容忍能力。

金融级云原生分布式架构转型之路


最后,对于金融企业而言,云原生是数字创新的最短路径。云原生对于金融机构技术演进的价值在于:首先是基础设施的云化,以容器为代表,将基础设施非常平滑地搬到云上(私有云、公有云、混合云),帮助金融机构完成基础设施的云化。二是核心系统的互联网化,云原生将互联网技术以标准化的方式传递给传统线下企业,互联网的技术、思路、理念、组织形态可助力传统金融机构能力升级,实现低耦合、可扩展、小步快跑、快速迭代、敏捷开发、业务快速上线等。三是云原生驱动应用架构向现代化演进。我们常说“一云多芯”、“云边一体”等理念,就是为了解决企业数据化、智能化、移动化问题。在云原生技术体系下,云原生可以更好地推动金融机构的IT体系变革。四是多中台。云原生帮助金融机构构建业务中台、数据中台、AI中台等,因为数字化转型的关键就是用数据将业务进行数字化和智能化升级,从而更好地驱动业务迭代和创新。

 

作者简介:

刘伟光,阿里巴巴集团副总裁,阿里云新金融&互联网事业部总经理。毕业于清华大学电子工程系。加入阿里云之前,在蚂蚁金服负责金融科技的商业推广和生态建设工作以及蚂蚁区块链的商业拓展工作;他在企业软件市场深耕多年,曾经创建Pivotal软件大中华区分公司,开创了企业级大数据以及企业级云计算PaaS平台的市场先河。在创建Pivotal中国软件公司之前,刘伟光曾经担任EMC公司大中国区数据计算事业部总经理,并在Oracle公司工作多年,曾经创建了Exadata大中国区的产品事业部并担任事业部总监。

联系方式:18814865321

作者过往部分已发表文章及观点:

1、疫除即发的“云金融”时代| 刘伟光-《财经》

https://news.caijingmobile.com/article/detail/412971?source_id=40&share_from=moments&from=timeline&isappinstalled=0

2、中小银行平台化战略实施路径| 刘伟光-《中国金融》

http://finance.sina.com.cn/money/bank/yhpl/2020-04-26/doc-iirczymi8398466.shtml

3、全分布式架构引领核心系统架构转型新趋势| 刘伟光-《金融电子化》

https://mp.weixin.qq.com/s/XK4NNCRPVoGQ7kYseSng9g

4、深度|蚂蚁金服副总裁刘伟光:浅析银行数字化转型路径

https://www.infoq.cn/article/IJ0OtqycwezQA5aIBp8B

5、阿里云:云+ FinTech助力银行数字化转型| 刘伟光-《银行数字化转型:路径与策略》(机械工业出版社)

https://mp.weixin.qq.com/s/0YjlLGWrS8TgNfzHS_5uKA

6、阿里云刘伟光:真正的数据中台是什么?

https://baijiahao.baidu.com/s?id=1674640930147235499&wfr=spider&for=pc

 

 

上一篇:XMPPElementReceipt wait return,


下一篇:安全公司发现雄迈数字摄像机的主控口令“已泄露”