第8章 资本一号公司采用混沌工程及其演变
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
混沌工程 提供了一种接受失败并从失败中了解系统弱点的观点。在云原生环境中,这种开发软件的方式不容忽视。云原生系统接受故障随时可能发生的事实,我们将需要设计和构建能够承受全方位故障的稳健系统。与监管较少的行业相比, 金融服务领域的软件需要考虑的复杂性要多一些。在系统发生故障时,单亲家庭可能正在为自己的第一套住房申请贷款,另一位客户可能正在尝试使用移动设备转账,学生可能正在申请第一张信用卡以开始建立信用记录。根据故障的大小,影响范围从轻微的恼怒到对品牌的痛恨,对金融机构的声誉造成负面影响,并可能影响业务。
此外,还有与银行如何开展业务相关的管理机构。需要维护必要的审计跟踪,并定期提交给金融监管机构,包括货币监理署 (OCC)、消费者金融保护局 (CFPB)、FinCEN、联邦贸易委员会和司法部。这样做的结果是,生产环境中的任何变化都必须有明确的审计线索,说明原因、方式和时间。银行在收集并向有关部门提交这些证据时,必须采用必要的管理流程和工具。该流程涉及法律问题,不得受到混沌工程等工作或工具的影响。
另一方面,随着数字银行和新银行的兴起、1客户与资金的互动方式正在发生变化。由区块链、人工智能、机器学习和商业智能驱动的金融能力暴露出了对云基础设施所提供的高健壮性和可扩展性系统的需求。这推动了软件开发方法的演变,并需要在工作方式中融入正确的工程实践。自动化部署提高了功能开发速度,不可变基础架构确保部署的服务器不会被更改,同样,系统也需要不断验证其可靠性。这为混沌工程提供了一个切入点。有多种入门方法。对于某些公司来说,它可能是被动的,而对于其他公司来说,它可能是由内而外的,建立在公司的基因中。本章将介绍Capital One是如何接受并发展混沌工程学的,并讨论在这种尝试中必须考虑的因素;我们将回顾在设计金融科技实验时需要注意的事项,工具如何在创建必要的审计跟踪中发挥重要作用,以及在运行实验时需要捕捉的必要指标。
Capital One 案例研究
Capital One 是美国最大的直销银行2Capital One 是美国最大的直销银行,以金融服务业的数据和技术先驱而闻名,已进行了七年的大规模数字化转型。他们解决了美国企业最关心的难题:如何利用数字技术、实时分析和机器学习来改变业务和客户体验。他们通过构建云原生应用程序和构建工具,全面重塑了自己的人才、文化和技术基础设施,以烘托出复杂的工程实践,如 CI/CD 管道、内置合规和法规标准的模板化框架、秘密管理和混沌工程。
盲点弹性测试
在 Cloud 之旅全面启动之前,Capital One 就已经开始了混沌 Engineering 的实践。其中一个服务于移动和网络门户的核心 API 平台在还托管在物理数据中心时就采用了这种做法和思维方式。在与Capital One的技术负责人Geetha Gopal的交谈中 ,实施混沌工程计划的动机始于充分了解可能影响服务正常运行时间的所有因素--内部、外部、应用程序、硬件、集成点。他们称之为 "盲目弹性测试"。2013 年,他们成立了两个负责协调的小组:中断小组和响应小组。
有趣的是,这两个小组都不是支持核心 API 平台的应用团队。网络安全和监控团队也受邀参加这些演习,演习定期举行,每月一次或每次发布后举行。这样做的目的是确保客观地完成和观察这些演练。他们首先列出了一份约 25 项实验的清单。破坏团队随机挑选两个并执行,而响应团队只负责监控、响应并记录结果。实验使用多个产生负载的合成账户从 ...