混沌工程工具包

chaostoolkit的Python项目详细描述


混沌工具包-混沌工程的开放式api

versionlicense

生成状态codecov

downloadsDocker拉动python versions需求状态has wheel

混沌工具包是一个项目,其任务是为社区所需的各种形式的混沌工程工具提供免费、开放和社区驱动的工具包和api。

为什么是混沌工具箱?

混沌工具包有两个主要目的:

  • 提供一个完整的混沌工程实现,通过为应用该学科提供一个简单的起点,简化混沌工程的采用。
  • 与社区一起定义一个开放的api,以便任何混沌实验都可以通过与正在出现的许多商业、私有和开源混沌实现的集成来一致地执行。

混沌工具包

简化混沌工程的采用

首先,混沌工具箱的目的是使运行变得简单明了 对你的实时系统进行实验,以建立对其行为的信心并了解 潜在的弱点。

跟随 混沌工程的原理,混沌工具箱旨在成为将这些原理应用于你自己复杂的,甚至有时是混沌的系统的最简单的方法。

面向混沌工程的开放式api

其次,混沌工具包通过其json/yaml格式的实验定义,定义了一个到混沌工程的开放api。该工具包可以通过探测(在实验前后测量稳态)和操作(在实验期间改变真实世界的事件)扩展到与任意数量的商业、私有和开源混沌实现集成。

安装或升级

从软件包安装

一般来说,您可以如下安装:

$ pip install -U chaostoolkit

建议您创建一个python虚拟环境来运行您的混沌实验。有关安装chaostoolkit及其要求的完整说明,请参见安装文档

下载并运行捆绑包

在通过包安装时,您可以最大程度地控制要部署的内容, 您可能还对简单地向下加载一个独立的二进制文件感兴趣,该二进制文件可以 按原样运行。

从这里下载一份副本

无论何时发布新版本,只需再次下载其副本即可。

开始

一旦安装了chaos工具包,就可以通过它的简单命令行工具使用它。这个工具的主要工作是运行你的实验,然后 生成实验结果的报告,然后与您的团队共享讨论。

运行实验非常简单:

$ chaos run experiment.json

chaos工具包采用json格式的描述文件中定义的实验,用json编码(也支持yaml),并按顺序运行其步骤。这个实验描述文件的完整说明可以在主要项目文档中找到

混沌工具箱运行示例

扩展混沌工具箱

混沌工具箱播放您提供给它的实验描述。 实验由探针和动作组成(在实验过程中改变真实世界的事件)。我们一直在寻找社区的贡献和想法 当您通过Chaos工具箱将混沌实验集成到您自己独特的上下文和环境中时,您可能需要什么样的探测和操作。

如果您有一套新的调查和行动的想法,您想与大家分享,请首先考虑提出一张罚单,甚至加入我们的社区Slack来建议您的想法。

在实现方面,chaos工具包目前支持作为python函数、独立进程甚至远程http调用实现的探测和操作。只要您的扩展符合混沌工具包api,就可以在实验定义中指定自己的唯一扩展。

混沌工具包api的核心实现可以在chaostolkit lib项目中找到。

当前已知扩展名

以下免费开放源扩展可用于探测 和/或操作:

基础设施/平台故障注入:

应用程序故障注入:

可观测性:

参与进来!

混沌工具箱的任务是为混沌工程提供一个开放的api。因此,我们鼓励并欢迎您加入我们的开放社区Slack团队,与社区讨论和分享您的实验和需求。 您也可以使用stackoverflow询问有关使用 混沌工具箱或混沌工程。

如果您不想使用slack,那么我们欢迎在此repo上提出github问题,以解决有关chaos工具包的任何问题、请求或讨论。

最后,您还可以通过电子邮件联系@chaostolkit.org询问任何问题。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java集合属性值   java字符串==运算符是否比较引用?   java是否存在过太多的ListView或适配器?   json获取java中类路径中下载的文件   我可以用java代码解决数据库并发问题吗?   在多个线程中使用forEach()或使用forEach()和lambdas进行java集合迭代   java输出JFrame中的整个循环   java禁用高度详细的日志记录   java在没有特定属性的对象中访问模型的值   java Smack xmpp建立连接   处理过时域对象引起的并发问题的java策略(Grails/GORM/Hibernate)   java从ObservableList中提取元素   使用图像进行java相似图像搜索   java ListView和图像:我快疯了   在Java中,如何从毫秒时间戳中提取一天的周期?   java我需要这样的设计,但我面临两个问题   java如何获取JGoodies FormLayout中的单元格大小   Spring引导生成的java War文件未部署到Weblogic 12c