设为首页 | 收藏本站 | 关于我们 | 广告服务
 
 
当前位置:首页 > 中国金融电脑 > 2022年5月
网商银行云原生技术总监蒋维杰:金融级云原生分布式架构实践

网商银行云原生技术总监蒋维杰

  随着移动互联网、云计算、大数据、社交网络等信息技术的蓬勃发展,互联网金融应运而生,促使银行业向互联网模式逐步转型。一个看似简单的愿景——任何人在任何地点、任何时间、任何场景中,通过多种手段均可享受银行服务,使得新一代金融级系统必须直面海量用户以及随之而来的海量交易与数据。在此背景下,分布式架构和云原生技术成为业内公认的解决方案。站在云原生分布式架构的新起点,银行IT架构正朝着更高性能、更大容量、更高可用、更强弹性、更智能化的方向发展。

  随着云计算技术的不断发展,云基础设施的重大变化带来研发场景、软件生产模式的一系列变革。网商银行自诞生之日起就是一家将核心系统架构部署在云上的银行,建成了基于云计算“基座”的分布式架构,多年来先后完成了单元化异地多活架构、混合云弹性架构、金融级可信云原生架构的探索和实践。网商银行从云架构走向金融级云原生架构经历了三个阶段(如图1所示)。通过技术架构升级,网商银行积极应对信息系统在容量、稳定、安全、成本、合规、效能等多方面的挑战。

 

图1 网商银行三代架构发展历程

  一、云原生架构演进的必然

  网商银行通过云单元建设打造了一套容灾能力达到业内领先水平的“异地多活”技术架构,该架构支持业务流量按云单元灵活调拨,并具备架构的水平扩展能力,使基础技术底盘跃上了一个新的台阶。但是在基础设施架构演进过程中,网商银行也发现了一些问题,如为支持活动峰值流量而准备大量机器导致日常资源利用率低、基础设施迭代演进与业务强耦合、无法按业务维度进行精细化流量管控、应用安全加固成本高等,这些问题导致基础设施架构升级演进消耗了较多技术资源。业务的发展对运维效率、可扩展性、可迁移性、精细化管控等提出了更高的要求,网商银行一直在探索与业务发展相适应的架构解决方案。

  近年来,业界普遍认为,云原生架构能加快需求交付,降低运营成本,支持容量高效伸缩,提升运维效率和质量,保障业务连续性,从而使组织能更从容地应用创新技术,促进业务高速发展。结合业界技术发展趋势及自身实践,网商银行逐步确定了以金融级云原生架构为核心的升级方向。

  二、传统架构与云原生架构对比

  云原生架构是基于云原生技术的一组架构原则和设计模式的集合,旨在将云应用中的非业务代码部分进行最大化剥离,从而让云设施接管应用中原有的大量非功能特性(如弹性、韧性、安全性、可观测性、灰度等),在没有非功能性业务中断困扰的同时,使业务具备轻量、敏捷、高度自动化的特点。如图2所示,代码逻辑部分的正方形代表非功能性代码,圆形代表第三方依赖,菱形代表业务功能性代码。在传统架构中,有较多的非业务代码;在云原生架构下,理想情况是不再有非功能性代码在应用代码逻辑中体现,而让其下沉到基础设施中去,业务运维人员也只需专注于与业务代码相关的部分。

 

图2 云原生架构与传统架构的对比

  三、金融级可信云原生架构

  银行在进行数字化转型时,往往在IT系统的安全稳定保障和业务研发效率上难以找到很好的平衡点。因此,网商银行在探索云原生架构整体方案时,从顶层设计开始就在整个IT基础设施运维架构植入了安全服务能力,从根本上解决安全防御能力升级与业务研发运维效能冲突的问题,从而建立起可信云原生架构体系。通过服务网格(Service Mesh)技术的引入,可以提前拥有安全防御能力,在面临金融级攻击时保证用户数据的安全。此外,网商银行还在不可变基础设施、Serverless、混合云弹性架构、离在线混部等方面进行了实践。网商银行可信云原生技术架构如图3所示。

 

