SlideShare una empresa de Scribd logo
1 de 38
Descargar para leer sin conexión
Chaos
Engineering
ANGEL NUÑEZ Enterprise Agility Consultant
ANGEL NUÑEZ
Enterprise Agility
Consultant
angel.nunez@kleer.la
@snahider
Las Aplicaciones Son Cada Vez
Más Complejas
Amazon Netflix Twitter
“Death Star” Architecture Diagrams
El mundo es naturalmente Complejo
• Los discos pueden fallar.
• La red no es confiable y se puede caer.
• Fallos en cascada por circunstancias no usuales.
• Los sistemas distribuidos tienen muchas partes movibles.
• Aumento inesperado en el tráfico.
• El ambiente está lleno de ‘unknows’.
• Muchas cosas están fuera de nuestro control.
AWS Outage: Feb 28, 2017
• Simple Storage Service (S3) se cayo en US-EAST.
• Otros servicios que dependían de S3 se vieron afectados
(EC2, EBS, Lambda, etc.).
• La caída duró aproximadamente 4 horas.
• 1,000,000 sitios al rededor US se vieron impactados.
Incident report: https://aws.amazon.com/message/41926
Las Caídas Ocurren
Hay muchos más casos que puedes leer aquí:
https://github.com/danluu/post-mortems
¿Por qué tener miedo del Caos
cuando es Inevitable?
Failures are a given and
everything will
eventually fail over time
Werner Vogels
CTO - Amazon.com
Chaos Engineering
Thoughtful, planned experiments
designed to reveal
weaknesses in your system.
Kolton Andrus
CEO - Gremlin Inc.
Unit Tests e Integration Tests
Componente A
OutputInput
Unit Tests
Servicio A Servicio B
Input Output
Integration Tests
Chaos Experiments
Servicio A Servicio B
Input Output
No verificamos “Knows” sino exploramos “Unknows”
AWS Outage
Historia
2004 Amazon – Jesse Robbins. Master of disaster.
2010 Netflix – 1ra implementación de Chaos Monkey
para forzar el uso de auto-scaled staless services.
2012 NetflixOSS libera Simian Army (Open Source)
2014 Netflix decide crear el rol Chaos Engineer
2016 Gremlin Inc. se fundó.
2017 Netflix Chaos Engineering book.
Chaos Toolking (OSS project)
2018 1er Chaos Conference.
Año en que Chaos Eng. se ha difundido significativamente.
Mas Historia
(Empresas, Personas, Herramientas y Prácticas)
https://coggle.it/diagram/WiKceGDAwgABrmyv/t/chaos-engineering-companies%2C-people%2C-tools-practices
Un Caso Personal
Payment UI
Auth Service Payment Service
Message Queue (RabbitMQ)
Worker
Status
Listener
Notification
Service
Payments Core
Cache Service
(Redis)
Transaction Map
(MongoDB)
Publish
Consume Publish Consume
v1.1.8
(Dic. 2015)
Inhouse + Azure
Datacenter
Asynchronous Completion Token. http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.44.9371&rep=rep1&type=pdf
Mediante la experimentación encontramos:
- Cuando varios contenedores se caían, la experiencia al
usuario se degrabada, por que demoraba mucho la
reconección.
- Cuando los contenedores se reprogramaban, la
redundancia se perdía, por que K8S redesplegaba varios
en el mismo nodo.
- Cuando se caía el 75% de instancias del Payment, la
experiencia se degrabada, por que las instancias restantes
no aguantaban la carga.
- Cuando la latencia del core es muy lenta, el pool de hilos
del worker se terminaba, por que los timeouts eran muy
grandes.
- Cuando un tópico de RabbitMQ se eliminaba, la cola
dejaba de funcionar, por que nadie recreaba el tópico.
…
Pre-requisitos
• Timeouts
• Retries & Bake-offs.
• Exception handling.
• Circuit breakers.
• Load Shedding
Application
• Redundancy
• Self-healing
• Bulkheads
• Infrastructure as
Code
Infrastructure
• Monitoreo y
Observabilidad.
• Incident
Management.
Operations
Run
Experiment
Cómo practicar Chaos Engineering
Scale or
Squash
Verify
Results
Steady
State
Improve
Hypothesis
Run
Experiment
Cómo practicar Chaos Engineering
Scale or
Squash
Verify
Results
Steady
State
Improve
Hypothesis
Definir un “Steady State”
Resultado medible del sistema que indica ‘salud’
(combinación de Business + Ops)
Netflix ‘stream starts per second’, comparando dos semanas (rojo = semana actual, negro = semana pasada)
Run
Experiment
Cómo practicar Chaos Engineering
Scale or
Squash
Verify
Results
Steady
State
Improve
Hypothesis
Cómo diseñar un Experimento
• Identificar los top servicios/componentes críticos.
• Elegir un componente y entenderlo.
• ¿Qué puede salir mal?
¿Sabemos que pasará si esto rompe?
• Seleccionar el ataque.
• Determinar un Blast Radius pequeño.
• Determinar métricas adicionales a revisar.
Puedes inyectar chaos en cada capa
del sistema
• Application (CPU, Memory, Disk, I/O)
• API (fallbacks)
• Cache, Database, Queues (kill topics)
• Network (latency, dns, packet loss)
• Operating System (kill processes, shutdown, time travel)
• Cloud Infraestructure / Bare Metal (región outage)
Run
Experiment
Cómo practicar Chaos Engineering
Scale or
Squash
Verify
Results
Steady
State
Improve
Hypothesis
Chaos Tools
https://github.com/dastergon/awesome-chaos-engineering#notable-tools
Simian Army
Conjunto de herramientas que ayudan a mantener
la nube operando en buena forma.
- Apagar servicios aleatoriamente (Chaos Monkey).
- Agregar lentitud a la comunicación (Latency
Monkey).
- Apagar servidores que no sigan mejores
prácticas (Conformity Monkey).
- Apagar instancias con violaciones de seguridad
(Security Monkey).
* Simian Army ya no se mantiene activamente. Nueva versión de Chaos Monkey está disponible como herramienta independiente, y las
otras funcionalidades se han movido a otros proyectos de Netflix.
Chaos Toolkit
Simplifica la adopción de Chaos Engineering:
- Open API declarativa para crear
experimentos de caos.
- Muchas extensiones para diferentes
herramientas, servicios clouds,
monitoreo.
- Se integra fácilmente con Pipelines de
CI/CD.
Gremlin
Chaos as a Service:
- Utiliza agentes en los hosts o
contenedores para realizar ataques.
- Se pueden programar ataques
utilizando UI, API o CLI.
- Provee muchos ataques de caja y se
integra con Chaos Toolkit para otros
ataques.
Run
Experiment
Cómo practicar Chaos Engineering
Scale or
Squash
Verify
Results
Steady
State
Improve
Hypothesis
Cuantificar otros resultados
• ¿Time to detect?
• ¿Time to notification?
• ¿Time to self healing?
• ¿Time to recovery - partial, full?
Profundizar en los resultados
Resultados
del
Experimento
Porque …Porque …Porque …Porque …
Run
Experiment
Cómo practicar Chaos Engineering
Scale or
Squash
Verify
Results
Steady
State
Improve
Hypothesis
Scale or Squash
¿Encontraste un problema? Buen trabajo.
Para el experimento. Sino incrementa el Blast Radius.
Run
Experiment
Cómo practicar Chaos Engineering
Scale or
Squash
Verify
Results
Steady
State
Improve
Hypothesis
Chaos Experiment (Demo)
Hypothesis No hay impacto en el cliente.
Attack Condition Duration: 180s (4 min)
Attack: Shutdown containers
Targets: 50% of available containers
Collect Data Latencia y Disponibilidad (Vegeta)
Reinicios del Container (Prometheus)
Logs de la Aplicación (Kubectl)
Result Latency: ?
Customer Impact: ?
Otros Hallazgos: ??
Introducir caos de manera
controlada conduce a tener
sistemas cada vez más resistentes.
¿Cómo puedes continuar tu camino en
Chaos Engineering?
http://gremlim.com/slack
Ejecuta tu primer Chaos Day
Día dedicado de todo el equipo para enfocarse en utilizar
Chaos Engineering para revelar problemas, e implementar
resilencia en los sistemas.
https://www.gremlin.com/community/tutorials/planning-your-own-chaos-day/
Revisa las siguientes fuentes
Lista curada de recursos sobre Chaos Engineering
https://github.com/dastergon/awesome-chaos-engineering
Principles of Chaos Engineering
https://principlesofchaos.org
Chaos Engineering book
https://www.oreilly.com/library/view/chaos-engineering/9781491988459/
Preguntas
ANGEL NUÑEZ
Enterprise Agility
Consultant
angel.nunez@kleer.la
@snahider

