2021年10月,中国人民银行等联合发布了《关于规范金融业开源技术应用与发展的意见》(银办发〔2021〕146 号),规范金融机构合理应用开源技术,提高应用水平和自主可控能力,促进开源技术健康可持续发展。前期,为助力成员单位做好开源技术应用与发展工作,北京金融科技产业联盟开源专委会组织了金融业开源技术应用、创新等方面的案例征集,现对部分优秀案例进行宣传,发挥先进典型示范引领作用。

【金融机构开源技术应用创新成果案例 第一期】

中国农业银行——异构金融云混沌工程实践方案

技术领域:混沌工程、云原生

技术产品:ChaosBlade、Litmus、ChaosMesh、Kubernetes

业务场景:PaaS应用基础云

一、案例背景

一、案例背景

中国农业银行秉承国家“十四五”规划,强化创新驱动发展,深化数字化转型,信息系统逐渐向分布式架构转型。但随着分布式架构的普及,以及微服务、云原生等技术的发展和应用,系统和应用架构日趋复杂,服务间依赖增多,调用链路增长。同时随着创新技术栈的引入及核心应用系统“云化”规模的日益庞大,一体化金融云底层基础设施和架构更加多样化,“一云多芯”及混布技术导致运维复杂度增加。如何通过科学的方法,更高效、智能的发现并解决系统架构、复杂类型基础设施、多可用区、应用运行等层面存在的问题,持续提升系统的稳定性和高可用能力,利用好一体化金融云“高性能、低成本、弹性伸缩”能力是当前存在的难点问题。

混沌工程可通过通过主动制造故障,验证系统面对不同压力的反应,识别并修复故障,以更复杂、更有预见性的手段提高技术架构弹性能能力,提高系统韧性。因此农业银行基于一体化金融云推进混沌工程工具研究和实践,实现软件定义故障,提升系统和应用韧性。

二、创新成效

二、创新成效

技术方案

混沌工程技术目前处于发展期,流行的几大开源混沌工具为ChaosBlade、ChaosMesh、Litmus、Kraken等,能够实现软件定义故障,在基础资源层,云原生层以及应用层提供不同的故障模拟能力。

农业银行实施过程如下:

① 混沌工程工具集横向对比及引入权限管控

② 构建混沌体系,适配全栈式异构金融云基础设施

③ 支持异构金融云故障流程编排能力

④ 多样化故障库及面向应用全生命周期的原子能力

⑤ 故障场景演练、挖掘系统风险

⑥ 戴明环加自动化、周期性红蓝攻防,核心运维能力锤炼及韧性提升

说明图示

异构金融云集群涉及PC服务器、虚拟机、物理机、容器、可信设备等多种底层设施,“一云多芯”架构,以及传统和创新技术栈混编环境,底层操作系统多样,以下是对异构金融云实施混沌工程的技术架构图。

技术创新

安全性方面,农业银行对混沌工具在金融云上的权限进行了管控,创新式地将Kubernetes Operator引入到混沌工具中,实现权限的细粒度控制,即沙箱环境与云平台环境的权限隔离,另外采用RBAC,实现应用系统级别沙箱环境间的权限隔离,做到了“一隔离,两最小化”。

功能方面,农业银行统一了调度方式,能够实现跨平台周期性编排和运行演练,适配全栈式异构金融云体系,包括多种云平台服务,商业化和开源以及创新技术栈混编环境,及混布的非容器化应用系统。

业务创新

一是开拓了新的业务场景,农业银行在PaaS应用基础云中引入混沌工程技术后,通过权限管理和分配,为PaaS云以及云上应用系统提供无侵入的故障演练服务,覆盖应用全生命周期,囊括项目开发、测试、运行、模块依赖、发布等各环节,提供了代码级故障、组件级故障、容器级故障、应用级故障、数据库故障、中间件故障、基础资源故障等故障演练场景。

二是优化预案和运维流程,农业银行结合混沌工具集提供的能力,针对金融云设计了“PaaS应急演练”故障场景体系,针对金融云核心组件、存储卷、基础设施、服务和应用等,进行了多维度、多场景的故障场景设计和混沌实验,验证了云环境的弹性扩展能力及稳定性,挖掘出多项架构和应用风险,在集群层面形成几十项演练样例demo及高可用专家库。

三、产业价值

三、产业价值

本案例针对全栈异构金融云构建了混沌工程体系,实现“软件定义故障”,激活了IT软硬件活力,适配主流操作系统、异构平台、“一云多芯”架构,以及传统和创新技术栈混编环境;实现一隔离,两最小化权限管控,“一隔离”将Kubernetes Operator引入到混沌工具中,自研实现权限的细粒度隔离,“两最小化”使用RBAC和Label选择器最小化权限和爆炸半径;将四类六种混沌工具引入到异构金融云环境中,解决了离线部署、内核及版本不兼容等若干问题,产出四类工具集横向对比报告;戴明环式自动化、周期性进行多维度多场景的红蓝攻防,锤炼核心运维能力及提升系统韧性,形成演练样例详细Demo和高可用场景库,并解决了若干系统及应用风险。

本文来源:开源专委会
投稿邮箱:News@bfia.org.cn