Preguntas sobre Arquitecturas para Microservicios

Pregunta Respuesta
1. ¿Qué es una arquitectura de microservicios? Una arquitectura de microservicios es un estilo de diseño en el que una aplicación se compone de varios servicios pequeños, independientes y desplegables por separado, que interactúan entre sí a través de APIs.
2. ¿Cómo se realiza la comunicación entre microservicios? La comunicación entre microservicios puede realizarse mediante llamadas HTTP/REST, mensajería asíncrona (como colas de mensajes), o protocolos de comunicación basados en eventos.
3. ¿Qué es el patrón de "Service Discovery" en microservicios? El patrón de "Service Discovery" permite a los microservicios encontrar y comunicarse entre sí de manera dinámica, mediante el uso de un registro centralizado de servicios.
4. ¿Cómo se maneja la resiliencia en una arquitectura de microservicios? La resiliencia se maneja implementando mecanismos como patrones de reintento, circuit breakers, y fallback methods para asegurar que el sistema pueda recuperarse de fallos.
5. ¿Qué es el patrón de "Circuit Breaker"? El patrón de "Circuit Breaker" evita que un fallo en un microservicio se propague a otros servicios, cortando la comunicación con el servicio fallido y permitiendo que el sistema recupere su estabilidad.
6. ¿Cómo se realiza la gestión de datos en una arquitectura de microservicios? La gestión de datos en microservicios se realiza mediante la técnica de "Database per Service", donde cada microservicio gestiona su propia base de datos, garantizando la separación de datos y la independencia de servicios.
7. ¿Qué es el patrón de "API Gateway"? El patrón de "API Gateway" es un componente que actúa como un punto de entrada único para todas las solicitudes a los microservicios, manejando tareas como enrutamiento, autenticación y autorización.
8. ¿Cómo se asegura la consistencia de datos en una arquitectura de microservicios? La consistencia de datos se asegura utilizando patrones como la consistencia eventual y mecanismos de compensación para manejar transacciones distribuidas.
9. ¿Qué es el patrón de "Event Sourcing"? El patrón de "Event Sourcing" implica almacenar el estado de una aplicación como una secuencia de eventos en lugar de un estado actual, lo que permite una visión completa de las modificaciones de datos.
10. ¿Qué es el patrón de "CQRS" (Command Query Responsibility Segregation)? El patrón CQRS separa las operaciones de lectura y escritura en un sistema, permitiendo optimizar cada una por separado y mejorar la escalabilidad y el rendimiento.
11. ¿Cómo se gestiona el logging y la monitorización en microservicios? Se gestiona centralizando los logs y métricas en un sistema de logging y monitorización, como ELK Stack o Prometheus, para proporcionar visibilidad y facilitar la detección de problemas.
12. ¿Qué es el patrón de "SAGA" en microservicios? El patrón de "SAGA" es un enfoque para manejar transacciones distribuidas dividiéndolas en una serie de transacciones locales que se coordinan mediante compensaciones en caso de fallo.
13. ¿Cómo se maneja la autenticación y autorización en una arquitectura de microservicios? Se maneja implementando un sistema de autenticación centralizado y utilizando tokens JWT para la autorización, asegurando que los microservicios puedan validar las credenciales de los usuarios.
14. ¿Qué es el patrón de "Strangler Fig"? El patrón de "Strangler Fig" es una técnica para migrar de una arquitectura monolítica a una de microservicios, reemplazando gradualmente el monolito por nuevos microservicios.
15. ¿Cómo se implementa el despliegue continuo en una arquitectura de microservicios? Se implementa utilizando pipelines de CI/CD que automatizan la construcción, prueba y despliegue de microservicios, permitiendo actualizaciones rápidas y seguras.
16. ¿Qué son los contratos de API y por qué son importantes en microservicios? Los contratos de API definen las interacciones entre microservicios. Son importantes para garantizar que los cambios en un servicio no rompan la compatibilidad con otros servicios.
17. ¿Cómo se maneja el versionado de APIs en microservicios? Se maneja versionando las APIs para permitir actualizaciones sin romper la compatibilidad con versiones anteriores. Esto se hace añadiendo versiones a las URLs o en los headers de las solicitudes.
18. ¿Qué es el patrón de "Backend for Frontend" (BFF)? El patrón BFF consiste en crear microservicios específicos para diferentes tipos de clientes (como web o móvil), optimizando la experiencia del usuario y la eficiencia de las solicitudes.
19. ¿Cómo se realiza la gestión de configuraciones en microservicios? Se realiza utilizando herramientas de gestión de configuraciones centralizadas, como Consul o Spring Cloud Config, para proporcionar configuraciones consistentes a todos los microservicios.
20. ¿Qué es el patrón de "Decomposition by Business Capability"? El patrón de "Decomposition by Business Capability" implica dividir la aplicación en microservicios basados en capacidades de negocio específicas, permitiendo una mayor alineación con los objetivos empresariales.