View a markdown version of this page

在整个组织中扩展混乱工程 - AWS 规范性指导

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在整个组织中扩展混乱工程

当您的组织采用混沌工程时,对其进行标准化和实施将带来挑战。在成熟的早期阶段,不同的团队可能会使用不同的工具和前几节中描述的混沌工程过程的变体。同时,尽管混沌工程具有潜在的好处,但有些团队可能根本不会优先考虑或采用混沌工程。以下各节为如何克服这些挑战提供了指导。

总体而言,你的混沌工程方法应设计为在集中领导和分散参与之间取得平衡。这种平衡有助于确保将混沌工程整合到开发流程中,并在整个组织中共享所学知识。

建立混沌工程实践

标准化混沌工程实践可以加快混沌工程的采用。跨团队共享从实验中学到的经验可以放大混沌工程投资的回报。

作为混沌工程实践的一部分,建立一个集中的卓越中心,或召集一组主题专家。作为一个小型的集中式职能,该团队可以在软件开发、基础架构、安全和业务团队中运作,并维护这些团队使用的标准。为简单起见,卓越中心被称为集中式实践团队,在本指南的其余部分中,应用混沌工程的小组被称为实践团队

集中式实践团队的作用

集中式实践团队负责在整个组织中开发和实施混沌工程实践。他们与实践团队密切合作,指导他们设计和进行实验,并确保实验对业务有价值。集中式实践团队还为开发、基础设施和安全团队提供指导和支持,帮助他们将混沌工程整合到开发流程中。

集中式混沌工程实践团队的主要职责包括以下内容:

  • En@@ able ment — 集中的混沌工程职能部门充当主持人,通过游戏日和研讨会介绍混沌工程的实践。他们指导团队进行混沌工程,包括选择故障情景、定义假设以及生成报告以与更广泛的组织共享。集中式实践团队应拥有培训材料,并努力提高练习队使用混沌工程的技能。

  • 咨询 — 集中式实践团队还可以发挥咨询作用,监督实践团队进行的实验。他们的经验和知识可以确保实验为业务带来价值,并且以安全的方式进行。同样,该团队可以监督实验的执行和汇报,为刚接触混沌工程的人提供指导。

  • 营销和价值跟踪 — 传达混沌工程的商业价值是此类计划成功的关键。每个参与混沌工程实验的团队都应从整个业务的实验中收集数据,并证明组织对混沌工程的投资的价值。这包括量化和庆祝每次实验期间避免的事故数量、实验失败后可能产生的停机时间,以及如果生产中出现故障情景对业务的总体影响。通过收集和集中来自各个团队的此类数据,并在整个组织中提供数据,集中式实践团队可以跟踪和影响在整个组织中采用混沌工程所产生的价值。

  • 标准 — 集中式实践团队应拥有并维护进行混沌实验的流程、规划和报告实验的模板以及用于进行实验的工具。

    中心团队应拥有并管理实验计划模板、实验报告模板、流程文档和支持材料。最佳实践文档和支持材料为实践团队提供了有关主题的指导,例如他们可以用来限制实验影响的护栏、何时在生产中进行实验,以及如何随着时间的推移发展混沌工程的使用。有关模板和输出的示例,请参阅附录

    集中式实践团队还应拥有进行实验的流程,包括沟通和上报,以及在实验之前或实验期间何时以及如何与组织中的其他团队沟通。该过程还应概述何时需要护栏。

    集中式实践团队还应选择并拥有用于进行混沌实验的核心工具(例如,诸如的工具 AWS FIS)。诸如负载生成工具之类的补充工具的选择和实施应由实践团队来决定。实践团队应该能够调整整体流程和工具,以最好地满足他们的需求。

练习队的作用

集中式团队负责推动整体混沌工程策略,而实践团队则参与该过程并拥有实验的开发和执行。这有助于确保实验与每种特定的产品或服务相关,并且所学知识是可操作的,可以应用于提高产品的可靠性和弹性。集中式实践团队充当组织混沌工程标准和流程的导师和所有者。但是,为了防止集中式团队成为瓶颈,各个练习队需要向中心实践学习,自己进行混沌实验。

建立实践社区

除了创建一个集中的团队外,我们还建议您建立一个由对混沌工程感兴趣的从业者组成的非正式社区。该社区提供了一个平台,用于在实践团队和更广泛的组织之间共享知识、最佳实践和经验。

实践社区可以由集中的混沌工程实践团队运营,但组织中的任何人都可以成为社区的一员。集中式团队可以利用实践社区来广播最新动态和来源学习成果,并从使用集中式团队管理的标准和流程的实践团队那里收集反馈。社区将充当反馈循环,向集中式团队通报混沌工程实践在整个实践团队中的有效性。然后,集中式实践团队可以调整其文档和支持工件,以最好地支持产品团队。

将混沌工程融入您的运营弹性中

混乱实验是您的企业为防止生产中发生事故而进行的投资。有必要确定企业在哪些方面可以从这项投资中获得最大的回报。该组织可以与集中的混沌工程实践团队合作,更新其标准,并确定哪些产品足够重要,需要进行混沌实验。

系统开发流程

混沌工程和混沌实验应作为应用程序生命周期的一部分反复执行。与团队定期进行灾难恢复测试的方式类似,他们应该在一年中持续定期地进行混乱实验和比赛日。这种方法可以改善组织对事件的预期、观察和响应方式。