天天看点

技术应用 | 借“混沌工程”东风,实现云系统稳定性内生的新探索

作者:金融电子化

文 / 中国国际金融股份有限公司信息技术部 张晶 张力 鲁非 史沛轩

金融科技发展迅猛,中国国际金融股份有限公司(简称中金公司)顺势而为,业务系统逐步上云。而上云使得IT基础设施和业务系统的复杂性日益增加,不可预见的用户行为和事件交织,对系统、应用架构的可靠性提出了更高要求。为此,中金公司基于混沌工程思想,结合苍穹云环境特点,搭建应用韧性管理混沌工程平台——悟空,进行云环境混沌实验及系统常态化故障演练,积极修复通过混沌实验发现的问题,稳步提升云环境中系统故障免疫力,实现云系统稳定安全内生。

技术应用 | 借“混沌工程”东风,实现云系统稳定性内生的新探索

中国国际金融股份有限公司 信息技术部 张晶

新态势:“数字金融时代”带来的不确定性

互联网金融时代下,金融产品和服务模式不断创新,交易量大幅攀升。面对互联网金融的全新发展态势,传统的单体IT架构弊端暴露愈演愈烈,为了实现数字化转型目标,业界广泛应用云计算、分布式等新技术,构建分布式架构和运维体系,以支撑金融业务的快速发展。

1.交易系统稳定性要求提升。现代证券行业交易活动频繁,交易并发量高、涉及资金规模巨大、交易时间段集中,交易处理时效性要求极高,因此证券公司对交易系统的可用性、响应率等指标有着十分严格的要求,为将客户满意度维持到可接受的水平,运维团队需要严格遵守监管法规,全力以赴监控业务应用运行状态,应对各种异常或中断事件。

2.信息技术应用能力要求提升。以人工智能、区块链、云计算、大数据等为代表的数字技术的创新发展给证券行业引入了新的产业元素、服务业态和商业模式,在拓宽证券行业业务边界的同时,也为运维团队带来的新的压力。对此,运维团队需要不断学习新的知识,掌握新的技能,面对新的场景,不断开展各种验证、升级、迁移操作,避免出现操作失误,引发系统对外服务异常。

3.行业监管要求提升。大陆证券行业目前正处于向数字化转型阶段,证券行业发展面临重要机遇期,证券公司需要不断为客户提供多样化、差异化的金融产品以应对不断加剧的同业竞争。证券行业利用数字技术对投资、交易、风控等全流程进行变革,信息技术投入的重点转变为强化现代科技在投资、顾问、产品、合规、风控、信用等证券领域的深度应用。业务全面数字化意味着需要投入更多的应用系统,建立更复杂的数据逻辑,保持更高的系统安全性和稳定性要求。对此,运维团队必须采取更新的运维思想,更多的IT投入,构建新型的运维能力,以响应数字化转型带来的挑战。

中金公司搭建的应用韧性管理混沌工程平台——悟空,实现了云系统稳定性内生,有效助力解决生产事件根因难定位、非功能测试覆盖范围不足、业务系统竖井式结构风险难以预测、应急能力验证困难、全球化业务网络可用性存疑等问题。同时,悟空混沌工程平台对加速信创改造布局具有重要意义。

新方向:“悟空”应用韧性管理混沌工程平台建设

中金公司应用韧性管理混沌工程平台,采用容器化封装,以容器为基础,形成代码和组件重用,提高整体开发水平,简化平台维护。平台分为多个系统服务(微服务),主要包括数据端、服务端、NoSQL端、数据端、Agent端、配置端、应用端、采集端、认证端、注册端、网关端、客户端等。

参考中国信通院《分布式系统稳定性建设指南》《混沌工程平台分级能力要求》标准内容,根据《证券公司网络和信息安全三年提升计划(2023—2025)》要求,中金公司积极运用混沌工程开展和实施工作,搭建的应用韧性管理混沌工程平台基于四层设计,如图1所示。

技术应用 | 借“混沌工程”东风,实现云系统稳定性内生的新探索

图1 “悟空”应用韧性管理混沌工程平台架构

