工行软件开发中心软负载均衡平台探索与实践
2023/6/29 11:57:30

随着云计算技术和分布式技术的蓬勃发展,工商银行软件开发中心开展了“云计算+分布式”技术体系的研究和实践,实践发现负载均衡作为该技术体系流量入口的核心节点,基于传统负载均衡架构已无法满足需求,主要面临如下四方面挑战:

1、“云计算+分布式”架构转型的挑战

随着银行业务系统的发展,应用功能日益丰富。例如,手机银行应用程序内嵌了许多功能节点。如果所有应用功能都集中部署在一台服务器上,就会存在集中式的风险,同时也对服务器性能提出较高要求,不利于“云计算+分布式”体系下轻量级部署的目标。因此,需要对应用功能进行横向解耦和拆分,负载均衡需要能够提供基于应用层的路由能力,实现不同功能服务器之间多元化的路由调度。

传统硬件负载均衡主要作为网络流量负载调度器,无法满足“云计算+分布式”架构下应用业务级多元化的负载路由能力。

2、互联网应用业务爆发性增长的挑战

流量的爆发性增长是互联网行业发展带来的典型场景,在银行业的业务发展中,最典型场景为央行发行纪念币等预约抢购。流量可能从活动前的低于1000 QPS激增到活动预约时的百万以上QPS。因此,要求负载均衡节点具备快速扩容能力以满足业务性能要求,且预约活动结束后,资源能快速回收,避免浪费。

传统的负载均衡架构在设备的上线和扩容方面是个复杂的过程,涉及到设备采购、上线等操作。扩容之后,若无法快速回收资源,将导致资源的浪费,无法满足互联网应用业务爆发性增长的需求。

3、数字化转型应用业务快速迭代的挑战

在数字化转型背景下,金融业为了满足业务发展、银行监管、安全生产等多方面要求,应用业务快速迭代发展,IT架构也不断变化演进。因此,要求负载均衡能够支持定制化开发能力,满足不同的业务场景,例如灰度发布、单元化架构的流量调度等。

传统的硬件负载均衡设备通常基于商业产品,从需求提出到生产投产需花费较长时间,无法满足数字化转型业务快速迭代的需求。

4、应用DevOps研发运维一体化的挑战

为满足IT架构转型和业务快速上线的需求,负载均衡需支持应用实现从研发测试到生产运维自服务快速配置,并结合工商银行软件开发中心基础环境实现自动化运维管理,满足自服务、可监控、易运维等管理需求。

传统的负载均衡设备接口能力、自服务能力以及运维管理能力方面开放性较弱,无法满足应用DevOps研发运维一体化的需求。

综上所述,传统基于硬件负载均衡体系难以满足工商银行软件开发中心业务发展和技术转型的需求,因此工商银行软件开发中心从2016年开始研究软负载技术,并且通过引进开源产品和自主研发相结合的方式,建设企业级软负载均衡平台。

整体架构

工商银行软件开发中心软负载均衡平台由四层软负载、七层软负载和管控平台三个部分组成,四层软负载是基于网络传输层的负载均衡,支持TCP、UDP协议,实现网络流量负载均衡。七层软负载是基于应用层的负载均衡,支持HTTP、HTTPS协议,实现应用请求负载均衡。管控平台实现所有软负载节点的统一运维管理。

工商银行软件开发中心软负载均衡架构支持四七层分层部署,支持传统环境、多云环境混合部署,支持PAAS云平台容器动态注册发现,满足“云计算+分布式”体系下应用快速上线部署、弹性扩缩容、多元化路由等云内外负载均衡需求。

图一

平台能力

1、业务级的负载路由能力,满足“云计算+分布式”转型需求

业务级的负载路由能力是指通过软负载实现基于上下文或HTTP头部等多种路由策略组合,实现将不同类型的业务请求分发到不同的服务器或容器。

工商银行软件开发中心软负载均衡平台建设了丰富的业务级负载路由能力,支持二十种以上的路由策略自由组合,帮助应用实现业务功能横向拆分,满足轻量化和容器化部署的目标,从而提高应用的可扩展性和整体性能,满足“云计算+分布式”转型需求。

图二

2、快速弹性伸缩的负载能力,满足互联网业务爆发性增长需求

快速弹性伸缩的负载能力指的是负载均衡通过集群横向扩展和多集群灵活部署,实现灵活的性能容量扩展,满足高并发业务场景下的需求。

在四层软负载集群方面,单个集群负载均衡节点可以通过交换机等价路由进行横向扩展,单个集群可支持百万级的连接处理能力,并且通过智能域名调度,实现多个园区多套四层集群横向扩展。

