Microservicios Flashcards

(16 cards)

1
Q

qué es un microservicio

A

Una aplicación se divide en una colección de servicios autónomos (microservicios), especializados en una sola función de negocio (ej. un servicio para el carrito, otro para el inventario, otro para los pagos).
Están débilmente acoplados (son independientes) ej. si cae el servicio pagos, el servicio buscador de productos sigue funcionando.
Granularidad muy fina: cada servicio hace una sola cosa. Ej. servicio alta de usuario, otro cambio de contraseña, otro de perfil..
Cada microservicio “vive” en contenedores o servidores distintos y usa protocolos ligeros para comunicarse: http/REST (con JSON), gRPC, y mensajería asíncrona como RabbitMQ o Kafka.
Se pueden actualizar sin que la web deje de dar servicio. Si falla la actualización – rollback hasta estado original previo.
En resumen, resuelven los problemas de escalabilidad de las aplicaciones monolíticas

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Arquitectura Orquestada en microservicios

A

Punto de control: Centralizado (orquestador)
Acoplamiento: Mayor (dependen del orquestador)
Visibilidad: Alta (el flujo está en un sitio)
Tecnología típica: REST / Llamadas síncronas
Complejidad: Crece con el tamaño del proceso

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Arquitectura Coreografiada en microservicios

A

Punto de control: Distribuido (eventos)
Acoplamiento: Mínimo (autónomos)
Visibilidad: Baja (el flujo está repartido)
Tecnología típica: Message Brokers (Kafka, RabbitMQ)
Complejidad: Crece con el número de servicios

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Domain Driven Design (DDD)

A

Metodología que sirve para dividir un negocio en servicios autónomos (Capacidades de Negocio) con fronteras lógicas (Bounded Contexts) que aseguren que cada microservicio es dueño de su información (Aggregates) y se asegura una coordinación Asíncrona para que el negocio funcione como un todo sin que las comunicaciones entre microservicios (Domain Events) hagan que se bloqueen o provoquen acoplamientos entre ellos y bloqueen la actividad.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Bounded Context

A

es la frontera lógica que separa e identifica cada parte del negocio. Sirve para identificar los posibles microservicios a desarrollar.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Aggregates

A

Es un grupo de objetos que se tratan como una unidad de datos para garantizar que siempre sean coherentes.
Cada microservicio es dueño de sus propios agregados y nadie de fuera puede tocarlos directamente.

Ej. Microservicio Pedidos, contiene aggregates como Pedido, Item pedido, etc

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Domain Events

A

son mensajes, el “pegamento” que mantiene el negocio coordinado. Permiten que un cambio en un microservicio provoque una reacción en cadena de acciones en otros servicios, sin que estos estén rígidamente conectados entre sí.
Los mensajes se producen de forma asíncrona

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Bloqueo síncrono y asíncrono

A

Bloqueo síncrono: petición-respuesta directa.
Servicio A –> petición síncrona HTTP/REST –> Servicio B –> posible problema (acoplamiento temporal): que se quede esperando o bloqueado por la respuesta.

Bloqueo asíncrono:
-request-response sobre Cola
Servicio A –> petición a un cola de solicitudes y se queda esperando respuesta en otra cola de “respuestas”.
-dirigido por eventos: el servicio A publica en un topic en un canal para todos los suscritos y sigue con su vida (asíncrono puro). Multidifusión (ideal para el desacoplamiento)
-datos compartidos: que dos servicios modifiquen una misma tabla de datos (PROHIBIDO en microservicios) porque cada microservicio es dueño de su propia base de datos

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Brokers de mensajes

A

Familia de buses de eventos: para el manejo de volúmenes masivos de datos:
Apache Kafka, Confluent, Google Cloud Pub/Sub

Familia de Message Brokers tradicionales: diseñados para el modelo petición-respuesta:
RabbitMQ, Apache ActiveMQ

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

API Gateway en microservicios

A

Es el punto de entrada único para las peticiones que vienen del exterior (usuarios, apps móviles, otras webs) hacia el interior de tus microservicios.
Ejercen labores de autenticación antes de dejar pasar; enrutamiento; rate limiting: evitando colapso por excesivas peticiones; orquestación de respuestas.
Ej: Kong, Zuul, Apigee

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Service Mesh en microservicios

A

Es una capa de infraestructura que gestiona la comunicación entre los microservicios una vez ya están dentro.
Ejercen labores de cifrado de la comunicación; descubrimiento de servicios; Circuit breaker (si un servicio falla, se le deja de enviar tráfico para evitar que hunda el sistema entero); gráficas del tiempo de respuesta entre microservicios.
Ej: Istio junto con Envoy, Linkerd, Consul Connect

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Patrón Circuit Breaker para la resiliencia en microservicios

A

Antes de que el servicio se bloquee por ir lento, se interrumpen las solicitudes.
Es como un interruptor:
Cerrado (todo ok) pasan las solicitudes.
Abierto (hay fallo) se interrumpen las solicitudes.
Medio abierto: se envía una petición a ver si se ha recuperado el servicio
Ej. Hystrix, Resilience4j, Istio

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Patrón Bulk Head para la resiliencia en microservicios

A

se crean compartimentos aislados. Si el microservicio “videos” colapsa, que no afecte al de “pagos”

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Patrón Retry (reintentos) para la resiliencia en microservicios

A

Si una petición falla, se reintenta automáticamente X veces. OJO!! se espera un tiempo (Backoff) y se reintenta…

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Patrón Fallback (respuesta de emergencia) para la resiliencia en microservicios

A

La estrategia: Si el servicio principal falla, ¿qué le mostramos al usuario?
por ejemplo, un contenido genérico para mantener la experiencia de usuario

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Patrón Timeouts para la resiliencia en microservicios

A

Si el Servicio B no responde en 200ms, se corta la conexión y se pasa al plan B. (NO BLOQUEAR RECURSOS ETERNAMENTE)