Leia esse README em outras linguas.
Litmus é um conjunto de ferramentas para fazer engenharia do caos cloud-native. Litmus provê ferramentas para criar caos em Kubernetes para ajudar SREs a encontrar fraquezas nas suas publicações (deploys). SREs utilizam Litmus para rodar experimentos de caos inicialmente nos ambientes de homologação e eventualmente em produção para encontrar bugs e vulnerabilidades. Consertar essas fraquezas aumenta a resiliência do sistema.
Litmus utiliza uma abordagem cloud-native para criar, gerenciar e monitorar o caos. O caos é orquestrado utilizando os seguintes Kubernetes CRDs (Custom Resource Definitions):
- ChaosEngine: Um recurso para conectar uma aplicação ou um nodo Kubernetes a um ChaosExperiment. ChaosEngine é monitorado pelo Litmus Chaos-Operator que então invoca os Chaos-Experiments.
- ChaosExperiment: Um recurso para agrupar os parâmetros de configuração de um experimente de caos. Recursos ChaosExperiment são criados pelo operador quando experimentos são invocados pelo ChaosEngine.
- ChaosResult: Um recurso para armazenar os resultados de um experimento de caos. O Chaos-exporter lê os resultados e exporta as métricas para um servidor Prometheus configurado.
Experimentos Chaos são hospedados/armazenados em hub.litmuschaos.io. É um bug central onde os desenvolvedores da aplicação compartilham seus experimentos de caos para que seus usuário possam então utilizá-los para aumentar a resiliência de suas aplicações em produção.
- Para Desenvolvedores: Para utilizar experimentos de caos durante o desenvolvimento da aplicação como um extensão de testes de integração ou unitários.
- Para engenheiros de pipelines de integração contínua (CI): Para utilizar os experimentos de caos como um estágio do pipeline para encontrar bugs quando a aplicação está sujeita a encontrar caminhos de falha durante o pipeline.
- Para SREs: Para planejar e agendar experimentos de caos em uma aplicação e/ou sua infraestrutura. Essa prática identifica as fraquezas no sistema e aumenta sua resiliência.
Acesse os docs do Litmus Docs para aprender como começar.
Confira o Guia para Contribuição para o Chaos Hub
Confira quem está utilizando o Litmus Chaos
(Crie um PR para a página acima se você está utilizando Litmus nas suas práticas de engenharia de caos)
Algumasdas considerações que precisam ser feitas com o Litmus (como um framework de caos), são amplamente listadas aqui. Vários desses já estão sendo trabalhados como mencionado no ROADMAP. Para detalhes ou limitações acerca de experimentos específicos, confira a respectivo documentação do experimento
- O operador de caos litmus e os seus experimentos rodam como recursos Kubernetes em um cluster. Em casos de ambientes abertos, os recursos próprios e as imagens precisam ser armazenados on premise.
- Quando tentando utilizar experimentos específicos para uma plataforma (como aqueles para AWS, GCP cloud) os detalhes de acesso são passados através de Kubernetes secrets. Suporte para outros modos de gerenciamento de credenciais com o Litmus ainda está para ser testado/implementado.
- ALguns experimos de caos fazem uso da Docker API de dentro dos pods de eperimento, e portanto precisando que o socket do Docker esteja montado. A discrição do usuário é recomendada ao permitir que desenvolvedores/admins devops/SREs acessem/executem esses experimentos.
- Em casos (raros) onde experimentos de caos fazem uso de containers privilegiados, as políticas de segurança recomendadas serão documentadas.
Litmus é licenciado através da Apache License, Version 2.0. Veja LICENSE para o texto completo da licensa. Alguns dos projetos utilizados pelo projeto Litmus podem ter uma licença diferente, então, nesses casos, refira-se a cada licensa específica.
Litmus Chaos faz parte dos projetos CNCF.
A comunidade Litmus se encontra na terceira quarta-feira de todo mês, as 10:00PM IST/9.30 AM PST/
The Litmus community meets on the third wednesday of every month at 10:00PM IST/9.30 AM PST/1:30 PM Brasilia.
Recursos da comunidade:
- Slack da Comunidade
- Link para a reunião de Alinhamento
- Agenda e Notas da Reunião de alinhamento
- Canal do Youtube (demos, gravações das reuniões, encontros virtuais)
- Release Tracker
CNCF Landscape