在七层软负载集群方面,经过调优之后单个七层节点的处理能力可达到1万QPS以上,单个集群最大支持500台服务器,可满足500万QPS的处理能力。此外,同样可以通过多集群模式进一步横向扩展。

图三

3、丰富的定制化解决方案,满足数字化转型快速迭代的需求

工商银行软件开发中心的软负载产品基于主流的开源技术产品,具备快速更新迭代的能力。针对特殊场景,可以通过定制化开发满足需求。

其中一些典型实践场景介绍如下:

(1)支持应用灰度引流,控制应用投产风险

灰度引流是指在灰度发布场景下,通过分流引擎将请求流量调度到灰度服务器和正常服务器,其中灰度服务器使用新版本,正常服务器使用旧版本。

工商银行软件开发中心通过软负载均衡实现灰度分流引擎,读取应用请求头中的Cookie字段、URL参数等灰度标签,将带有灰度标签的请求路由到灰度服务器,反之则路由到正常服务器,从而实现业务级的灰度流量调度,有效控制应用投产风险。

图四

(2)支持单元化流量管控,控制故障风险

单元化架构是将应用业务按照单元进行划分部署,每个单元包含该业务所需的所有服务,当某个单元发生故障时,可以灵活地进行跨单元切换。

在工商银行软件开发中心单元化架构下,软负载均衡作为流量管控引擎,支持单元化流量调度。正常情况下流量在本单元内闭环,跨单元切换时,通过软负载预定路由规则和健康检查结果,将流量转发到对应备份单元,从而实现企业级单元化负载路由和流量管控能力,有效地控制应用故障范围,避免全局性的业务风险。

图五

4、企业级运维管理能力,满足应用DevOps研发运维一体化需求

企业级的运维管理能力方面,工商银行软件开发中心自主研发软负载管控平台,实现自服务配置、负载策略编排、可用性监控、性能容量管理、应急操作等功能,并提供统一对外API接口,提高运维效率和服务水平。

DevOps研发运维一体化方面,工商银行软件开发中心对标业界公有云负载均衡服务能力,实现标准化、流程化、自助化,并与工商银行软件开发中心DevOps体系对接,有效满足业务快速上线和自动化运维的需求。

图六

实践效果

工商银行软件开发中心软负载均衡建设的实施效果方面,已部署300多个总行应用和60多个分行应用,后端业务节点数超过十万,峰值的QPS超过百万,日均交易请求超过千亿,平均请求处理时间在1毫秒以内。

1、支持高并发业务场景,保障纪念币顺利发行

工商银行软件开发中心典型的高并发业务场景为纪念币发行的场景,在活动前业务流量在1000 QPS以下,在活动当天流量可能激增到百万QPS以上。

工商银行软件开发中心软负载均衡通过灵活部署架构实现快速扩缩容能力,满足高并发业务性能容量需求。同时通过业务级路由,支持应用实现业务拆分和容器化部署,并通过SSL卸载优化、双园区灵活调度、动态限流等功能,提升了系统的整体处理能力。在2023年的兔年贺岁币预约发行任务中,交易量峰值达到了50万QPS。

图七

2、支持多元化业务级路由能力,助力春节红包等快捷支付场景

工商银行软件开发中心快捷支付应用需对接多个第三方支付主体,如支付宝、财付通等,具有对接渠道多、业务交易大、时效要求高等特点。

工商银行软件开发中心通过软负载的多元化业务级路由能力,可以根据HTTP Header请求头中特定标志位字段定义不同的路由规则,比如标志位001路由到支付宝,002路由到财付通,将不同功能拆分为多个分组,每个分组可以对应到不同的数据库分片,实现横向扩展、提升系统整体处理能力,顺利支撑历次业务高峰期如春节红包和“双十一”等活动,业务峰值达到2万TPS以上。

图八

未来演进

近几年随着云原生技术的演进,工商银行软件开发中心同步探索实践云原生负载均衡技术。

图九

通过引入云原生负载均衡技术,结合工商银行软件开发中心大规模扁平容器网络和跨集群负载需求进行定制开发,推进软负载均衡技术体系向云原生方向演进。通过对接行内PaaS云底座实现容器化部署,提升扩缩容能力和高可用能力,并利用云原生可观测性能力,提升应用级负载流量监测能力,辅助应用实现运行流量分析。

回顾工商银行软件开发中心的软负载均衡发展历程,是一个“拥抱开源技术,赋能银行业务”的过程。未来,工商银行软件开发中心继续跟进业界负载均衡技术发展,通过新技术赋能业务场景,满足业务发展需求,加快推进科技强行、数字工行建设,为客户提供更优质的金融服务。

本文转载目的在于知识分享,版权归原作者和原刊所有。如有侵权,请及时联系我们删除。

展开全文
相关阅读
资讯查询取消