基础服务层:以IDC和苍穹云的基础设施及硬件资源为底座支撑;抽取一系列公共业务能力,形成混沌工程管理平台的架构基座,提供统一鉴权、多租户、授权机制、安全审计以及一系列服务中心等通用能力。

核心服务层:以故障注入能力为核心功能,形成平台核心服务层,包括核心原子故障注入能力、实验场景管理、实验探针管理,以及实验资源管理。平台基于多种架构并存,兼容虚拟机、容器、物理机、自主可控服务器,实现统一的封装,聚焦故障实施内容,忽略底层差异。

实验管理层:包含实验管理、实验观测及流量管理,支撑混沌工程的规模化和标准化推广,提升混沌工程平台价值。实验管理包含实验计划、实验环境、实验结果等管理;实验观测部分提供混沌实验全流程的可视化;流量管理支持混沌工程在各种环境下的流量注入。

三方对接层:应用韧性管理混沌工程平台提供多种标准开放式接口,计划对接CMDB、苍穹云管平台、监控平台、CI/CD等内部系统,目前主要应用在运维体系中。

新探索:借混沌工程实现云系统稳定性内生

中金公司以苍穹云作为混沌工程实验对象,从应用竖井结构和生命周期两个维度进行混沌实验。中金苍穹云是全球化部署的云平台,如图2所示,纳管了境内外的基础设施资源,主要涉及算力、存储、网络、数据库、中间件等,为北京、上海、深圳、香港等地的数据中心提供业务上云所需的全栈基础设施能力。

技术应用 | 借“混沌工程”东风,实现云系统稳定性内生的新探索

图2 中金苍穹架构图

通过苍穹云的建设,中金公司全面实现云资源流程化,通过自动化建设,保障资源T+0交付,极大地提升云原生和传统项目上线速度。苍穹云为公司部门业务系统提供基础设施资源,有效支撑了业务系统的敏捷交付与稳定运行。

1.实践场景:业务系统竖井结构全面评估。业务系统稳定对外提供服务,需要借助稳定的主机和网络设备、主机系统、苍穹云底座和云资源池以及实例和云服务等。应用上云对稳定性提出了更高的要求,任一组件的异常都会对业务系统稳定性运行带来隐患,甚至产生重大影响。

中金公司基于悟空平台,从业务系统出发,通过竖井式结构逐层分析,对ARM和x86设备层、操作系统层、云底座和云资源层、云服务实例层、云服务组合层,开展混沌实验,进行全面评估。如图3-a业务系统竖井评估模块所示,从实验设计、稳态指标定义、实验环境准备、实验实施、实验报告确认等全流程,对业务系统物理架构和技术架构两个维度进行分析,验证业务系统运行竖井结构稳定性,严格把控实验细节,保障实验质量。

技术应用 | 借“混沌工程”东风,实现云系统稳定性内生的新探索

图3 混沌实验实践场景图

2.实践场景:真实事件应急演练检验应急处置能力。根据应急演练方案中预设的故障场景,混沌工程在演练中自动注入真实故障,以检验监控系统发现能力。同时应急团队快速响应,按照应急预案完成应急处置,检验应急团队处置能力和预案可用性,如图3-b应急处置能力模块所示。

各业务平台可定制演练计划,依靠混沌工程平台进行计划性和非计划性演练,检验开发测试、运维团队的应急处置能力、问题发现能力,验证应急整体的执行方案以及监控的覆盖程度,验证各个条线团队的应急处置流程。此外,基于混沌工程平台场景设计可定期安排应急演练计划,实现应急演练周期自动化进行,记录演练过程的应用运行状态并生成总结报告,形成正向反馈机制。

3.实践场景:业务系统上线质量检验。从业务需求角度出发,基于CI/CD流水线的业务上线活动分为开发和检验两部分。开发人员遵从中金公司开发规范完成应用设计开发过程,检验人员采用传统检验和混沌工程质量检验方法,设计检验用例完成应用功能和非功能验证,使应用进入到待上线阶段。