Más contenido relacionado

La actualidad más candente

Gitlab ci e kubernetes, build test and deploy your projects like a pro
Gitlab ci e kubernetes, build test and deploy your projects like a proGitlab ci e kubernetes, build test and deploy your projects like a pro
Gitlab ci e kubernetes, build test and deploy your projects like a prosparkfabrik
 
How to Build a Platform Team
How to Build a Platform TeamHow to Build a Platform Team
How to Build a Platform TeamVMware Tanzu
 
Devops - vision et pratiques
Devops - vision et pratiquesDevops - vision et pratiques
Devops - vision et pratiquesJoseph Glorieux
 
Docker Tutorial For Beginners | What Is Docker And How It Works? | Docker Tut...
Docker Tutorial For Beginners | What Is Docker And How It Works? | Docker Tut...Docker Tutorial For Beginners | What Is Docker And How It Works? | Docker Tut...
Docker Tutorial For Beginners | What Is Docker And How It Works? | Docker Tut...Simplilearn
 
DevOps vs Agile | DevOps Tutorial For Beginners | DevOps Training | Edureka
DevOps vs Agile | DevOps Tutorial For Beginners | DevOps Training | EdurekaDevOps vs Agile | DevOps Tutorial For Beginners | DevOps Training | Edureka
DevOps vs Agile | DevOps Tutorial For Beginners | DevOps Training | EdurekaEdureka!
 
