【实战案例】银行新一代分布式核心系统性能调优案例复盘
背景:
某股份制银行新一代核心系统以客户服务为中心,支撑产品化运营,提供存、贷、汇等核心服务,并支持其他专业系统的账务、核算,记录全面、精细化的交易数据,为智能化管理、分析提供基础数据支持。新一代核心系统在进行业务分布式改造之外,还同步进行了国产化改造和云原生容器化部署。为能发挥核心应用在当前的开发框架、云化基础设施的软硬件结合最佳性能,验证老系统向全新架构规模迁移可行性,该行搭建了新一代核心业务系统技术验证平台对各类新产品和新技术进行功能和性能测试验证,调整优化软硬件基线配置,探索分布式架构下的最佳实践。
挑战:
该平台主要包括分布式云原生应用、分布式数据库和缓存数据库三大部分。其中云原生应用以容器形式部署在国芯服务器上,分布式数据库部署在国芯裸金属服务器,并搭配NVME高性能硬盘,操作系统全部采用国产OS。
该行核心业务是基于HCS全栈云容器服务进行的云原生改造和上云方案规划。从集成设计上面向行内CPaaS统一容器云平台,进行CCE容器集群的纳管和运维指标流对接;从技术场景上支持容器集群中各业务系统关联的namespace与各容器业务Pod子网的关联,满足云内云外、云间容器业务南北向流量安全防护的要求。
为了验证新平台、新架构下的系统性能,该行开发部门选取了较为复杂的联机交易场景,系统架构和业务流程如下:
微服务化架构:网关、存款服务、内部账服务、统一序列号、分布式事务等各服务,均以微服务架构运行在CCE容器集群中;
服务注册发现:各类微服务会定期维持到服务注册中心的心跳,同时定期拉取微服务清单和配置信息,实现配置更新及服务发现;
压测流程设计:业务请求从压力机或终端进入,首先会通过网关服务,调用存款服务的接口,存款服务根据业务类型,依次调用周边统一序号、SEATA、内部账等服务,并结合业务逻辑,进行多次的数据库操作。业务流量从压力机到应用侧,然后到数据库层,最终完成后返回结果。

图一:某股份制行新一代核心业务系统架构
对比于传统架构,云原生化的分布式业务系统在进行微服务改造、容器化部署之后,整体架构更为复杂,各类服务间大量使用RPC远程调用通信,具有网络请求高频,时效性要求严,数据强一致性要求高的特点。其中网络上的高频请求带来的时延累计开销,对于SDN云网在云原生网络扁平化和高速直通方面提出更高要求,同时其对数据强一致性的要求也为分布式数据库带来了挑战。
分析与对策:
展开分析这些挑战之后,我们针对该行新一代分布式新核心系统,分阶段先后针对分布式系统架构、分布式数据库、和业务端到端性能优化,进行了专项调优。
一、 分布式系统架构调优
该行全栈云所采用的软SDN Overlay网络中,负责VXLAN隧道解封装的隧道端点VTEP,广泛分布在算力资源节点、软SDN网元节点、集中式裸金属网关节点、增强型裸金属交换机或者硬专线交换机上,且虚拟机和裸金属节点分属不同的接入交换机,导致各节点间互访的流量路径较为复杂。考虑到分布式架构下的高频RPC访问场景,为追求最佳性能,我们建议该行针对分布式架构单独设计网络部署模型,收敛虚拟机应用、容器化业务、分布式数据库的VPC网络模型,基于IaaS和容器的扁平化网络、三层专线BL发挥交换机的硬件转发能力、以及分布式数据库基于HCS裸金属高速网络加速东西向流量等优化措施,大幅度提升了云平台对于分布式业务的性能支撑水平。
二、 分布式数据库调优
从传统集中式数据库迁移至分布式数据库挑战巨大,既要充分发挥分布式数据库海量数据高并发的优势,也要避免架构由集中式转变为分布式带来的影响,为此在数据库层面采用了下列优化措施,
1. 减少自增列的使用,规避分布式数据库自增属性列的写入效率不及集中式数据库的不足;
2. 批量优化:对数据表以账号进行了哈希水平分片,并且在每个分片内也以账号字段哈希分区,通过多分片多分区并行执行的方式,发挥分布式数据库并行性能优势;
3. 内存/磁盘管理策略优化:定时策略清理服务器buff/cache,高并发读写时,规避因服务器缓存释放不及时造成TPS和时延的不稳定;
4. 条带化:数据库NVME盘由LVM进行管理,对于分布式数据库DN节点这种I/O密集型服务,尽可能降低读写延迟。
三、 业务应用端到端性能调优
通过业务单笔交易的全链路时延分析,经过上述优化之后的交易时延开销,主要来自于分布式应用和微服务框架、RPC调用和数据库事务处理,根据这些瓶颈点,在应用层,继续在缓存优化、批量优化和通讯优化三方面进行进一步优化,
1. 缓存优化:对于高频访问且相对静态的参数类库表,采用Redis缓存来优化数据访问效率;对于SQL预编译的结果进行缓存,规避应用侧SQL预编译的时间开销;对于注册中心提供本地服务列表内存缓存、本地服务列表文件缓存的多级缓存策略,提升高可用能力和访问效率。
2. 批量优化:在资源允许的范围内进一步提高任务处理的并发度,将批量任务化整为零,通过进行合理的任务分片全面提升批处理的效率,同时通过减小单个事务的规模,尽量避免大事务的产生。
3. 底层通讯优化:微服务高频交互的场景下,将服务间的通讯协议由HTTP协议优化为基于Socket长连接的bolt协议,提升通讯效率。
处理结果:
经过跨经三个多月的三轮调优及压测,在相同配置基线下,基于鲲鹏服务器的华为HCS云原生平台在业务平均响应时延、TPS等关键指标明显优于基于X86国产化服务器的其他云平台。
调优组织涉及参与方众多,包括银行业务部门、云平台提供商、数据库提供商、国产操作系统提供商、硬件提供商等;调优涉及的业务应用层次复杂,包含多个层面多维度关联调优:业务层->技术平台层->数据库->操作系统层->云平台软件层->基础设施硬件层等。通过这次核心业务性能调优的实战,我们证明了我司是真正具备全面软硬技术栈以及多软件技术栈专家资源和技术储备的厂商,在核心业务全要素上云和调优场景中,能够成为客户的左膀右臂,加速其核心业务系统基于华为云Stack全栈云平台上云的速度与决心。
经验和教训:
针对银行新一代核心业务的性能调优,是一个系统性的工作;并且基于全面云原生容器化的分布式改造在金融行业也是一个具有开创引领特征的行业架构创新,先验经验不多,各个层级的综合挑战繁多,需要从下面三个方面进行规划和持续完善:
1- 组织层面,无论是对于客户自身,还是云厂商而言,因为云化核心业务的调优,要求复杂场景下的调优方案,对于不同领域专家协同作战能力有很高诉求,双方都需要配套组织级的综合作战能力。
2- 工具层面,核心业务调优面对的是业务端到端全链路场景下的问题识别和优化,对于业务层面的交易链路发现和检测、综合业务拓扑、云内网络和数据中心物理网络的统一视图,在工具配套上有非常迫切要求,以避免出现问题黑盒,对于调优本身和未来的投产运维保障带来风险。
3- 服务层面,项目驱动的方式,面对行业级的趋势和诉求,在支撑范围和容量上存在短板,需要从可规模复制的维度上,定向沉淀和构建金融关键业务调优的专业服务能力。
- 点赞
- 收藏
- 关注作者
评论(0)