La arquitectura de referencia de microservicios permite a través de su utilización disponer servicios de backend independientes y desacoplados por cada funcionalidad, que pueden reutilizarse en los distintos productos digitales, y cuya responsabilidad esté acotada.
Necesidad
Permitir la construcción y despliegue de servicios de backend que puedan dar cobertura a necesidades de negocio comunes: acceso y actualización de datos, envío y recepción de eventos, publicación de APIs de acceso y actualización, acceso a un sistema de caché, lectura o escritura de ficheros, etc.
Debido al amplio abanico de naturalezas de los servicios de backend necesarios para el desarrollo de un servicio digital, se identifica a priori la siguiente tipología:
- Microservicios de exposición de APIs internas.
- Microservicios de experiencia (Backend for Frontend – BFF).
- Microservicios orquestadores.
- Microservicios adaptadores.
- Microservicios consumidores de eventos.
- Microservicios productores de eventos.
- Microservicios de negocio o de acceso a datos de negocio.
Características principales
- Microservicios contenerizados auto-escalables con alta disponibilidad para garantizar los requerimientos de rendimiento necesarios.
- Servicio de balanceo de carga entre las instancias de un mismo microservicio.
- Módulo común de seguridad para manejar apropiadamente la autenticación y autorización de peticiones recibidas en los microservicios.
- Sistema de registro de servicios con auto-descubrimiento.
- Sistema de gestión de la configuración centralizada por entorno y servicio, con posibilidad de recarga automática de configuraciones.
- Sistema de gestión de secretos centralizada por entorno y servicio, con posibilidad de recarga automática de secretos.
- Agente de recolección de trazas, logs y métricas en cada microservicio para enviarse al recolector de telemetría.
- Colector de telemetría centralizado para recoger las trazas, logs y métricas y exportar la información a los sistemas de observabilidad definidos.
- Módulo de resiliencia en los microservicios para garantizar la recuperación de errores mediante aplicación de patrones de Circuit Breaker y gestión de reintentos.
Relaciones:
Consumida por:
- Arquitectura de APIs.
- Arquitectura de interoperabilidad.
- Arquitectura de funciones.
Accede a:
- Arquitectura de funciones.
- Arquitectura de interoperabilidad.
- Arquitectura de eventos.
- Arquitectura de datos.
Debido a la diversidad de soluciones tecnológicas y herramientas de mercado existente para los gestores de contenido, se identifica la necesidad de particularizar la arquitectura de gestores de contenidos en al menos las siguientes opciones:
Arquitectura de Microservicios Java/Spring Boot
Arquitectura de microservicios basados en tecnología Java con el framework Spring Boot al estar alineado con la mayoría de las aplicaciones actuales desarrolladas en la Junta de Andalucía.
Arquitectura de Microservicios Java/Quarkus
Arquitectura de microservicios basados en tecnología Java con framework Quarkus aprovechando las capacidades del entorno PreCloud y los beneficios de rendimiento aportados por el framework.
Arquitectura de Microservicios Python
Arquitectura de microservicios basados en tecnología Python, que permitirá añadir diversidad tecnológica para aquellos proyectos o iniciativas que lo requieran.
Arquitectura de Microservicios Node
Arquitectura de microservicios basados en tecnología Node, que permitirá añadir diversidad tecnológica para aquellos proyectos o iniciativas que lo requieran.