Hands-On Introduction to Kubernetes at LISA17
Hands-On Introduction to Kubernetes at LISA17Hands-On Introduction to Kubernetes at LISA17
Hands-On Introduction to Kubernetes at LISA17Ryan Jarvinen
 
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛Edward Kuo
 
Kubernetes Workshop
Kubernetes WorkshopKubernetes Workshop
Kubernetes Workshoploodse
 
Sw 100 fr docker conteneurisation des applications
Sw 100 fr docker conteneurisation des applicationsSw 100 fr docker conteneurisation des applications
Sw 100 fr docker conteneurisation des applicationsStephane Woillez
 
Kubernetes
KubernetesKubernetes
KubernetesHenry He
 
Docker 101 - Nov 2016
Docker 101 - Nov 2016Docker 101 - Nov 2016
Docker 101 - Nov 2016Docker, Inc.
 
Architecture Overview: Kubernetes with Red Hat Enterprise Linux 7.1
Architecture Overview: Kubernetes with Red Hat Enterprise Linux 7.1Architecture Overview: Kubernetes with Red Hat Enterprise Linux 7.1
Architecture Overview: Kubernetes with Red Hat Enterprise Linux 7.1Etsuji Nakai
 
Devops Devops Devops, at Froscon
Devops Devops Devops, at FrosconDevops Devops Devops, at Froscon
Devops Devops Devops, at FrosconKris Buytaert
 
MuleSoft y la Arquitectura Orientada a Microservicios (MSA)
MuleSoft y la Arquitectura Orientada a Microservicios (MSA)MuleSoft y la Arquitectura Orientada a Microservicios (MSA)
MuleSoft y la Arquitectura Orientada a Microservicios (MSA)Larry Magallanes
 

La actualidad más candente (20)

Kubernetes 101
Kubernetes 101Kubernetes 101
Kubernetes 101
 
CKA_1st.pptx
CKA_1st.pptxCKA_1st.pptx
CKA_1st.pptx
 
Gitlab ci e kubernetes, build test and deploy your projects like a pro
Gitlab ci e kubernetes, build test and deploy your projects like a proGitlab ci e kubernetes, build test and deploy your projects like a pro
Gitlab ci e kubernetes, build test and deploy your projects like a pro
 
How to Build a Platform Team
How to Build a Platform TeamHow to Build a Platform Team
How to Build a Platform Team
 
Devops - vision et pratiques
Devops - vision et pratiquesDevops - vision et pratiques
Devops - vision et pratiques
 
Docker Tutorial For Beginners | What Is Docker And How It Works? | Docker Tut...
Docker Tutorial For Beginners | What Is Docker And How It Works? | Docker Tut...Docker Tutorial For Beginners | What Is Docker And How It Works? | Docker Tut...
Docker Tutorial For Beginners | What Is Docker And How It Works? | Docker Tut...
 
DevOps vs Agile | DevOps Tutorial For Beginners | DevOps Training | Edureka
DevOps vs Agile | DevOps Tutorial For Beginners | DevOps Training | EdurekaDevOps vs Agile | DevOps Tutorial For Beginners | DevOps Training | Edureka
DevOps vs Agile | DevOps Tutorial For Beginners | DevOps Training | Edureka
 
Hands-On Introduction to Kubernetes at LISA17
Hands-On Introduction to Kubernetes at LISA17Hands-On Introduction to Kubernetes at LISA17
Hands-On Introduction to Kubernetes at LISA17
 
DevOps
DevOps DevOps
DevOps
 
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛
 
Quick introduction to Kubernetes
Quick introduction to KubernetesQuick introduction to Kubernetes
Quick introduction to Kubernetes
 
Kubernetes Workshop
Kubernetes WorkshopKubernetes Workshop
Kubernetes Workshop
 
Sw 100 fr docker conteneurisation des applications
Sw 100 fr docker conteneurisation des applicationsSw 100 fr docker conteneurisation des applications
Sw 100 fr docker conteneurisation des applications
 
Kubernetes
KubernetesKubernetes
Kubernetes
 
Docker Workshop
Docker WorkshopDocker Workshop
Docker Workshop
 
Docker 101 - Nov 2016
Docker 101 - Nov 2016Docker 101 - Nov 2016
Docker 101 - Nov 2016
 
Architecture Overview: Kubernetes with Red Hat Enterprise Linux 7.1
Architecture Overview: Kubernetes with Red Hat Enterprise Linux 7.1Architecture Overview: Kubernetes with Red Hat Enterprise Linux 7.1
Architecture Overview: Kubernetes with Red Hat Enterprise Linux 7.1
 
