All Projects → chaostoolkit → Chaostoolkit

chaostoolkit / Chaostoolkit

Licence: apache-2.0
Chaos Engineering Experiments Automation & Orchestration

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Chaostoolkit

Simmy
Simmy is a chaos-engineering and fault-injection tool, integrating with the Polly resilience project for .NET
Stars: ✭ 313 (-74%)
Mutual labels:  resiliency, chaos-engineering
kraken
Chaos and resiliency testing tool for Kubernetes and OpenShift
Stars: ✭ 161 (-86.63%)
Mutual labels:  resiliency, chaos-engineering
Go Resiliency
Resiliency patterns for golang
Stars: ✭ 1,155 (-4.07%)
Mutual labels:  resiliency
Php codesniffer
PHP_CodeSniffer is a set of two PHP scripts; the main phpcs script that tokenizes PHP, JavaScript and CSS files to detect violations of a defined coding standard, and a second phpcbf script to automatically correct coding standard violations. PHP_CodeSniffer is an essential development tool that ensures your code remains clean and consistent.
Stars: ✭ 9,004 (+647.84%)
Mutual labels:  automation
Chaostoolkit Aws
Chaos Toolkit Extension for AWS
Stars: ✭ 72 (-94.02%)
Mutual labels:  chaos-engineering
Cookiecutter Django Ansible
Powered by Cookiecutter, Cookiecutter Django Ansible is a framework for jumpstarting an ansible project for provisioning a server that is ready for your cookiecutter-django application.
Stars: ✭ 69 (-94.27%)
Mutual labels:  automation
Reportportal
Main Repository. Report Portal starts here - see readme below.
Stars: ✭ 1,175 (-2.41%)
Mutual labels:  automation
Autotrace
Runs a process, and gives you the output along with other telemetry on the process, all in one terminal window.
Stars: ✭ 68 (-94.35%)
Mutual labels:  automation
Tortipi
Tor based Raspberry π hotspot
Stars: ✭ 76 (-93.69%)
Mutual labels:  automation
Cisco ios
Ansible Network Cisco IOS Provider Role
Stars: ✭ 72 (-94.02%)
Mutual labels:  automation
Ansible For Network Engineers
Репозиторий книги "Ansible для сетевых инженеров". Книга в процессе переноса на readthedocs и обновления содержания на Ansible 2.9!
Stars: ✭ 74 (-93.85%)
Mutual labels:  automation
Please
please is semver release made easy
Stars: ✭ 72 (-94.02%)
Mutual labels:  automation
Nativescript Dev Appium
A package to help with writing and executing e2e Appium tests in NativeScript apps
Stars: ✭ 69 (-94.27%)
Mutual labels:  automation
Server Qa Checks
A bunch of QA checks to run against one or more servers to make sure they are built to a specific standard.
Stars: ✭ 72 (-94.02%)
Mutual labels:  automation
Api Store
Contains all the public APIs listed in Phantombuster's API store. Pull requests welcome!
Stars: ✭ 69 (-94.27%)
Mutual labels:  automation
Gso
🏃 Google StackOverflow in Vim. Copy-pastes the code directly in your script.
Stars: ✭ 75 (-93.77%)
Mutual labels:  automation
Terraform Provider Aiven
Terraform Aiven provider
Stars: ✭ 68 (-94.35%)
Mutual labels:  automation
Bee
Bee is a tool for helping develop with beego app framework.
Stars: ✭ 1,165 (-3.24%)
Mutual labels:  automation
Poco
A cross-engine test automation framework based on UI inspection
Stars: ✭ 1,177 (-2.24%)
Mutual labels:  automation
Ps4remoteplayinterceptor
A small .NET library to intercept and inject controls on PS4 Remote Play for Windows
Stars: ✭ 76 (-93.69%)
Mutual labels:  automation

Chaos Toolkit - An Open API for Chaos Engineering

Version License

Build

Downloads Docker Pulls Python versions Requirements Status Has wheel

Chaos Toolkit is a project whose mission is to provide a free, open and community-driven toolkit and API to all the various forms of chaos engineering tools that the community needs.

Why the Chaos Toolkit?

The Chaos Toolkit has two main purposes:

  • To provide a full chaos engineering implementation that simplifies the adoption of chaos engineering by providing an easy starting point for applying the discipline.
  • To define an open API with the community so that any chaos experiment can be executed consistently using integrations with the many commercial, private and open source chaos implementations that are emerging.

Chaos Toolkit

Simplifying Adoption of Chaos Engineering

Firstly the Chaos Toolkit aims to make it simple and straightforward to run experiments against your live system to build confidence in its behavior and learn about potential weaknesses.

Following the principles of chaos engineering, the Chaos Toolkit aims to be the easiest way to apply these principles to your own complex, and even sometimes chaotic, systems.

An Open API to Chaos Engineering

Secondly the Chaos Toolkit defines an Open API to Chaos Engineering through it's JSON/YAML-format experiment definition. The toolkit can be extended to integrate with any number of commercial, private and open source chaos implementations through probes (to measure steady-state before and after an experiment) and actions (to vary real-world events during an experiment).

Install or Upgrade

Install from Packages

Generally speaking, you can install it as follows:

$ pip install -U chaostoolkit

It is recommended that you create a Python virtual environment for running your chaos experiments. Full instructions for installing chaostoolkit and its requirements are available in the installation documentation.

Download and run the bundle

While installing via packages gives you the most control over what to deploy, you may also be interested in simply dowloading a standalone binary that can be run as-is.

Download a copy from here.

Whenever a new version is released, just download its copy again.

Getting Started

Once you have installed the Chaos Toolkit you can use it through its simple command line tool. The tool's main job is to run your experiment and then generate a report of the findings from the experiment to then share with your team for discussion.

Running an experiment is as simple as:

$ chaos run experiment.json

The Chaos Toolkit takes experiments defined in a JSON format description file, encoded in JSON (YAML is also supported), and runs its steps sequentially. A full specifiction of this experiment description file can be found in the main project documentation.

Chaos Toolkit Run Sample

Extending the Chaos Toolkit

The Chaos Toolkit plays the experiment description that you provide to it. Experiments are made up of probes and actions (to vary real-world events during an experiment). We are always looking for community contribution and ideas around what probes and actions you might need as you integrate chaos experiments through the Chaos Toolkit, into your own unique context and evironment.

If you have an idea for a new set of probes and actions that you'd like to share, please first consider raising a ticket or even joining our community slack to suggest your idea.

In terms of implementation, the Chaos Toolkit currently supports probes and actions implemented as Python functions, separate processes or even remote HTTP calls. As long as your extensions conform to the Chaos Toolkit API you can then specify your own unique extensions in your experiment definitions.

The core implementation of the Chaos Toolkit API can be found in the chaostoolkit-lib project.

Current Known Extensions

The Chaos Toolkit is made of many extensions that you can simply download and add to your environment to use.

Get involved!

Chaos Toolkit's mission is to provide an open API to chaos engineering in all its forms. As such, we encourage and welcome you to join our open community Slack team to discuss and share your experiments and needs with the community. You can also use StackOverflow to ask any questions regarding using the Chaos Toolkit or Chaos Engineering.

If you'd prefer not to use Slack then we welcome the raising of GitHub issues on this repo for any questions, requests, or discussions around the Chaos Toolkit.

Finally you can always email [email protected] with any questions as well.

Contribute

Contributors to this project are welcome as this is an open-source effort that seeks discussions and continuous improvement.

From a code perspective, if you wish to contribute, you will need to run a Python 3.5+ environment. Then, fork this repository and submit a PR. The project cares for code readability and checks the code style to match best practices defined in PEP8. Please also make sure you provide tests whenever you submit a PR so we keep the code reliable.

The Chaos Toolkit projects require all contributors must sign a Developer Certificate of Origin on each commit they would like to merge into the master branch of the repository. Please, make sure you can abide by the rules of the DCO before submitting a PR.

Develop

If you wish to develop on this project, make sure to install the development dependencies. But first, create a virtual environment and then install those dependencies.

$ pip install -r requirements-dev.txt -r requirements.txt

Then, point your environment to this directory:

$ pip install -e .

Now, you can edit the files and they will be automatically be seen by your environment, even when running from the chaos command locally.

Test

To run the tests for the project execute the following:

$ pytest
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].