Escalar empleando contenedores y orquestadores para cualquier nube
Publicar una aplicación en la nube no es simplemente cuestión de subir la aplicación a cualquier hosting. Si se quiere aprovechar al máximo la escalabilidad que la nube nos ofrece debemos trabajar con una arquitectura que nos permita crecer. Microservicios independiza los diferentes componentes de nuestra aplicación en servicios que pueden escalar de manera independiente, acorde a la demanda de los usuarios. Las aplicaciones se pueden hospedar en contenedores (usando Docker por ejemplo) y ser administradas por orquestadores (como Kubernetes) que se hacen cargo del balanceo de carga y el failover.
Microservicios
Beneficios
Resilencia
Un fallo en un servicio no impacta a otros servicios.
Alta escalabilidad
Los servicios pueden ser desplegados en múltiples servidores para mejorar el rendimiento.
Fácil de mejorar
Menos dependencia y facilidad para haces cambios y testing.
Bajo impacto
Al ser independiente, hay menos posibilidades para que un servicio impacte a otros servicios.
Fácil despliegue
Con la ayuda de scripts y contenedores como Dockers se obtiene un despliegue no solo eficiente y automatizado, sino también ligero.
Libertad tecnológica
Cada servicio usa la tecnología que mejor encaja segun el requerimiento o skills del encargado de desarrollarlo.