¿Qué enfoque tienen los microservicios?
El desarrollo de aplicaciones, al estilo SOA/EBS
¿Qué se busca con microservicios?
Conseguir una arquitectura altamente distribuida, para tener mayor escalabilidad horizontal.
Inconvenientes de los microservicios
Complejidad en todos los sentidos, ya que no es facil trazar la lógica de negocio (trazabilidad), gestión de errores, tratamientos de logs, etc (por eso surgen patrones de diseño, para solucionar estas complejidades)
¿Cómo deben de ser los servicios?
¿En qué consiste bounded context?
Es el contexto funcional que tiene cada microservicio o caja negra
¿Como se identifica los bounded context de los microservicios en la fase de diseño de una aplicación?
Basándonos en la metodología DDD (Domain Driver Diging), que nos dice que las clases que podría haber en los distintos contextos funcionales no se dupliquen, si no que creemos una versión distinta de ellas.
Diferencia entre acoplamiento y cohesión
¿Cómo se consigue una buena cohesión y un bajo acoplamiento?
Teniendo un diseño independiente de cada microservicio y la opción de comunicar los microservicios por “eventos/mensajes”
¿Cómo se lleva acabo la comunicación entre microservicios?
Hay opciones para ello y hay que elegir la que mejor venga, a nivel de publicación, es decir, lo que verían nuestros clientes (front-end):
- Opción Síncrona: es la que está basada en eventos
- Opción Asíncrona: más bien en mensajes (Resquest-Response, Event-Driven, Common Data)
Ejemplos de opciones de comunicación síncrona
¿Qué son los brokers de mensajes?
Son intermediarios entre los microservicios para una comunicación asíncrona, es decir, gestores de cola (middlewares de mensajería)
Productos, servicios de mensajería asíncrona
Tipos de topologías o arquitecturas para desarrollar microservicios
¿En qué consiste API Gateway?
Es la pieza que hace como de proxy inverso, balanceador de cargas, etc y reparte curro a los distintos microservicios (“cajas negras”), en el momento en el que alguien de a un botón en el navegador
El Gateway actúa como un punto de entrada centralizado para las solicitudes, aplicando políticas de seguridad y enrutamiento para el tráfico north-south (comunicación hacia y desde el exterior del centro de datos).
¿En qué consiste Service Mesh?
Con Service Mesh, cada microservicio va a tener una pieza ayudante (proxy) y va a hacer todo el trabajo duro de gestión de errores, balanceo de carga, etc. En esos proxys se puede delegar toda esa infraestructura más técnica y de más bajo nivel que no es nuestra lógica de negocio
El Service Mesh se enfoca en la comunicación de servicio a servicio dentro de la arquitectura, optimizando y asegurando el flujo de tráfico east-west (comunicación dentro de un centro de datos).
Productos API Gateway (Clásico)
Productos Service Mesh (Moderno)
¿?
¿Qué es Microprofile?
Microprofile es equivalente a cualquier producto de la topología API Gateway (clásica), pero no es un producto, es un estándar. Es el único estandar que existe para el desarrollo de microservicios.
¿Se pueden combinar API Gateway con Service Mesh?
Sí, Mesh se inventó porque con API Gateway no se cubrían bien todos los tipos de arquitectura de microservicios, pero no invalida a API Gateway
¿Cuál es la librería de java que utiliza por debajo Elastic Search y SOLR para indexar logs?
APACHE LUCENE
¿Cuáles son las patas que toca la Observabilidad?
Productos para centralización de logs
ELK (Elastic Search - Logstash - Kibana)
- Elastic Searh: indexa logs
- Logstash: extrae logs
- Kibana: muestra logs
Productos para centralización de métricas
Productos para centralización de trazas