Estilo arquitectónico que estructura una aplicación de software como una colección de servicios que se pueden implementar de forma independiente y con un acoplamiento flexible, cada uno responsable de una función empresarial específica.
Los microservicios son como una flota de camiones de reparto independientes: cada uno gestiona una ruta (función) específica y pueden operar por separado o en conjunto para ofrecer el servicio general.
Una aplicación de comercio electrónico puede usar microservicios para administrar el inventario, procesar los pagos y gestionar la autenticación de los usuarios, y cada servicio funciona de forma independiente.
Los microservicios permiten una mayor flexibilidad, escalabilidad y resiliencia, ya que cada servicio se puede desarrollar, implementar y escalar de forma independiente.
Los microservicios pueden acelerar los ciclos de desarrollo, facilitar el escalado de funciones específicas y reducir el tiempo de inactividad al aislar las fallas de los servicios individuales.
Diseñe los servicios para que estén lo más desacoplados y autónomos posible; utilice pasarelas API para la comunicación; garantice una supervisión y un registro sólidos para cada servicio.
Complicación excesiva de la arquitectura con demasiados microservicios; dificultades para administrar la comunicación entre servicios; datos inconsistentes entre los servicios.
Tiempo de respuesta del servicio, tasa de fallos del servicio, frecuencia de implementación.
Docker, Kubernetes, Spring Boot, Netflix OSS.