图3 网商银行可信云原生技术架构

  1.不可变基础设施

  传统的可变基础设施是指应用服务基于物理机或虚拟服务器进行部署,运行环境的构建依赖很多变量,诸如一些服务器上的配置、基础软件等,在不同环境之间可以通过动态配置下发或实时访问外部服务更新应用的状态,整个应用服务所依赖的基础设施一直处于变化之中,当出现需要进行应急回滚的场景时,运维人员处理流程往往会比较复杂,容易出错(如图4所示)。

 

图4 可变基础设施

  网商银行采用镜像化部署模式,将应用依赖的基础设施(如安全插件、日志组件、JDK基础软件等)打包成不可变的镜像,实现了多环境统一镜像,在应用发布时,只需对容器镜像进行变更即可,极大地降低了应用多环境的部署成本,同时对自动轮转替换、自动回滚等运维动作更友好,提升了基础设施运维的自动化水平(如图5所示)。此外,网商银行还引入了镜像加速技术,通过P2P点对点加速可以提升镜像文件的下载速度,从而大幅提升应用容器的启动或创建效率。

 

图5 不可变基础设施

  2.服务网格

  服务网格可看作基础设施层,用于处理服务间的通信。现代云原生应用有着复杂的服务拓扑,服务网格负责在这些拓扑中实现请求的可靠传递。实践中,服务网格通常是一组轻量级网络代理,与应用程序部署在一起,可以将其比作应用程序或微服务间的TCP/IP,负责服务之间的网络调用、限流、熔断和监控。

  在服务网格技术应用之前,微服务体系的实现方式往往由中间件团队为业务应用提供一个SDK,在SDK中会集成各种服务治理能力,如服务发现、负载均衡、熔断限流、服务路由等。在运行时,SDK和业务应用的代码混合在一个进程中运行,耦合度非常高,这就带来了一系列问题:

  一是升级成本高。每次升级SDK都需要业务应用修改SDK版本号,再重新发布应用。在业务快速发展的时候,这类升级会影响到研发效率。

  二是版本碎片化严重。由于SDK升级成本高,且中间件不断向前发展,久而久之,就会导致SDK版本各不统一、能力参差不齐等问题,给统一治理带来巨大的工作量。

  三是中间件演进困难。由于SDK版本碎片化严重,导致中间件向前演进时需要在代码中兼容各种各样的老版本逻辑,如同戴着枷锁前行,无法实现快速迭代。

  在应用了服务网格技术之后,网商银行就可以把SDK中的大部分能力从应用中剥离出来,拆解为独立进程,以边车(Sidecar)模式运行。通过将服务治理能力下沉到基础设施,可以让业务更加专注于业务逻辑,中间件团队则更加专注于各种通用能力,真正实现独立演进、透明升级,提升整体效率(如图6所示)。

 

