Slide 1

Slide 1 text

CAOS EN LA GRANJA 4º Meetup # ARQCONF2019 10 de Septiembre 2019 Pablo Halamaj - CTO @ Sendati

Slide 2

Slide 2 text

ANTES DE ARRANCAR ● Vamos a hablar de porqué y cómo romper cosas de 9 a 18. ○ Lo hacemos para que no nos llamen a las 3 AM. ● Vamos ver solo caídas de app servers. ○ Hay otros tipos de fallas posibles. ● NO HAY SECCIÓN DE PREGUNTAS!!!! ○ Haganlas cuando les surjan. ● Las demos pueden fallar ○ ¯\_(ツ)_/¯

Slide 3

Slide 3 text

Construcción de Sistemas (generalmente) ● Se diseñan para el estado ideal. ● Se contempla sólo el camino feliz. ● Se intentan controlar todas las variables. fuente: https://thiswastv.com/2013/04/25/roundtable-review-get-smart- too-many-chiefs-and-kisses-for-kaos/

Slide 4

Slide 4 text

Pero…… Shit Happens ● Los problemas: ○ Nunca vienen de donde pensamos. ○ No se piensa cómo reaccionar a ellos. ○ Terminamos con un GRAN problema. fuente: https://www.geocaching.com/geocache/GC10JV7_the-cone-of-sil ence?guid=8ce586c5-6a68-4f6d-b654-c10146a93396

Slide 5

Slide 5 text

CHAOS ENGINEERING Chaos Engineering es la disciplina de realizar experimentos en un sistema distribuido con el fin de construir confianza en las capacidades del sistema en soportar condiciones turbulentas en producción. Fuente: https://principlesofchaos.org/?lang=ENcontent

Slide 6

Slide 6 text

¿ COMO ? Insertando Fallas ● Los sistemas deben ser self-healing ● Las fallas pueden ser al azar o específicas. fuente: http://shuffleandcut.files.wordpress.com/2011/04/cat.jpg

Slide 7

Slide 7 text

Ventajas de Kubernetes ● El replication Controller nos Ayuda a ser self-healing ● La velocidad de despliegue de los contenedores permite que casi no se noten las caídas. ● Los Sistemas Cloud-Native deben ser tolerantes a fallos!!!

Slide 8

Slide 8 text

Herramientas posibles para Kubernetes

Slide 9

Slide 9 text

Entorno - K3S VM 1 VM 2 VM 3 B A GRANJA KUBERNETES Containers A T T

Slide 10

Slide 10 text

Entorno - App a probar B F F F PUERTO: 8888 Rta: Quedan XXX Request PUERTO: 8080 Rta: Hello ARQCONF SVC SVC Nosotros

Slide 11

Slide 11 text

KUBERNETES POD CHAOS MONKEY - DEMO ● Scripts super simple se ejecuta desde la terminal ● Tiene 2 parámetros ○ namespace ○ delay ● Básicamente es un script bash muy simple (20 Líneas)

Slide 12

Slide 12 text

CHAOSKUBE - DEMO ● Se despliega como un Container ● Se puede programar: ○ Que namespaces atacar ○ Cada cuanto ○ En qué ventanas horarias ● Reinicia o Borra PODs. ● Requiere permisos en el cluster.

Slide 13

Slide 13 text

POWERFULSEAL - DEMO ● Está hecho en Python ● Varios modos de Funcionamiento: ○ interactivo ○ Autónomo ○ Por etiquetas ○ Demo ● Hace KILL al pod via SSH ● Tiene Interfaz Web ● Complejo de usar ● Necesita DOCKER

Slide 14

Slide 14 text

LINKS ● KUBERNETES POD CHAOS MONKEY ○ https://github.com/jnewland/kubernetes-pod-chaos-monkey ● CHAOSKUBE ○ https://github.com/linki/chaoskube ● POWERFULSEAL ○ https://github.com/bloomberg/powerfulseal ● K3S ○ https://k3s.io ● Apps de la Demo: ○ https://gitlab.com/go-services-mockups

Slide 15

Slide 15 text

Muchas Gracias!! ● Apps: https://gitlab.com/go-services-mockups ● Se aceptan Merge Request ;-)