Taller docker _es-cl
Taller docker _es-clTaller docker _es-cl
Taller docker _es-cl
 
Devops Devops Devops, at Froscon
Devops Devops Devops, at FrosconDevops Devops Devops, at Froscon
Devops Devops Devops, at Froscon
 
MuleSoft y la Arquitectura Orientada a Microservicios (MSA)
MuleSoft y la Arquitectura Orientada a Microservicios (MSA)MuleSoft y la Arquitectura Orientada a Microservicios (MSA)
MuleSoft y la Arquitectura Orientada a Microservicios (MSA)
 

Similar a Chaos Engineering: Inyectar caos para sistemas más resistentes

Cloud Native MX Meetup - Asegurando tu Cluster de Kubernetes
Cloud Native MX Meetup - Asegurando tu Cluster de KubernetesCloud Native MX Meetup - Asegurando tu Cluster de Kubernetes
Cloud Native MX Meetup - Asegurando tu Cluster de KubernetesDomingo Suarez Torres
 
Aplicaciones escalables en Azure
Aplicaciones escalables en AzureAplicaciones escalables en Azure
Aplicaciones escalables en AzureGermán Küber
 
Docker y Kubernetes, en busca de la alta disponibilidad
Docker y Kubernetes, en busca de la alta disponibilidadDocker y Kubernetes, en busca de la alta disponibilidad
Docker y Kubernetes, en busca de la alta disponibilidadÓscar De Arriba González
 
AWS Presentacion Universidad de los Andes "Escalando para sus primeros 10 Mil...
AWS Presentacion Universidad de los Andes "Escalando para sus primeros 10 Mil...AWS Presentacion Universidad de los Andes "Escalando para sus primeros 10 Mil...
AWS Presentacion Universidad de los Andes "Escalando para sus primeros 10 Mil...Amazon Web Services
 
Escalando para sus primeros 10 millones de usuarios
Escalando para sus primeros 10 millones de usuariosEscalando para sus primeros 10 millones de usuarios
Escalando para sus primeros 10 millones de usuariosAmazon Web Services LATAM
 
dockerize.it
dockerize.itdockerize.it
dockerize.itbetabeers
 
1 la arquitectura cloud computing
1   la arquitectura cloud computing1   la arquitectura cloud computing
1 la arquitectura cloud computingOmega Peripherals
 
1 la arquitectura cloud computing
1 la arquitectura cloud computing1 la arquitectura cloud computing
1 la arquitectura cloud computingOmega Peripherals
 
VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...
VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...
VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...Francisco Javier Barrena
 
Escalabilidad y alto rendimiento con Symfony2
Escalabilidad y alto rendimiento con Symfony2Escalabilidad y alto rendimiento con Symfony2
Escalabilidad y alto rendimiento con Symfony2Ricard Clau
 
Consejos de seguridad con Alfresco
Consejos de seguridad con AlfrescoConsejos de seguridad con Alfresco
Consejos de seguridad con AlfrescoToni de la Fuente
 
Meetup AWS User Group chile - Diciembre 2018
Meetup AWS User Group chile - Diciembre 2018Meetup AWS User Group chile - Diciembre 2018
Meetup AWS User Group chile - Diciembre 2018Gonzalo Vásquez
 
Softonic Labs - Web Escalable
Softonic Labs - Web EscalableSoftonic Labs - Web Escalable
Softonic Labs - Web EscalableAlex Puig
 
Arquitectura de Micro Servicios con ECS
Arquitectura de Micro Servicios con ECSArquitectura de Micro Servicios con ECS
Arquitectura de Micro Servicios con ECSChristian Melendez
 
Introduccion a elastic beanstalk aws roadshow bogota mexico
Introduccion a elastic beanstalk   aws roadshow bogota mexicoIntroduccion a elastic beanstalk   aws roadshow bogota mexico
Introduccion a elastic beanstalk aws roadshow bogota mexicoAmazon Web Services LATAM
 
Docker: la revolución en virtualización
Docker: la revolución en virtualizaciónDocker: la revolución en virtualización
Docker: la revolución en virtualizaciónMarcelo Ochoa
 
Desymfony - Servicios
Desymfony  - ServiciosDesymfony  - Servicios
Desymfony - ServiciosRicard Clau
 

Similar a Chaos Engineering: Inyectar caos para sistemas más resistentes (20)

Cloud Native MX Meetup - Asegurando tu Cluster de Kubernetes
Cloud Native MX Meetup - Asegurando tu Cluster de KubernetesCloud Native MX Meetup - Asegurando tu Cluster de Kubernetes
Cloud Native MX Meetup - Asegurando tu Cluster de Kubernetes
 
Aplicaciones escalables en Azure
Aplicaciones escalables en AzureAplicaciones escalables en Azure
Aplicaciones escalables en Azure
 
