Resumen: Mastering Chaos Alumno: Alfonso León Macedo Escalabilidad Qué es un servicio sin estado: No una cache o base de datos, tendrá metadata accesada frecuentemente, no almacena grande volumen de datos, no tenemos que preocuparnos por una perdida de nodo, la mejor estrategia es la replicación. Grupos Auto escalables Tienes un tamaño mínimo y máximo y la capacidad deseada y puedes escalar en medida que sea necesario. Para que funcione debe estar replicado, su primera herramienta para Caos fue “Chaos Monkey”, que funciona básicamente, si un nodo muere, todo lo demás sigue funcionando. Tenían empleados de yahoo trabajando en Netflix que tenían experiencia comon proxies y tenían nodos dedicados para los clientes, entonces, un cliente siempre se conectaba al mismo nodo y solo había una copia de ese dato, lo que esto provocaba era un único punto de falla y en dado caso que fallara el nodo, dichos clientes no podían accesar a los datos. La redundancia es fundamental, por ejemplo, en el cuerpo humano tenemos 2 riñones por si uno falla, el sistema pueda seguir funcionando, y parecido a eso, Netflix utiliza una tecnología llamada EVCache que se encarga de realizar varias copias en varios nodos, entonces cada vez que se escribe una copia, se escribe en diferentes localizaciones de nodos, solo la lectura es únicamente local. EVCache puede tomar 30 millones de peticiones por segundo, tiene cientos de billones de objetos y latencias de milisegundos. Variedad en la arquitectura Entre más variedad tengas, más grandes tus retos serán, porque incrementa la complejidad del ambiente que estás gestionando. Para tener mejores prácticas, se necesita construir un ambiente en donde los empleados no necesitan pensar mucho en lo que van a hacer, que esas prácticas se hagan en piloto automático, por así decirlo, en Netflix desarrollaron un ciclo de aprendizaje continuo y automatización, típicamente ese aprendizaje viene de algún incidente de ese incidente una solución, la revisaban, la analizaban y veían si podían hacerla un proceso de automatización para “adoptarla” para una buena práctica. Variedad intencional (contenedores) Es introducir intencionalmente nuevas tecnologías a la arquitectura de multiservicio, el costo de introducir una nueva tecnología es la curva de aprendizaje al iniciar el trayecto de su implementación antes de que te puedas volver bueno en esto. El fin de semana es cuando más disponibilidad de servicio se tiene, en cuanto a la hora, hay más problemas a las 9 am. Ley de Conway: Las organizaciones que diseñan sistemas están limitadas a producir diseños que son copias de las estructuras de comunicación de estas organizaciones. Toda pieza de software refleja la estructura organizacional que la produjo. Pensando en el cliente y su experiencia, pudieron obtener algo mucho más potente. Se aprendieron lecciones tales como: soluciones primero, equipo después, reconfigura equipos para apoyar mejor tu arquitectura. La arquitectura de microservicios es compleja y orgánica, la salud depende de la disciplina y de inyectar caos en ese ambiente regularmente.