Kubernetes 迎来 11 周年,为了庆祝它的生日,我将为您提供一些开源工具,这些工具将帮助您制造混乱。混沌工程一部分是科学,一部分是计划,一部分是实验。它是在系统上进行实验的学科,旨在建立对系统在生产中承受动荡条件的能力的信心。
在开始分发礼物之前,在这篇介绍性文章中,我将解释混沌工程如何运作的基础知识。
如何开始使用混沌工程?
根据我的经验,开始混沌工程的最佳方法是采用以前在生产环境中发生的事件,并将其用作实验。使用您过去的数据,制定计划以类似的方式破坏您的系统,创建修复策略,并确认结果完全符合您的期望。如果您的计划失败,您将有一种新的实验方法,并朝着快速处理问题的新方法前进。
最重要的是,您可以随时记录所有内容,这意味着,随着时间的推移,您的整个系统将被完全记录在案,以便任何人都可以随叫随到,而不会有太多升级,并且每个人都可以在周末好好休息。
在混沌工程中您做什么?
混沌工程背后有一些关于这些实验如何运作的科学原理。我已经记录了一些步骤
- 定义稳态:使用监控工具收集关于您的系统在没有问题或事件时功能方面的外观的数据。
- 提出假设或使用以前的事件: 现在您已经定义了稳态,提出关于事件或中断期间会发生什么(或已经发生)的假设。使用此假设生成一系列关于可能发生什么以及如何解决问题的理论。然后您可以开始计划有目的地引起问题。
- 引入问题: 使用该计划来破坏您的系统并开始真实世界的测试。收集您损坏的指标状态,使用您计划的修复程序,并跟踪达到解决方案所需的时间。确保记录所有内容以供将来中断使用。
- 尝试反驳您自己的假设: 实验的最好部分是尝试反驳您认为或计划的内容。您想要创建一个不同的状态,看看您可以将其带到多远,并在系统中生成不同的稳态。
在另一个系统中生成损坏的变量之前,请确保在稳态下创建一个控制系统。这将使您更容易发现实验之前、期间和之后各种稳态的差异。
我需要什么来进行混沌工程?
开始混沌工程的最佳工具是
- 良好的文档实践
- 一个监控系统,用于捕获您的系统处于稳态和非稳态
- Grafana
- Prometheus
- 混沌工程工具
- Chaos Mesh
- Litmus
- 以及更多我将在未来的文章中介绍的内容
- 一个假设
- 一个计划
前进并破坏
现在您已经掌握了基础知识,是时候前进并安全地破坏您的系统了。我计划每年开始引起四次混乱,并朝着每月破坏的目标努力。
混沌工程是良好的实践,也是保持内部文档更新的好方法。此外,新的升级或应用程序部署随着时间的推移将更加顺利,并且您的日常 Kubernetes 管理工作将更加轻松。
评论已关闭。