Repaso Microservicios
Repaso Microservicios
Repaso Microservicios
MICROSERVICIOS
Sommerville
Un estilo arquitectónico describe:
Arquitectura de software
Un conjunto de componentes.
Un conjunto de conectores entre componentes (comunicación, coordinación,
cooperación, etc.).
Restricciones que definen cómo se integran los componentes para formar el
sistema.
Modelos que permiten comprender las propiedades de un sistema general.
Pressman
Estilos de Arquitectura
Arquitectura de software
▪ Puerta de
enlace de API
▪ Microservicio
▪ Consumidores o
clientes
▪ Administración
u orquestación
Puerta de enlace de API
Elementos de la arquitectura de microservicios
▪ Responsable de la colocación de
servicios en los nodos, la identificación
de errores, el reequilibrio de servicios
entre nodos de manera automatizada.
▪ Normalmente, este componente es una
tecnología estándar automatizada, como
Kubernetes, Docker Swarm, Azure
Service Fabric o DC/OS, aunque puede
ser realizado de forma manual o
personalizada.
Agilidad.
Equipos pequeños y centrados.
Base de código pequeña.
Ventajas de los
microservicios Mezcla de tecnologías.
Aislamiento de errores.
Escalabilidad.
Aislamiento de los datos.
Facultad de Estadística e Informática
Complejidad.
Desarrollo y pruebas.
Falta de gobernanza.
Desventajas de Congestión y latencia de red.
los
microservicios Dificultad para la integridad de datos.
Administración compleja.
Control de versiones delicada.
Evaluar conjunto de habilidades del equipo.
Facultad de Estadística e Informática
Proceso para el desarrollo de
una arquitectura de
microservicios
DISEÑO E IMPLEMENTACIÓN DE UNA ARQUITECTURA DE
MICROSERVICIOS
Ciclo de vida de los microservicios
Proceso para el desarrollo de una arquitectura de microservicios
Eric Evans
Escenario
Análisis de dominios de una arquitectura de microservicios
En la biblioteca central "Alejandro Segovia" de la
Universidad de las Fuerzas Armadas ESPE, se requiere
realizar la captura de un listado de varios libros nuevos
junto al nombre de su autor que se van a agregar a su
colección. Al mismo tiempo se requiere registrar los
préstamos de los libros a los estudiantes.
La aplicación necesita operar en la nube, con un
objetivo de nivel de servicio alto, pues varias
aplicaciones clientes en distintas plataformas, tanto de
dispositivos móviles como de escritorio, desean
conectarse y consultar ese listado en Internet.
Además, se desea publicarlo en tiempo real en la
página web de la Facultad. Esta consideración hace
que la biblioteca se decante por una arquitectura de
microservicios.
▪ ENTIDADES
▪ Las entidades representan objetos del dominio y se definen
principalmente por su identidad, continuidad y persistencia en el tiempo
y no solo por los atributos que las componen.
▪ Son la base para un modelo.
▪ Por ejemplo, en una aplicación bancaria, las cuentas y los clientes serían
entidades
Definir entidades, agregados y servicios
Análisis de dominios de una arquitectura de microservicios
▪ ENTIDADES
▪ La misma identidad se puede modelar en varios contextos delimitados o
microservicios.
▪ Las entidades de cada contexto delimitado limitan sus atributos y
comportamientos a los requeridos en el dominio de ese contexto
delimitado.
Definir entidades, agregados y servicios
Análisis de dominios de una arquitectura de microservicios
Microservicio
▪ ENTIDADES Perfiles
Microservicio
▪ Por ejemplo, es posible que la entidad de Pedidos
comprador tenga la mayoría de los atributos comprador
de una persona que estén definidos en la A
entidad de usuario en el microservicio de B
perfiles o identidades. C comprador
D
▪ Pero la entidad de comprador en el E
microservicio de pedidos podría tener menos
atributos, porque solo determinados datos
del comprador están relacionados con el
proceso de pedido.
▪ El contexto de cada microservicio o contexto
delimitado afecta a su modelo de dominio.
Definir entidades, agregados y servicios
Análisis de dominios de una arquitectura de microservicios
▪ ENTIDADES
▪ Una entidad de dominio en DDD debe implementar
la lógica del dominio o el comportamiento
relacionado con los datos de entidad.
▪ Por ejemplo, la entidad pedido debería
implementar la lógica de negocios y las operaciones
como métodos, para tareas como agregar un
elemento de pedido, la validación de datos y el
cálculo total.
▪ Los métodos de la entidad se encargan de los
elementos invariables y las reglas de la entidad en
lugar de tener esas reglas distribuidas por el nivel
de aplicación.
Definir entidades, agregados y servicios
Análisis de dominios de una arquitectura de microservicios
▪ OBJETOS DE VALOR
▪ Un objeto de valor es un objeto sin identidad conceptual que describe un
aspecto de dominio.
▪ Se trata de objetos de los que se crea una instancia para representar
elementos de diseño que solo interesan temporalmente. Interesa lo que
son, no quiénes son.
Definir entidades, agregados y servicios
Análisis de dominios de una arquitectura de microservicios
▪ OBJETOS DE VALOR Aplicación
▪ Es posible que algo que sea una entidad en un microservicio Comercio
no lo sea en otro, porque en el segundo caso, es posible que Electrónico
el contexto delimitado tenga un significado diferente.
Cliente
▪ Por ejemplo, una dirección en una aplicación de comercio Aplicación
electrónico podría solo representar un grupo de atributos del dirección
perfil de cliente. La dirección es un objeto de valor. Energía
Eléctrica
▪ Pero en una aplicación para una empresa de energía
eléctrica, la dirección del cliente podría ser importante para
el dominio de negocio. Dirección
A
▪ La dirección debe tener una identidad para poder vincular el B
sistema de facturación directamente con la dirección. En ese
caso, una dirección debería clasificarse como una entidad de
dominio.
Definir entidades, agregados y servicios
Análisis de dominios de una arquitectura de microservicios
▪ AGREGADOS
▪ La mejor manera de identificar agregados es pensar en las operaciones
de transacción.
▪ Contiene grupos de entidades (de datos diferentes y procesos) que
pueden controlar un área importante de funcionalidad, como el
cumplimiento de pedidos o el inventario.
▪ Describe un clúster o grupo de entidades y comportamientos que se
pueden tratar como una unidad coherente.
Definir entidades, agregados y servicios
Análisis de dominios de una arquitectura de microservicios
▪ AGREGADOS
Por ejemplo:
▪ Una orden de pedido
▪ Contiene una lista de elementos de
pedido.
▪ Un elemento de pedido será una entidad.
Definir entidades, agregados y servicios
Análisis de dominios de una arquitectura de microservicios
▪ AGREGADOS
▪ Un agregado es un grupo de objetos que deben ser coherentes entre sí,
pero no se puede seleccionar simplemente un grupo de objetos y
etiquetarlos como agregado.
▪ Debe empezar por un concepto de dominio y pensar en las entidades que
se usan en las transacciones más comunes relacionadas con ese
concepto.
▪ Esas entidades que deben ser transaccionalmente coherentes son las que
constituyen un agregado.
Definir entidades,
agregados y servicios
Análisis de dominios
de una arquitectura
de microservicios
§ AGREGADOS. AGREGADO
RAÍZ.
§ Un agregado se compone de
al menos una entidad: la raíz
agregada, que también se
denomina entidad raíz o
entidad principal.
§ Además, puede tener varios
objetos de valor y entidades
secundarias, con todas las
entidades y objetos
trabajando de forma conjunta
para implementar las
transacciones y el
comportamiento necesarios. Facultad de Estadística e Informática
§ AGREGADOS. AGREGADO RAÍZ.
Definir entidades, agregados y § El propósito de una raíz agregada es asegurar la
servicios coherencia del agregado; debe ser el único punto de
entrada para las actualizaciones del agregado a través de
Análisis de dominios de una métodos u operaciones en la clase de raíz agregada.
arquitectura de microservicios § Los cambios en las entidades dentro del agregado solo se
Facultad de Estadística edeben realizar a través de la raíz agregada
Informática
Agregado Libro
Métodos
MétodosPrivados
Facultad de Estadística e Informática
Definir entidades, agregados y servicios
Análisis de dominios de una arquitectura de microservicios
Gestor Service
Diseño de una arquitectura
de microservicios
Proceso para el desarrollo de una arquitectura de microservicios
DISEÑO E IMPLEMENTACIÓN DE UNA ARQUITECTURA DE
MICROSERVICIOS
Fases del diseño
Diseño de una arquitectura de microservicios
Microsoft en su “guía para el diseño de una arquitectura de microservicios”, lista los pasos para
diseñar una arquitectura de microservicios:
Eric Evans
Elección de una opción de proceso para
los microservicios
Diseño de una arquitectura de microservicios
Eric Evans
Diseño de comunicaciones
Diseño de una arquitectura de microservicios
Eric Evans
Diseño de API
Diseño de una arquitectura de microservicios
https://www.uv.mx/ordenes/1
REST
Diseño de una arquitectura de microservicios
Eric Evans
Puertas de enlace API
Diseño de una arquitectura de microservicios
Eric Evans
Consideraciones de datos para
microservicios
Diseño de una arquitectura de microservicios