图6 服务网格架构与传统微服务架构对比

  网商银行的服务网格把原来通过SDK集成的一些网络通信能力下沉到Sidecar中,包括基本的RPC、消息、DB访问能力,以及在此基础上的服务发现、熔断、限流、流量管控、数据库分库分表的能力,以此给业务系统带来较为透明的通信基础设施,将基础设施的迭代演进与业务系统解耦,让业务研发专注于业务逻辑,减轻业务系统的负担,提升业务系统及基础设施的迭代效率。

  3.混合云弹性架构

  单元化架构让网商银行具备了应对流量洪峰的能力,但是如何降低“双十一”等流量高峰带来的资源投入仍面临很大的挑战,虽然可以在流量高峰来临之前对单元进行扩展,如从目前的5个单元扩展到10个单元,但由于每个单元都需要部署全量的应用和具备全量的数据,所以每扩展一个单元都会带来巨大的资源消耗,而且全量应用的部署和数据迁移即使在相关自动化平台的支持下仍然是一项巨大的工程,整体上需要耗费较多的人力资源。通过对“双十一”等活动场景分析可知,虽然活动期间流量峰值很高,但是持续时间短,耗费大量资源以及人力物力扩展出的业务单元在大促过后无法得到充分利用。

  网商银行希望单元化架构可以具备按需弹性伸缩的能力,在面临流量高峰时可以快速弹性扩展以提升资源和应用处理能力,当应用流量高峰过后可以快速释放资源,以达到最大程度的资源利用率,因此需要构建一个灵活、可低成本复制的弹性架构。弹性架构本质是单元化架构的扩展,提供了一种以单元化架构中业务单元为最小粒度进行弹性伸缩的能力,主要包含弹出和弹回两个动作。弹出是以业务单元为基础的计算资源、网络、应用、数据层面的全面弹出,是一个从底层资源到上层流量的整体弹性手段,弹出的单元称之为弹性业务单元。区别于普通业务单元,弹性业务单元具备以下几个特征:

  一是局部性。常规模式下扩展出的每个业务单元需要包含全量应用和全量数据,而弹性架构下弹出的弹性业务单元只需要包含单元内的部分应用和部分数据即可,通常是高流量链路涉及的相关应用。

  二是临时性。区别于普通业务单元生命周期较长的特点,弹性业务单元的生命周期比较短,在支持“双十一”等大促支付高峰后,弹性业务单元的业务请求会弹回到常规业务单元,随后会对弹性业务单元进行释放,以节省成本。

  三是跨云。弹性业务单元通常会处于另外一朵或几朵云之中,弹性架构运用的场景所面对的流量峰值是日常的数倍,日常所在的云计算底座很难提供充足的资源,这时就需要其他云计算底座提供大量的资源支持。

  跨云特征让资源不再成为瓶颈,临时性让资源可以按需使用,极大地提高了资源的利用率,同时局部性让资源消耗进一步降低,弹性业务单元只需要部署与大促相关的应用和链路即可,非大促链路的应用无需部署,数据无需迁移,在降低资源消耗的同时,也进一步降低了部署和数据迁移的成本。

  弹性架构充分发挥了混合云的优势,海量的云资源让应用可以无限扩展以应对极高的流量峰值,在达到流量峰值后可以进行资源的快速释放,真正做到资源按需弹性伸缩。

  4.无服务器架构

  面向互联网的数字银行IT系统设计趋于复杂,微服务的数量也呈指数级增长,在业务需求快速变化,上线速度、投产频率要求越来越高的情况下,金融服务核心能力的抽象是一个大趋势,中台化架构已经逐渐成为新一代软件系统集成模式的重要方向,在强调业务核心组件复用能力的同时,如何提升业务系统迭代效率是需要迫切解决的问题,而传统的运维模式支撑如此大规模的分布式服务变得越发艰难。

  为此,网商银行建设了基于Serverless的下一代中台业务研发架构的核心基础设施,通过建设Serverless PaaS平台把应用研发运维形态从原来的应用粒度扩展到模块粒度,通过模块化研发模式,将底层核心能力的研发与上层业务场景的研发解耦,一方面将技术风险、容量弹性伸缩等核心能力与业务解耦,无需业务研发感知底层能力的变化,提升资源利用效率;另一方面利用模块轻量级、启动快的特点,通过模块并行研发大幅提升了业务的交付效率。

  5.离线和在线资源混合部署

  在日常生产中,在线服务应用为了确保较高的服务质量,往往会长期运行并且独占CPU资源,但CPU利用率却很低;而离线计算任务正好相反,通常是短生命周期且对资源服务质量要求不高,但运行期CPU利用率很高。随着业务规模的扩大,在线业务集群和离线集群资源池逐步变大,由于存在业务低峰期,会遇到资源利用率的问题,一个比较明显的现象就是集群的资源分配率很高但是实际利用率偏低。

  为了解决资源利用率问题,网商银行在云原生架构建设过程中进行在线和离线集群混合部署,统一资源调度,通过CPU弹性共享和优先级抢占、离/在线应用错峰编排、应用QoS等级划分、内存分级管理等核心能力,以资源隔离和动态调整为基础,将不同属性类型的在线服务和离线计算类服务进行精确组合,利用高效调度算法和智能化的容量计算模型等技术手段完成资源的合理利用,解决资源错峰高效利用的问题,降低IT成本。

  6.云原生安全可信

  当前,互联网环境下的外部威胁趋于多样化、新型化,传统的防御手段对于已知的漏洞利用和威胁攻击手法具有较好的应对效果,但是无法很好地应对APT攻击、0Day漏洞攻击等新型威胁。然而,这些已知的和新型的威胁存在着共同的特点:均是业务预期外的行为。基于此特点,网商银行通过对所有的服务请求及资源加载行为进行可信度量,建立起基于可信行为的安全纵深防御体系,确保只有预期内的行为可以访问执行成功,对预期外的行为进行阻断拦截来达到抵御已知和未知威胁的效果。

  依托云原生技术,网商银行达到了低成本的可信级安全加固效果。基于服务网格技术,网商银行针对核心应用和服务建立了精细化的访问控制体系,在保证运维效率的同时大幅度提升了安全性。传统银行核心应用纵深隔离体系的建立,通常需要投入高额的运维成本,应用扩容需要修改防火墙策略,效率低;互联网公司生产网基本上都是一张大网,没有什么隔离能力,效率虽高,但安全性低。作为一家数字银行,网商银行的方案需要兼顾高效率与高安全性的要求。

  四、总结及未来展望

  结合可靠的自动化手段,云原生技术使工程师能够轻松地对系统做出频繁和可预测的重大变更。

  云原生架构简化了业务系统基础设施,为研发效率提升提供了新的解决思路,为银行基础架构的容量管理、运维管控等向自动化、智能化发展开拓了更广阔的空间,更有利于构建自动化的研发运维体系,降低上层业务系统对基础设施的依赖性以及运维复杂度。

  云原生技术让研发的关注点从基础设施进一步分离,聚焦上层业务逻辑实现。网商银行通过探索和实践云原生架构升级,逐步落地了云原生相关的技术,为未来业务发展提供了先进技术支撑,为架构持续演进奠定了基础。

  面向互联网的数字银行IT系统设计愈发复杂,在业务需求快速变化的情况下,微服务的数量也呈指数级增长,传统的运维模式支撑如此大规模的分布式服务运维变得艰难,云原生架构有利于构建自动化的运维体系,降低人的介入难度。网商银行希望通过云原生架构落地实践为业界提供可供借鉴的经验,与同业共同探索金融行业的架构转型之路。

 
过刊查询
2022年03月 2022年02月 2022年01月
2021年12月 2021年11月 2021年10月
2021年09月 2021年08月 2021年07月
2021年06月 2021年06月 2021年05月
查看所有过刊
本期精选
《中国金融电脑》2022年第5期目录
《中国金融电脑》2022年第5期目录
中国建设银行首席信息官金磐石:打造云原..
中国建设银行首席信息官金磐石:打造云原..
中国工商银行软件开发中心总经理杨龙如:..
中国工商银行软件开发中心总经理杨龙如:..
中国农业银行研发中心总经理王怡:农业银..
中国农业银行研发中心总经理王怡:农业银..
 
企业简介 | 版权声明 | 免责声明 | 频道介绍 | 安全提示 | 法律顾问 | 网上投稿 | 客服电话 | RSS订阅
Copyright © 2005 Fcc.Com.Cn, All Rights Reserved. ,《中国金融电脑》杂志社版权所有
电话:010-51915111-805 传真:010-51915236,网络出版服务许可证(署)网出证(京)字第337号
京ICP备14024077号-1 京公安网备:11010802025321 技术支持:站多多