Chaos Engineering Framework across Private / Public / Hybrid Cloud Environments
Kallisti is a decentralized control plane to test the resiliency of cloud-native applications by helping you define, execute and manage the chaos experiments. It abstracts chaos testing capabilities and credential handlers as steps/modules, allowing the flexible design of chaos testing scenarios in a secure manner.
Project Kallisti is the open-source fork of a chaos engineering framework that originally started within JPMorgan Chase in 2018. Today, Kallisti is used by a number of applications for chaos testing within JPMorgan Chase. It is now the upstream source of our internal chaos engine and continues to be actively maintained. Keep an eye on our roadmap for more to come!
Kallisti ships with a number of chaos injection capabilities in various modules based on the different Chaostoolkit libraries. Additional chaos injection can also be developed and imported into Kallisti. Check out the customization page for more details.
Component | Module | Capabilities |
---|---|---|
Kubernetes / AWS EKS | k8s | Pod / replicaset termination, network drop and more. |
Istio | istio | Envoy's HTTP fault / latency filters. |
AWS | aws | EC2/ECS/RDS/ELB termination, Lambda restriction and more. |
Cloud Foundry | cf | Container / service termination, network drop and more. |
Prometheus | prom | Metrics data retrieval with PromQL. |
Common | cm | HTTP probe/requests and wait. |
- Concept: overview and concept of Kallisti.
- Road Map: what is planned for Kallisti in future.
- Contribution to Kallisti: guideline for contribution.
- How to Use Kallisti: deployment to chaos test execution.
- Chaos Modules: chaos injection modules and capabilities.
- Credentials for Chaos Steps: credentials for chaos testing steps.
- Access Control: controlling the access to Kallisti API through OAuth2/OIDC integration (via JWT tokens) or any other authentication mechanism through a custom configuration.
- Customization: custom modules, credentials, hooks and more.
- Result Validation: result of each step in a chaos experiment can be verified to specific values or range expected.
- Experiment Templating: experiment definition can be interpolated with parameters.
- Authentication for HTTP steps: auth for HTTP request steps.
- Scheduling: recurring experiments with cron expression.
- Reporting: xml export through API.