基于混沌工程的非功能性检验活动根据系统的部署架构设计混沌实验,如图3-c上线质量检测模块所示。在CI/CD流水线业务系统上线前增加混沌工程质量检测节点,由混沌工程平台探测CI/CD待办任务,混沌实验针对待上线系统的各组件确定故障因子和检测内容,完成高可用、弹性、自愈等非功能性测试,并对待上线应用完成评价,出具稳定性报告,提示风险点,提出优化建议,实现上线质量检验。

4.实践场景:故障复现辅助锁定根因优化应急预案。真实故障生产事件发生时,运维团队以快速恢复业务为第一目标,然而以快速恢复业务为目标处置生产事件,会导致较多事件问题根因难以锁定的情况。通过混沌工程平台与监控系统和自动化运维系统进行对接,可在故障处理完成后进行根因分析,如图3-d根因分析模块所示。

根因分析以混沌实验平台的故障注入为基本能力,通过在测试环境完成生产故障复现,为生产故障的根因定位提供环境和可能性。运维团队提交问题单,根据问题现象设计混沌实验,通过最小爆炸半径控制,重复实验逐步缩小问题范围完成问题确认,设计修复和强化方案并通过混沌实验再次确认问题解决是否完善,以此解决问题根因,在生产环境同类问题后可快速验证,提高应用的稳定性。

新经验:从混沌工程实践中汲取经验

通过混沌工程平台多种的场景类实验,中金公司混沌工程项目团队从中汲取了丰富经验。

增强团队信创稳定性信心:通过FMEA(失效模式和影响分析)定义混沌实验从故障严重程度、发生频率等维度识别故障致命度,根据FMEA的推荐验证业务系统在ARM和x86混合架构中的稳定性。

生产故障复现辅助查找根因:基于余弦相似度算法,对比原指标图像与复现指标图像的相似关系,确定故障复现实验与生产环境中所发生故障的相关程度,同时限制故障复现实验的爆炸半径,确保复现计算不受其他因素干扰,完成生产故障复现辅助根因定位。

实战应急验证应急处置能力:基于混沌工程的故障注入能力,引发系统异常状态,进而验证监控告警平台对故障采集的有效性和准确性,产生真实事件告警,验证应急团队响应能力与预案执行效果,有效提高应急工作效率,发现应急工作中的隐患。

上线质量门禁,有效提升系统可用性:接入CI/CD流水线,在提测和投产阶段增加质量检测节点,批量自动化执行演练对象所需检验的故障场景,识别投产阶段质量风险,有效降低系统上线后由非功能问题引起的事件。

验证业务系统竖井结构可用性:业务系统可用性是从物理设备到应用等各层级可用性的综合数值,每一层面组件出现故障都会对业务系统可用性产生不可预知的影响。通过对业务系统的竖井式结构的全面评估,将故障对业务系统的影响程度和范围从未知变为已知。

全球性业务可用性验证:全球化业务的可用性主要依赖全球多个IDC间网络互联,因此网络可用性是IDC可用性和业务可用性的关键因素。通过对网络高可用、延时、闪断等风险进行检测,针对发现的问题点进行配置调整修复,提升了网络可用性。

通过对实践探索的归纳总结,中金公司混沌工程项目成功获得中国信通院·稳定性保障实验室第二届“云系统稳定安全运行优秀案例”殊荣,为行业混沌工程应用提供了宝贵的经验参考。

再展望:扩大混沌工程实践范围

目前应用系统架构正在从单体应用向云原生应用转变,传统运维面临两套不同系统构架的挑战,需要以不同的思路完成日益繁重的运维工作。借混沌工程平台持续检验稳定性保障方案的有效性,使大部分威胁与风险都能够通过系统自身的能力化解,从而降低系统运行过程中的维护压力,提升系统持续服务交付能力,保障业务活动持续运行是切实可行一套方法。

当前,混沌实验前的系统分析和场景设计对人员的专业知识要求较高,实验需要专业的混沌实验专家参与。未来,中金公司混沌工程计划针对不同的组件、服务等,提供内置的实验场景模板,为各应用操作人员提供体检套餐服务,以方便混沌工程规模化的推广和使用。

(此文刊发于《金融电子化》2024年3月上半月刊)

继续阅读