Docker y Kubernetes, en busca de la alta disponibilidad
Docker y Kubernetes, en busca de la alta disponibilidadDocker y Kubernetes, en busca de la alta disponibilidad
Docker y Kubernetes, en busca de la alta disponibilidad
 
AWS Presentacion Universidad de los Andes "Escalando para sus primeros 10 Mil...
AWS Presentacion Universidad de los Andes "Escalando para sus primeros 10 Mil...AWS Presentacion Universidad de los Andes "Escalando para sus primeros 10 Mil...
AWS Presentacion Universidad de los Andes "Escalando para sus primeros 10 Mil...
 
Escalando para sus primeros 10 millones de usuarios
Escalando para sus primeros 10 millones de usuariosEscalando para sus primeros 10 millones de usuarios
Escalando para sus primeros 10 millones de usuarios
 
Ecs codemotion
Ecs codemotionEcs codemotion
Ecs codemotion
 
dockerize.it
dockerize.itdockerize.it
dockerize.it
 
1 la arquitectura cloud computing
1   la arquitectura cloud computing1   la arquitectura cloud computing
1 la arquitectura cloud computing
 
Practical Spring Cloud
Practical Spring CloudPractical Spring Cloud
Practical Spring Cloud
 
1 la arquitectura cloud computing
1 la arquitectura cloud computing1 la arquitectura cloud computing
1 la arquitectura cloud computing
 
VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...
VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...
VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...
 
Clusters
ClustersClusters
Clusters
 
Escalabilidad y alto rendimiento con Symfony2
Escalabilidad y alto rendimiento con Symfony2Escalabilidad y alto rendimiento con Symfony2
Escalabilidad y alto rendimiento con Symfony2
 
Consejos de seguridad con Alfresco
Consejos de seguridad con AlfrescoConsejos de seguridad con Alfresco
Consejos de seguridad con Alfresco
 
Meetup AWS User Group chile - Diciembre 2018
Meetup AWS User Group chile - Diciembre 2018Meetup AWS User Group chile - Diciembre 2018
Meetup AWS User Group chile - Diciembre 2018
 
Softonic Labs - Web Escalable
Softonic Labs - Web EscalableSoftonic Labs - Web Escalable
Softonic Labs - Web Escalable
 
Arquitectura de Micro Servicios con ECS
Arquitectura de Micro Servicios con ECSArquitectura de Micro Servicios con ECS
Arquitectura de Micro Servicios con ECS
 
Introduccion a elastic beanstalk aws roadshow bogota mexico
Introduccion a elastic beanstalk   aws roadshow bogota mexicoIntroduccion a elastic beanstalk   aws roadshow bogota mexico
Introduccion a elastic beanstalk aws roadshow bogota mexico
 
Docker: la revolución en virtualización
Docker: la revolución en virtualizaciónDocker: la revolución en virtualización
Docker: la revolución en virtualización
 
Desymfony - Servicios
Desymfony  - ServiciosDesymfony  - Servicios
Desymfony - Servicios
 

Más de Angel Nuñez

Structural Agility
Structural AgilityStructural Agility
Structural AgilityAngel Nuñez
 
Architecting Sociotechnical Systems
Architecting Sociotechnical SystemsArchitecting Sociotechnical Systems
Architecting Sociotechnical SystemsAngel Nuñez
 
Product Development Flow
Product Development FlowProduct Development Flow
Product Development FlowAngel Nuñez
 
Hackeando la Cultura Organizacional
Hackeando la Cultura OrganizacionalHackeando la Cultura Organizacional
Hackeando la Cultura OrganizacionalAngel Nuñez
 
Liderazgo Transformacional
Liderazgo TransformacionalLiderazgo Transformacional
Liderazgo TransformacionalAngel Nuñez
 
Liderazgo Transformacional y DevOps
Liderazgo Transformacional y DevOpsLiderazgo Transformacional y DevOps
Liderazgo Transformacional y DevOpsAngel Nuñez
 
Exploratory Testing
Exploratory TestingExploratory Testing
Exploratory TestingAngel Nuñez
 
Kubernetes - Container Orchestration, Deployment and Scaling
Kubernetes - Container Orchestration, Deployment and ScalingKubernetes - Container Orchestration, Deployment and Scaling
Kubernetes - Container Orchestration, Deployment and ScalingAngel Nuñez
 
Agile Test Strategy
Agile Test StrategyAgile Test Strategy
Agile Test StrategyAngel Nuñez
 
Kubernetes - #gdglimasummit
Kubernetes - #gdglimasummitKubernetes - #gdglimasummit
Kubernetes - #gdglimasummitAngel Nuñez
 
Agile Testing - Software Testing Club
Agile Testing - Software Testing ClubAgile Testing - Software Testing Club
Agile Testing - Software Testing ClubAngel Nuñez
 
Kubernetes - #dockerconlima
Kubernetes  - #dockerconlimaKubernetes  - #dockerconlima
Kubernetes - #dockerconlimaAngel Nuñez
 
