Skip to content

Latest commit

 

History

History
125 lines (82 loc) · 10.6 KB

File metadata and controls

125 lines (82 loc) · 10.6 KB

LitmusChaos

Litmus

Cloud-Native Chaos Engineering

Slack Channel CircleCI Docker Pulls GitHub stars GitHub issues Twitter Follow CII Best Practices BCH compliance FOSSA Status YouTube Channel



🇰🇷 🇨🇳 🇧🇷 🇮🇳 🇪🇸

Descripción general

LitmusChaos es una plataforma de código abierto de Ingeniería del Caos que permite a los equipos identificar debilidades y posibles interrupciones en las infraestructuras mediante la inducción de pruebas de caos de forma controlada. Desarrolladores y SRE pueden practicar la Ingeniería del Caos con LitmusChaos, ya que es fácil de usar, se basa en principios modernos de Ingeniería del Caos y cuenta con la colaboración de la comunidad. Es 100% de código abierto y un proyecto CNCF.

Litmus parte de un enfoque centrado en la nube para crear, administrar y monitorear experimentos de caos. Éste se orquesta usando la siguiente Definición de Recursos Personalizados de Kubernetes.

  • Plano de Control Caos: Una herramienta centralizada de gestión del caos llamada chaos-center, que ayuda a construir, programar y visualizar los flujos de trabajo del caos de Litmus.

  • Servicios del plano de ejecución del caos: Está compuesto por un agente de caos y múltiples operadores que ejecutan y supervisan el experimento dentro de un entorno de Kubernetes objetivo definido.

architecture summary

El nucleo de la plataforma se encuentran los siguientes recursos personalizados del caos:

  • Experimento del caos: Un recurso para agrupar los parámetros de configuración de una falla específica. Los CRs de ChaosExperiment son básicamente plantillas instalables que describen la biblioteca que ejecuta la falla, indican los permisos necesarios para ejecutarla y los valores predeterminados con los que funcionará. A través de ChaosExperiment, Litmus admite BYOC (bring-your-own-chaos), lo que facilita la integración (opcional) de herramientas de terceros para realizar la inyección de fallas.

  • Chaos Engine: Un recurso para vincular una carga de trabajo/servicio, un nodo o un componente de infraestructura de una aplicación Kubernetes a una falla descrita por ChaosExperiment. También proporciona opciones para ajustar las propiedades de ejecución y especificar las restricciones de validación de estado estable mediante "sondas". ChaosEngine es supervisado por Chaos-Operator, que lo reconcilia (activa la ejecución del experimento) mediante ejecutores.

  • Resultado Chaos: Un recurso para almacenar los resultados de la ejecución del experimento. Proporciona detalles sobre el éxito de cada restricción de validación, el estado de reversión del fallo y un veredicto. El exportador de Chaos lee los resultados y expone la información como métricas de Prometheus. Los resultados de Chaos son especialmente útiles durante las ejecuciones automatizadas.

Los Experimentos Chaos están alojados en hub.litmuschaos.io. Es un hub centralizado en el que los desarrolladores o proveedores de la aplicación pueden mostrar sus Experimentos Chaos de manera que sus usuarios puedan utilizarlos para incrementar la resiliencia de la aplicación en producción.

Casos de uso

  • Para desarrolladores: Correr Experimentos Chaos durante el desarrollo de la aplicación como extensión de los test unitarios o de los test de integración.
  • Contrución y deploy CI/CD pipelines: Correr Expirementos Chaos como una fase de la pipeline para encontrar bugs cuando se somete a la aplicación a rutas de fallo en la pipeline.
  • Para SRE: Planificar y programar Experimentos Chaos en la aplicación o en la infraestructura. Esta práctica identifica las debilidades en el sistema e incrementa su resiliencia.

Empezando con Litmus

Para comenzar, consulte la Litmus Docs y en especifico la selecion de instalación de Iniciar con Litmus page.

Contribuir al Hub de Chaos

Revisa la Guía para contribuir al Hub de Chaos .

Adoptadores

Revisa los Adoptadores de LitmusChaos

(Envía una PR a la página de arriba si estás usando Litmus en tu práctica de Chaos Engineering)

Consideraciones que tener en cuenta

A continuación se enumeran algunas consideraciones que se deben tener en cuenta sobre Litmus como framework de Chaos. Muchas de ellas ya están siendo trabajadas como se menciona en ROADMAP. Para detalles o limitaciones sobre experimentos específicos, se debe consultar la documentación de los experimentos respectiva.

  • El Operador Chaos Litmus y los Experimentos Chaos corren como recursos de Kubernetes en un clúster. En caso de entornos airgapeados los recursos Chaos personalizaos y las imágenes debe ser alojados en local.
  • Cuando se intenta ejecutar Experimentos Chaos en una plataforma concreta (como AWS o el cloud de GCP) los detalles de acceso se pasan como secretos de Kubernetes. El soporte para otros modos de gestión secreta aún no se han testeado o implementado.
  • Algunos Experimentos Chaos hacen uso de la api de docker desde el interior del experimento, por lo que requieren el socket de docker para montarse. Se recomienda permitir el acceso a desarrolladores, devops y SRE para correr estos experimentos.
  • En casos (raros) en que los Experimentos Chaos hacen uso de contenedores privilegiados, se documentarán las políticas de seguridad recomendadas.

Licencia

Litmos está licenciado bajo la Licencia Apache, versión 2.0. Ver el texto completo en LICENCIA. Algunos proyectos usados por Litmus pueden estar sometidos a una licencia diferente, consulte su lecencia específica.

FOSSA Status

Litmus Chaos forma parte de los projectos CNCF.

CNCF

Communidad

La comunidad Litmus se reúne el tercer miércoles de cada mes a las 10:00 p.m. hora estándar de la India (IST) / 9:30 a.m. hora estándar del Pacífico (PST).

Recursos de la comunidad:

Enlaces importantes

Documentación de Litmus Litmus Docs
CNCF Landscape Litmus on CNCF Landscape

Blogs

Community Blogs: