ms-services
Microservicio para la gestión y descubrimiento de servicios disponibles en la plataforma.
En la primera fase de nuestra serie, construimos meticulosamente el escenario: una plataforma robusta, segura y escalable sobre Kubernetes. Ahora que el escenario está listo, es hora de presentar a los actores principales.
Este artículo es el prólogo de nuestra segunda gran fase. Actuará como una guía introductoria, dándote un tour completo del ecosistema de microservicios de CodeDesignPlus. Exploraremos el “qué” (los componentes), el “cómo” (la arquitectura interna) y el “para qué” (los procesos de negocio que resuelven), preparando el terreno para los próximos artículos, donde nos sumergiremos en el despliegue de cada pieza individual.
Este primer diagrama muestra todos los microservicios base que componen nuestro ecosistema. Cada uno es una pieza de un rompecabezas más grande, con una responsabilidad única y bien definida.
La leyenda de colores indica los diferentes puntos de entrada (Entrypoints) que cada microservicio puede tener:
Para entender realmente cómo funciona nuestro ecosistema, es crucial saber que todos los microservicios comparten el mismo ADN arquitectónico. No son cajas negras dispares; todos están construidos a partir de un Arquetipo base que implementa patrones de diseño de software de primer nivel.
Este diagrama muestra las capas y patrones que viven dentro de cada microservicio:
Capa de Infraestructura (Naranja): Es la capa más externa, responsable de la comunicación con el mundo exterior. Aquí viven los Adaptadores de la arquitectura hexagonal, como los repositorios que hablan con la base de datos, los clientes de Redis para caché, o los Message Brokers para publicar eventos. También incluye los Ports, que son los puntos de entrada (Rest, gRpc, Workers).
Capa de Aplicación (Verde): Orquesta los casos de uso. Sigue el patrón CQRS, separando la lógica en:
CreateUserCommand
).GetUserByIdQuery
).
Cada comando y consulta es manejado por su propio Handler
dedicado.Capa de Dominio (Púrpura): El corazón de la lógica de negocio. Utiliza los principios de Domain-Driven Design (DDD) para modelar el negocio a través de Aggregates, Entities, Value Objects y Domain Events. Es la capa más pura, sin dependencias externas.
Aquí tienes una vista en cards de los microservicios que desplegaremos, cada uno con su propósito específico:
ms-services
Microservicio para la gestión y descubrimiento de servicios disponibles en la plataforma.
ms-catalogs
Microservicio para la gestión de catálogos genéricos como tipos de documentos.
ms-emails
Microservicio para la gestión de envíos de correos electrónicos y la administración de plantillas de correo.
ms-modules
Microservicio para la gestión de módulos disponibles en la plataforma.
ms-roles
Microservicio para la gestión de roles del sistema.
ms-rbac
Microservicio para la gestión de los permisos asociados a los roles (Control de Acceso Basado en Roles).
ms-locations
Microservicio para la gestión de ubicaciones geográficas, incluyendo países, estados, ciudades, etc.
ms-filestorage
Microservicio para la gestión de almacenamiento de archivos con integración a múltiples proveedores.
ms-tenants
Microservicio para la gestión de inquilinos (tenants) en la plataforma.
ms-payments
Microservicio para la gestión de pagos, incluyendo la integración con diferentes proveedores.
ms-users
Microservicio para la gestión de usuarios y sus perfiles.
ms-licenses
Microservicio para la gestión de licencias de software, la cual tiene asociada un conjunto de módulos.
ms-microsoftgraph
Microservicio para la integración con Microsoft Entra ID y la gestión de Custom Authentication Extensions.
Más allá de los componentes individuales, el verdadero poder del ecosistema reside en cómo orquestan flujos de negocio complejos. En artículos futuros, exploraremos en detalle procesos como los siguientes:
ms-microsoft-graph
y los eventos de dominio crea un flujo de registro seguro y desacoplado.ms-tenants
, ms-licenses
y ms-payments
colaboran para gestionar la compra y asignación de licencias de software a un inquilino.Este artículo ha sentado las bases. En las próximas guías de esta serie, nos sumergiremos en el despliegue y configuración de cada uno de estos microservicios, uno por uno. Para cada componente, cubriremos en detalle:
values.yaml
y lo desplegaremos en nuestro clúster.¡La base está construida y los actores están presentados! En nuestro próximo artículo, comenzaremos con el primer despliegue. ¡Prepárate para ver cómo toda nuestra infraestructura cobra vida