Infrastructure as Code
Infrastructure as CodeInfrastructure as Code
Infrastructure as CodeAngel Nuñez
 
Test Driven Infrastructure
Test Driven InfrastructureTest Driven Infrastructure
Test Driven InfrastructureAngel Nuñez
 
Software Debt: Qué Es y Cómo Gestionarlo Holísticamente
Software Debt: Qué Es y Cómo Gestionarlo HolísticamenteSoftware Debt: Qué Es y Cómo Gestionarlo Holísticamente
Software Debt: Qué Es y Cómo Gestionarlo HolísticamenteAngel Nuñez
 
Test Automation .NET
Test Automation .NETTest Automation .NET
Test Automation .NETAngel Nuñez
 
Refactoring to Patterns
Refactoring to PatternsRefactoring to Patterns
Refactoring to PatternsAngel Nuñez
 

Más de Angel Nuñez (20)

Structural Agility
Structural AgilityStructural Agility
Structural Agility
 
Architecting Sociotechnical Systems
Architecting Sociotechnical SystemsArchitecting Sociotechnical Systems
Architecting Sociotechnical Systems
 
Product Development Flow
Product Development FlowProduct Development Flow
Product Development Flow
 
Hackeando la Cultura Organizacional
Hackeando la Cultura OrganizacionalHackeando la Cultura Organizacional
Hackeando la Cultura Organizacional
 
Liderazgo Transformacional
Liderazgo TransformacionalLiderazgo Transformacional
Liderazgo Transformacional
 
Liderazgo Transformacional y DevOps
Liderazgo Transformacional y DevOpsLiderazgo Transformacional y DevOps
Liderazgo Transformacional y DevOps
 
Exploratory Testing
Exploratory TestingExploratory Testing
Exploratory Testing
 
Coding Dojo
Coding DojoCoding Dojo
Coding Dojo
 
Kubernetes - Container Orchestration, Deployment and Scaling
Kubernetes - Container Orchestration, Deployment and ScalingKubernetes - Container Orchestration, Deployment and Scaling
Kubernetes - Container Orchestration, Deployment and Scaling
 
Agile Test Strategy
Agile Test StrategyAgile Test Strategy
Agile Test Strategy
 
Kubernetes - #gdglimasummit
Kubernetes - #gdglimasummitKubernetes - #gdglimasummit
Kubernetes - #gdglimasummit
 
Agile Testing - Software Testing Club
Agile Testing - Software Testing ClubAgile Testing - Software Testing Club
Agile Testing - Software Testing Club
 
Kubernetes - #dockerconlima
Kubernetes  - #dockerconlimaKubernetes  - #dockerconlima
Kubernetes - #dockerconlima
 
Infrastructure as Code
Infrastructure as CodeInfrastructure as Code
Infrastructure as Code
 
Test Driven Infrastructure
Test Driven InfrastructureTest Driven Infrastructure
Test Driven Infrastructure
 
Software Debt: Qué Es y Cómo Gestionarlo Holísticamente
Software Debt: Qué Es y Cómo Gestionarlo HolísticamenteSoftware Debt: Qué Es y Cómo Gestionarlo Holísticamente
Software Debt: Qué Es y Cómo Gestionarlo Holísticamente
 
Unit testing
Unit testingUnit testing
Unit testing
 
Test Automation .NET
Test Automation .NETTest Automation .NET
Test Automation .NET
 
Refactoring
RefactoringRefactoring
Refactoring
 
Refactoring to Patterns
Refactoring to PatternsRefactoring to Patterns
Refactoring to Patterns
 

Último

CICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaCICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaSHERELYNSAMANTHAPALO1
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaXimenaFallaLecca1
 
Tiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo IITiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo IILauraFernandaValdovi
 
Calavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfCalavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfyoseka196
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Francisco Javier Mora Serrano
 
Una estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTUna estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTFundación YOD YOD
 
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAIPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAJAMESDIAZ55
 
Normas para los aceros basados en ASTM y AISI
Normas para los aceros basados en ASTM y AISINormas para los aceros basados en ASTM y AISI
Normas para los aceros basados en ASTM y AISIfimumsnhoficial
 
ECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfmatepura
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASfranzEmersonMAMANIOC
 
clases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdfclases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdfDanielaVelasquez553560
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMarceloQuisbert6
 
Presentación Proyecto Trabajo Creativa Profesional Azul.pdf
Presentación Proyecto Trabajo Creativa Profesional Azul.pdfPresentación Proyecto Trabajo Creativa Profesional Azul.pdf
Presentación Proyecto Trabajo Creativa Profesional Azul.pdfMirthaFernandez12
 
Topografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasTopografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasSegundo Silva Maguiña
 
Edificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRCEdificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRCANDECE
 
Flujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxFlujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxEduardoSnchezHernnde5
 
Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.ALEJANDROLEONGALICIA
 
sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7luisanthonycarrascos
 
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...SuannNeyraChongShing
 
Caldera Recuperadora de químicos en celulosa tipos y funcionamiento
Caldera Recuperadora de químicos en celulosa  tipos y funcionamientoCaldera Recuperadora de químicos en celulosa  tipos y funcionamiento
Caldera Recuperadora de químicos en celulosa tipos y funcionamientoRobertoAlejandroCast6
 

Último (20)

CICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaCICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresa
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
 
Tiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo IITiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo II
 
Calavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfCalavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdf
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
 
Una estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTUna estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NIST
 
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAIPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
 
Normas para los aceros basados en ASTM y AISI
Normas para los aceros basados en ASTM y AISINormas para los aceros basados en ASTM y AISI
Normas para los aceros basados en ASTM y AISI
 
ECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdf
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
 
clases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdfclases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdf
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principios
 
Presentación Proyecto Trabajo Creativa Profesional Azul.pdf
Presentación Proyecto Trabajo Creativa Profesional Azul.pdfPresentación Proyecto Trabajo Creativa Profesional Azul.pdf
Presentación Proyecto Trabajo Creativa Profesional Azul.pdf
 
Topografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasTopografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la Ingenierías
 
Edificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRCEdificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRC
 
Flujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxFlujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptx
 
Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.
 
sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7
 
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
 
Caldera Recuperadora de químicos en celulosa tipos y funcionamiento
Caldera Recuperadora de químicos en celulosa  tipos y funcionamientoCaldera Recuperadora de químicos en celulosa  tipos y funcionamiento
Caldera Recuperadora de químicos en celulosa tipos y funcionamiento
 

