Metadata-Version: 2.0
Name: chaostoolkit
Version: 0.2.2
Summary: Chaos engineering toolkit
Home-page: http://chaostoolkit.org
Author: chaostoolkit Team
Author-email: sh@defuze.org
License: Apache License Version 2.0
Platform: UNKNOWN
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: Freely Distributable
Classifier: Operating System :: OS Independent
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: Implementation
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Topic :: System :: Distributed Computing
Requires-Python: >=3.5.*
Requires-Dist: chaostoolkit-lib
Requires-Dist: click
Requires-Dist: logzero
Requires-Dist: pycodestyle
Requires-Dist: requests

# chaostoolkit

[![Build Status](https://travis-ci.org/chaostoolkit/chaostoolkit.svg?branch=master)](https://travis-ci.org/chaostoolkit/chaostoolkit)
[![Docker Pulls](https://img.shields.io/docker/pulls/chaostoolkit/chaostoolkit.svg)](https://hub.docker.com/r/chaostoolkit/chaostoolkit/)
[![Python versions](https://img.shields.io/pypi/pyversions/chaostoolkit.svg)](https://www.python.org/)
[![Requirements Status](https://requires.io/github/chaostoolkit/chaostoolkit/requirements.svg?branch=master)](https://requires.io/github/chaostoolkit/chaostoolkit/requirements/?branch=master)
[![Has wheel](https://img.shields.io/pypi/wheel/chaostoolkit.svg)](http://pythonwheels.com/)

A chaos engineering toolkit for your system and microservices.

## Context and Purpose

The chaostoolkit aims at making it simple and straightforward to run
experiments against your live system to observe its behavior and learn about
potential weaknesses.

The idea is that your system is complex and no matter how well you planned
 and designed, it would be challenging to claim anyone knows how it would 
 react under certain conditions.

Following in the steps of giants like Netflix or LinkedIn, we believe in the
[principles of chaos engineering][principles]. Creating the conditions to
stress your system should help your team become better at handling those
situations while allowing your system to evolve nicely.

[principles]: http://principlesofchaos.org/

The chaostoolkit is, as its name implies, a toolkit for you to run those
experiments at the platform and/or application level. For instance, by killing
a microservice, your experiment could probe the system for other services and
see the impact of tsuch a failure.

The goal is not to break things, though this is one way to run an experiment,
but to create the conditions of stress that can make you learn from your system.

## Getting Started

chaostoolkit is a command line tool that runs your experiment, then 
generates a report to share with your team for discussion.

Running an experiment is as simple as:

```
$ chaos run experiment.json
```

chaostoolkit takes your experiment as a description file, encoded in JSON, and
runs its steps sequentially.

Please, read the main documentation to [install chaostoolkit][install] and 
learn more about it.

[install]: https://chaostoolkit.github.io/chaostoolkit/usage/install/

## Extend

The Chaos Toolkit command plays the experiment you feed it. Experiments are
made of probes and actions which you can implement yourself whenever existing
ones do not fit the bill.

chaostoolkit supports probes and actions implemented as Python function,
processes or remote HTTP calls. As long as they obey the Chaos Toolkit API,
they are good to be applied as part of your experiment.

## Learn More

chaostoolkit is open and [you are more than welcome][join] to discuss and share
your experiments with its community.

[join]: https://join.chaostoolkit.org/