Chaos Engineering: Inyectar caos para sistemas más resistentes

  • 3. Las Aplicaciones Son Cada Vez Más Complejas Amazon Netflix Twitter “Death Star” Architecture Diagrams
  • 4. El mundo es naturalmente Complejo • Los discos pueden fallar. • La red no es confiable y se puede caer. • Fallos en cascada por circunstancias no usuales. • Los sistemas distribuidos tienen muchas partes movibles. • Aumento inesperado en el tráfico. • El ambiente está lleno de ‘unknows’. • Muchas cosas están fuera de nuestro control.
  • 5. AWS Outage: Feb 28, 2017 • Simple Storage Service (S3) se cayo en US-EAST. • Otros servicios que dependían de S3 se vieron afectados (EC2, EBS, Lambda, etc.). • La caída duró aproximadamente 4 horas. • 1,000,000 sitios al rededor US se vieron impactados. Incident report: https://aws.amazon.com/message/41926
  • 6. Las Caídas Ocurren Hay muchos más casos que puedes leer aquí: https://github.com/danluu/post-mortems
  • 7. ¿Por qué tener miedo del Caos cuando es Inevitable? Failures are a given and everything will eventually fail over time Werner Vogels CTO - Amazon.com
  • 8. Chaos Engineering Thoughtful, planned experiments designed to reveal weaknesses in your system. Kolton Andrus CEO - Gremlin Inc.
  • 9. Unit Tests e Integration Tests Componente A OutputInput Unit Tests Servicio A Servicio B Input Output Integration Tests
  • 10. Chaos Experiments Servicio A Servicio B Input Output No verificamos “Knows” sino exploramos “Unknows”
  • 12. Historia 2004 Amazon – Jesse Robbins. Master of disaster. 2010 Netflix – 1ra implementación de Chaos Monkey para forzar el uso de auto-scaled staless services. 2012 NetflixOSS libera Simian Army (Open Source) 2014 Netflix decide crear el rol Chaos Engineer 2016 Gremlin Inc. se fundó. 2017 Netflix Chaos Engineering book. Chaos Toolking (OSS project) 2018 1er Chaos Conference. Año en que Chaos Eng. se ha difundido significativamente.
  • 13. Mas Historia (Empresas, Personas, Herramientas y Prácticas) https://coggle.it/diagram/WiKceGDAwgABrmyv/t/chaos-engineering-companies%2C-people%2C-tools-practices
  • 14. Un Caso Personal Payment UI Auth Service Payment Service Message Queue (RabbitMQ) Worker Status Listener Notification Service Payments Core Cache Service (Redis) Transaction Map (MongoDB) Publish Consume Publish Consume v1.1.8 (Dic. 2015) Inhouse + Azure Datacenter Asynchronous Completion Token. http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.44.9371&rep=rep1&type=pdf Mediante la experimentación encontramos: - Cuando varios contenedores se caían, la experiencia al usuario se degrabada, por que demoraba mucho la reconección. - Cuando los contenedores se reprogramaban, la redundancia se perdía, por que K8S redesplegaba varios en el mismo nodo. - Cuando se caía el 75% de instancias del Payment, la experiencia se degrabada, por que las instancias restantes no aguantaban la carga. - Cuando la latencia del core es muy lenta, el pool de hilos del worker se terminaba, por que los timeouts eran muy grandes. - Cuando un tópico de RabbitMQ se eliminaba, la cola dejaba de funcionar, por que nadie recreaba el tópico. …
  • 15. Pre-requisitos • Timeouts • Retries & Bake-offs. • Exception handling. • Circuit breakers. • Load Shedding Application • Redundancy • Self-healing • Bulkheads • Infrastructure as Code Infrastructure • Monitoreo y Observabilidad. • Incident Management. Operations
  • 16. Run Experiment Cómo practicar Chaos Engineering Scale or Squash Verify Results Steady State Improve Hypothesis
  • 17. Run Experiment Cómo practicar Chaos Engineering Scale or Squash Verify Results Steady State Improve Hypothesis
  • 18. Definir un “Steady State” Resultado medible del sistema que indica ‘salud’ (combinación de Business + Ops) Netflix ‘stream starts per second’, comparando dos semanas (rojo = semana actual, negro = semana pasada)
  • 19. Run Experiment Cómo practicar Chaos Engineering Scale or Squash Verify Results Steady State Improve Hypothesis
  • 20. Cómo diseñar un Experimento • Identificar los top servicios/componentes críticos. • Elegir un componente y entenderlo. • ¿Qué puede salir mal? ¿Sabemos que pasará si esto rompe? • Seleccionar el ataque. • Determinar un Blast Radius pequeño. • Determinar métricas adicionales a revisar.
  • 21. Puedes inyectar chaos en cada capa del sistema • Application (CPU, Memory, Disk, I/O) • API (fallbacks) • Cache, Database, Queues (kill topics) • Network (latency, dns, packet loss) • Operating System (kill processes, shutdown, time travel) • Cloud Infraestructure / Bare Metal (región outage)
  • 22. Run Experiment Cómo practicar Chaos Engineering Scale or Squash Verify Results Steady State Improve Hypothesis
  • 24. Simian Army Conjunto de herramientas que ayudan a mantener la nube operando en buena forma. - Apagar servicios aleatoriamente (Chaos Monkey). - Agregar lentitud a la comunicación (Latency Monkey). - Apagar servidores que no sigan mejores prácticas (Conformity Monkey). - Apagar instancias con violaciones de seguridad (Security Monkey). * Simian Army ya no se mantiene activamente. Nueva versión de Chaos Monkey está disponible como herramienta independiente, y las otras funcionalidades se han movido a otros proyectos de Netflix.
  • 25. Chaos Toolkit Simplifica la adopción de Chaos Engineering: - Open API declarativa para crear experimentos de caos. - Muchas extensiones para diferentes herramientas, servicios clouds, monitoreo. - Se integra fácilmente con Pipelines de CI/CD.
  • 26. Gremlin Chaos as a Service: - Utiliza agentes en los hosts o contenedores para realizar ataques. - Se pueden programar ataques utilizando UI, API o CLI. - Provee muchos ataques de caja y se integra con Chaos Toolkit para otros ataques.
  • 27. Run Experiment Cómo practicar Chaos Engineering Scale or Squash Verify Results Steady State Improve Hypothesis
  • 28. Cuantificar otros resultados • ¿Time to detect? • ¿Time to notification? • ¿Time to self healing? • ¿Time to recovery - partial, full?
  • 29. Profundizar en los resultados Resultados del Experimento Porque …Porque …Porque …Porque …
  • 30. Run Experiment Cómo practicar Chaos Engineering Scale or Squash Verify Results Steady State Improve Hypothesis
  • 31. Scale or Squash ¿Encontraste un problema? Buen trabajo. Para el experimento. Sino incrementa el Blast Radius.
  • 32. Run Experiment Cómo practicar Chaos Engineering Scale or Squash Verify Results Steady State Improve Hypothesis
  • 33. Chaos Experiment (Demo) Hypothesis No hay impacto en el cliente. Attack Condition Duration: 180s (4 min) Attack: Shutdown containers Targets: 50% of available containers Collect Data Latencia y Disponibilidad (Vegeta) Reinicios del Container (Prometheus) Logs de la Aplicación (Kubectl) Result Latency: ? Customer Impact: ? Otros Hallazgos: ??
  • 34. Introducir caos de manera controlada conduce a tener sistemas cada vez más resistentes.
  • 35. ¿Cómo puedes continuar tu camino en Chaos Engineering? http://gremlim.com/slack
  • 36. Ejecuta tu primer Chaos Day Día dedicado de todo el equipo para enfocarse en utilizar Chaos Engineering para revelar problemas, e implementar resilencia en los sistemas. https://www.gremlin.com/community/tutorials/planning-your-own-chaos-day/
  • 37. Revisa las siguientes fuentes Lista curada de recursos sobre Chaos Engineering https://github.com/dastergon/awesome-chaos-engineering Principles of Chaos Engineering https://principlesofchaos.org Chaos Engineering book https://www.oreilly.com/library/view/chaos-engineering/9781491988459/