Microservicios Flashcards

(226 cards)

1
Q

¿Qué es un Monolito en el contexto de arquitectura de software?

A

Una aplicación donde todos los componentes funcionales están integrados en una única unidad de despliegue y base de datos.

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

¿Cuál es la principal ventaja de los microservicios respecto al escalado?

A

Permiten el escalado selectivo: solo se escalan los componentes que tienen más carga, ahorrando recursos.

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

¿Qué significa que un microservicio deba ser autónomo?

A

Que debe poder desarrollarse, desplegarse y escalarse de forma independiente al resto del sistema.

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

¿Cómo suelen comunicarse los microservicios entre sí de forma estándar?

A

Principalmente a través de protocolos ligeros como REST (HTTP/JSON) o mensajería asíncrona.

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

¿Qué implica la “Descentralización de datos” en esta arquitectura?

A

Que cada microservicio debe ser dueño de su propia base de datos, evitando que otros servicios accedan a ella directamente.

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

¿Qué es un artefacto en el contexto de desarrollo de software?

A

Es el archivo binario resultante del proceso de compilación (ej: .jar, .war, imagen de Docker).

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

¿Cuál es la función de un repositorio tipo Proxy en Nexus o Artifactory?

A

Actuar como caché local de repositorios públicos externos para mejorar la velocidad y disponibilidad.

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

¿Qué diferencia a un repositorio Hosted de uno Virtual?

A

El Hosted almacena artefactos propios localmente; el Virtual agrupa varios repositorios bajo una única URL.

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

¿Por qué son fundamentales estos repositorios para la Inmutabilidad del software?

A

Porque aseguran que una versión específica de un binario no pueda ser modificada una vez publicada.

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

Además de librerías .jar o .npm, ¿qué elemento crítico de los microservicios suelen almacenar hoy día?

A

Imágenes de contenedores (Docker / OCI).

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

¿Qué establece la Ley de Conway en relación a los microservicios?

A

Que las organizaciones diseñan sistemas que son copias de sus propias estructuras de comunicación (equipos funcionales = servicios funcionales).

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

¿Qué es la Persistencia Políglota?

A

Es la capacidad de usar diferentes tecnologías de bases de datos (SQL, NoSQL, Grafo) según las necesidades de cada microservicio.

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

¿Cuál es la diferencia principal entre un componente de software tradicional y un microservicio?

A

El componente es una librería vinculada en tiempo de compilación; el microservicio es un proceso independiente que se comunica por red.

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

¿A qué se refiere el término “You build it, you run it”?

A

A que el equipo de desarrollo es responsable también de la operación y mantenimiento del servicio en producción.

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

¿Por qué se dice que los microservicios tienen un Gobierno Descentralizado?

A

Porque no hay una autoridad central que obligue a usar el mismo stack tecnológico para todos los servicios del sistema.

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

¿Qué es un fallo en cascada en microservicios?

A

Ocurre cuando el fallo o lentitud de un servicio provoca que los servicios que dependen de él también fallen, colapsando el sistema.

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

¿Por qué la consistencia de datos es un reto en esta arquitectura?

A

Porque al tener bases de datos independientes, no se pueden realizar transacciones ACID atómicas entre varios servicios.

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

¿Qué herramienta es necesaria para rastrear una petición que pasa por múltiples microservicios?

A

La Trazabilidad Distribuida (Distributed Tracing), usando herramientas como Jaeger o Zipkin.

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

¿A qué se refiere el término Consistencia Eventual?

A

A que los datos en diferentes servicios pueden no estar sincronizados instantáneamente, pero lo estarán tras un tiempo determinado.

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

¿Qué problema de rendimiento surge al sustituir llamadas en memoria por llamadas de red?

A

El incremento de la latencia y la posibilidad de errores de comunicación (timeouts, pérdidas de paquetes).

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

¿Qué significa el principio de Alta Cohesión en un microservicio?

A

Que todas las funciones dentro del servicio están estrechamente relacionadas con una única tarea de negocio.

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

¿Por qué es deseable el Bajo Acoplamiento entre microservicios?

A

Para permitir que cada servicio pueda evolucionar, desplegarse y fallar de forma independiente sin afectar a los demás.

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

¿Qué ocurre si dos microservicios comparten la misma Base de Datos?

A

Se produce un alto acoplamiento que impide modificar el esquema de datos de un servicio sin romper el otro.

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

¿Qué es un Monolito Distribuido?

A

Un sistema con múltiples servicios tan acoplados entre sí que pierden la agilidad de despliegue independiente.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
¿Cuál es la frase de diseño que mejor define la cohesión según Sam Newman?
"Agrupa aquellas cosas que cambian por las mismas razones".
26
¿Qué es el Lenguaje Ubicuo en DDD?
Un lenguaje común compartido entre desarrolladores y expertos de negocio para evitar malentendidos.
27
¿Cuál es la función principal de un Bounded Context?
Definir una frontera lógica donde un modelo de datos y sus términos tienen un significado específico y consistente.
28
¿Por qué el Bounded Context es el candidato ideal para convertirse en un Microservicio?
Porque garantiza que el servicio tenga una responsabilidad única y esté desacoplado de otros contextos.
29
¿Qué ocurre si un microservicio abarca múltiples Bounded Contexts?
Se pierde cohesión, el servicio se vuelve "pesado" y se dificulta su mantenimiento (se acerca a un monolito).
30
¿Quién es el autor del libro original que definió el Domain-Driven Design (DDD)?
Eric Evans.
31
¿Qué es el Lenguaje Ubicuo en DDD?
Es el lenguaje común acordado entre desarrolladores y expertos de negocio para evitar malentendidos.
32
¿Cuál es la función principal de un Bounded Context?
Definir una frontera lógica donde un modelo de datos y sus términos tienen un significado específico y consistente.
33
¿Qué diferencia a una Entidad de un Value Object?
La Entidad tiene un identificador único (ID), mientras que el Value Object se define solo por sus propiedades.
34
¿Qué riesgo ayuda a mitigar el DDD al diseñar microservicios?
El riesgo de crear un monolito distribuido o servicios excesivamente acoplados.
35
¿Para qué sirve una Capa Anticorrupción (ACL) en DDD?
Para traducir y aislar un modelo de dominio nuevo de las influencias o errores de un sistema externo o legacy.
36
¿Qué define un Bounded Context en DDD?
Una frontera lógica donde un modelo de dominio y su lenguaje tienen un significado específico.
37
¿Por qué es mala idea tener un modelo de datos único para toda la empresa?
Porque genera acoplamiento excesivo y modelos gigantes imposibles de mantener.
38
¿Qué sucede con un término como "Cliente" cuando cruza de un contexto a otro?
Su significado y atributos cambian para adaptarse a las necesidades de ese contexto específico.
39
¿Cuál es la relación recomendada entre un Bounded Context y un Microservicio?
Generalmente, un Bounded Context equivale a un Microservicio para mantener la autonomía.
40
¿Qué herramienta de DDD se usa para visualizar las relaciones entre distintos contextos?
El Context Map (Mapa de Contextos).
41
¿Qué sucede con el hilo de ejecución del emisor en una comunicación de bloqueo síncrono?
Se queda pausado o bloqueado hasta recibir la respuesta del receptor o llegar al timeout.
42
¿Cuál es el protocolo más utilizado para implementar llamadas síncronas entre microservicios?
HTTP (usando REST o gRPC).
43
¿Qué es el Acoplamiento Temporal?
Una dependencia donde un servicio no puede completar su tarea si el servicio al que llama no está disponible en ese preciso instante.
44
¿Qué patrón de diseño se utiliza para evitar que un fallo síncrono hunda todo el sistema?
El patrón Circuit Breaker (Disyuntor).
45
¿En qué situación es preferible usar comunicación síncrona a pesar de sus riesgos?
Cuando el proceso de negocio requiere una confirmación inmediata para que el usuario pueda proseguir.
46
¿Qué es un Message Broker?
Un intermediario (como RabbitMQ o Kafka) que recibe, almacena y entrega mensajes entre servicios.
47
En el modelo Dirigido por Eventos, ¿qué sabe el emisor sobre los receptores?
Nada. Solo emite el evento al bus; los interesados se encargan de escucharlo.
48
¿Cuál es la principal ventaja de la Comunicación Asíncrona frente a la síncrona?
Aumenta la Resiliencia: si el receptor está caído, el mensaje se guarda en la cola y se procesará cuando vuelva.
49
¿Qué patrón se usa para que un servicio pregunte periódicamente si una tarea asíncrona ha terminado?
El patrón Polling.
50
¿Por qué la comunicación por Datos Compartidos se considera arriesgada en microservicios?
Porque crea un fuerte acoplamiento a nivel de esquema de base de datos entre servicios.
51
¿Por qué gRPC es preferible a REST para la comunicación interna entre microservicios?
Por su alto rendimiento, menor consumo de ancho de banda (binario) y uso de HTTP/2.
52
¿En qué parte de una arquitectura de microservicios suele brillar GraphQL?
En el API Gateway o Edge Service, para agregar datos de múltiples servicios en una sola consulta.
53
¿Cuál es el principal inconveniente de usar SOAP en microservicios?
Su alta verbosidad (XML pesado) y complejidad, que van en contra de la ligereza y agilidad de los microservicios.
54
¿Qué restricción de los microservicios rompe la tecnología RMI?
El Gobierno Descentralizado (Persistencia Políglota), ya que obliga a usar Java en ambos extremos.
55
¿Cuál es la tecnología de comunicación más "universal" y compatible para exponer microservicios al exterior?
REST (HTTP/JSON).
56
¿Qué lenguaje de definición de interfaz (IDL) utiliza gRPC para definir sus mensajes?
Protocol Buffers (archivos .proto).
57
¿Cuál es la principal ventaja de usar HTTP/2 en gRPC frente al HTTP 1.1 de REST?
El multiplexado de peticiones y el streaming bidireccional.
58
¿Por qué gRPC no se usa habitualmente para APIs públicas en el navegador?
Porque los navegadores actuales no soportan nativamente las características de HTTP/2 que requiere gRPC sin un intermediario (gRPC-Web).
59
¿Qué diferencia hay en el formato de datos entre REST y gRPC?
REST usa formatos de texto (como JSON), mientras que gRPC usa un formato binario mucho más compacto.
60
¿A qué se refiere el término "Generación de Código" en gRPC?
A que a partir de un archivo .proto, gRPC crea automáticamente los stubs y skeletons en el lenguaje de programación que elijas.
61
¿Qué es el Over-fetching y cómo lo soluciona GraphQL?
Es recibir más datos de los necesarios; GraphQL lo evita permitiendo al cliente especificar exactamente los campos que desea.
62
¿Qué componente del servidor GraphQL se encarga de buscar los datos en la fuente real (DB, API, etc.)?
Los Resolvers.
63
¿Por qué se dice que GraphQL es eficiente para aplicaciones móviles?
Porque permite obtener toda la información de una pantalla en una sola petición (evitando el Under-fetching).
64
¿A qué se refiere el término Esquema (Schema) en GraphQL?
Al contrato que define qué tipos de datos existen, sus campos y cómo se relacionan entre sí.
65
¿Cómo ayuda GraphQL a la Persistencia Políglota?
Actuando como capa intermedia que puede unir datos de bases de datos SQL, NoSQL y otras APIs de forma transparente para el usuario.
66
¿Qué problema de rendimiento soluciona GraphQL al permitir pedir solo los campos necesarios?
El Over-fetching (sobrecarga de datos innecesarios).
67
¿Cuál es la diferencia principal entre una Query y una Mutation?
La Query es para lectura de datos y la Mutation es para escritura o modificación.
68
¿Qué es un Resolver en el servidor de GraphQL?
Una función encargada de obtener los datos reales para un campo específico del esquema.
69
¿Por qué GraphQL reduce la latencia en dispositivos móviles?
Porque permite agrupar múltiples peticiones de recursos distintos en una sola llamada de red.
70
¿Cómo se llama el lenguaje utilizado para definir los tipos y operaciones en el servidor?
SDL (Schema Definition Language).
71
¿Cuál es la librería más utilizada en el ecosistema de JavaScript para servidores GraphQL?
Apollo Server.
72
¿Qué framework de Java integra GraphQL de forma oficial con Spring Boot?
Spring for GraphQL.
73
¿Cómo se llama la implementación líder para .NET conocida por su alto rendimiento?
Hot Chocolate.
74
¿Qué diferencia a una implementación "Code-first" de una "Schema-first"?
Code-first genera el esquema desde el código; Schema-first escribe el SDL primero y luego el código.
75
¿Qué librería de Netflix se utiliza para arquitecturas de microservicios con Java?
Netflix DGS (Domain Graph Service).
76
¿Qué es el Desacoplamiento Temporal en el contexto de un broker?
La capacidad de que emisor y receptor no necesiten estar disponibles al mismo tiempo para comunicarse.
77
¿Cuál es la principal diferencia entre un Topic y una Queue?
En una Queue el mensaje suele ser consumido por un solo receptor; en un Topic el mensaje se difunde a todos los suscriptores.
78
¿Por qué Apache Kafka es tan popular para el procesamiento de logs?
Porque permite almacenar eventos de forma persistente e inmutable, permitiendo su re-procesamiento en cualquier momento.
79
¿Qué significa que un microservicio actúe como Consumer?
Que está suscrito a una cola o tópico del broker para recibir y procesar los mensajes que llegan.
80
¿Cuál es el riesgo de usar Redis como único broker de mensajes crítico?
Que, al ser principalmente en memoria, existe un mayor riesgo de pérdida de datos si el servidor falla, comparado con Kafka o RabbitMQ.
81
¿Cuál es el servicio de colas de mensajes más utilizado en la nube de AWS?
Amazon SQS (Simple Queue Service).
82
¿Qué diferencia a una cola SQS Estándar de una FIFO?
La cola FIFO garantiza que los mensajes se procesen en el mismo orden en que se enviaron.
83
¿Qué broker es conocido por ser extremadamente ligero y optimizado para Kubernetes?
NATS.
84
¿En qué se diferencia principalmente Google Cloud Pub/Sub de Amazon SQS?
Pub/Sub es un servicio de mensajería global (orientado a eventos masivos), mientras que SQS suele estar ligado a una región y es más para colas de trabajo.
85
¿Qué protocolo estándar de Java suele implementar ActiveMQ?
El estándar JMS (Java Message Service).
86
¿Qué es el tráfico Norte-Sur en microservicios?
Es el tráfico de red que entra y sale del sistema (desde el cliente externo hacia los microservicios).
87
¿Cuál es la principal ventaja de centralizar la Autenticación en el Gateway?
Evita que cada microservicio tenga que implementar su propia lógica de validación de tokens, reduciendo duplicidad.
88
¿Qué diferencia al API Gateway de un Load Balancer tradicional?
El Load Balancer solo reparte tráfico; el API Gateway entiende de rutas a nivel de aplicación (L7) y puede transformar peticiones.
89
¿Qué es la Agregación de Peticiones en un Gateway?
La capacidad de realizar múltiples llamadas internas a diferentes servicios y devolver una única respuesta combinada al cliente.
90
¿En qué consiste el patrón BFF (Backend For Frontend)?
En crear Gateways específicos para cada tipo de cliente (móvil, web, etc.) para optimizar las respuestas según el dispositivo.
91
¿Qué es el tráfico Este-Oeste en microservicios?
Es la comunicación interna que ocurre entre los propios microservicios dentro de la red privada.
92
¿En qué consiste el patrón Sidecar?
En desplegar un proxy junto a cada instancia de un microservicio para gestionar su tráfico de forma independiente al código.
93
¿Cuál es la diferencia entre el Data Plane y el Control Plane?
El Data Plane maneja el tráfico real (proxies); el Control Plane gestiona las políticas y la configuración de esos proxies.
94
¿Qué ventaja de seguridad ofrece el Service Mesh de forma automática?
El mTLS (Mutual TLS), que autentica y cifra la comunicación entre todos los servicios de la malla.
95
¿Cuál es el producto de Service Mesh más extendido y utilizado actualmente?
Istio.
96
¿Qué organización gestiona actualmente el proyecto MicroProfile?
La Fundación Eclipse.
97
¿Cuál es el objetivo principal de la especificación MicroProfile Health?
Proporcionar información sobre el estado del servicio para que orquestadores como Kubernetes puedan gestionarlo.
98
¿Qué tres especificaciones de Jakarta EE forman la base de MicroProfile?
CDI (Inyección de dependencias), JAX-RS (REST) y JSON-P (Procesamiento de JSON).
99
¿Qué anotación se usa en MicroProfile para evitar que un fallo en un servicio hunda a los demás?
@CircuitBreaker (dentro de la especificación Fault Tolerance).
100
¿Qué ventaja tiene usar Quarkus como implementación de MicroProfile?
Su altísimo rendimiento, bajo consumo de memoria y capacidad de compilación nativa (GraalVM).
101
¿Qué tecnología utiliza Quarkus para crear binarios nativos de Linux?
GraalVM.
102
¿Cuál es la principal diferencia entre Quarkus y los frameworks tradicionales respecto al arranque?
Quarkus desplaza la carga de trabajo (escaneo de anotaciones, etc.) del tiempo de ejecución al tiempo de compilación.
103
¿Qué significa el término "Developer Joy" en el contexto de Quarkus?
Se refiere a características como el Live Coding, que permite ver cambios en el código sin reiniciar la aplicación.
104
¿Por qué Micronaut es una excelente opción para AWS Lambda (Serverless)?
Debido a su arranque instantáneo y bajo consumo de memoria, lo que evita costes por tiempo de computación excesivo.
105
¿En qué estándar se basa Quarkus para asegurar que las APIs sean familiares a los desarrolladores de Java EE?
Eclipse MicroProfile.
106
¿Qué diferencia fundamental hay entre Spring Boot y Spring Cloud?
Spring Boot construye servicios individuales; Spring Cloud gestiona la coordinación y comunicación entre ellos.
107
¿Cuál es la función de Eureka en un sistema de microservicios?
Actuar como un registro central donde los servicios publican su ubicación para ser encontrados por otros.
108
¿Por qué se dice que Hystrix evita fallos en cascada?
Porque implementa el patrón Circuit Breaker, aislando los servicios que fallan para que no saturen al resto.
109
¿Cuál es la evolución moderna de Netflix Zuul dentro del ecosistema Spring?
Spring Cloud Gateway.
110
¿Qué problema resuelve Spring Cloud Config?
La gestión centralizada de configuraciones para evitar tener archivos de propiedades dispersos y desactualizados en cada microservicio.
111
¿Qué lenguaje de programación permite que el proxy de Linkerd sea tan seguro y rápido?
Rust.
112
¿Por qué se dice que Envoy es el "Data Plane" de Istio?
Porque es el componente que realmente intercepta y gestiona el tráfico de red entre servicios.
113
¿Cuál es la principal ventaja de usar Istio frente a librerías como Spring Cloud?
Que la lógica de red (reintentos, seguridad) es transparente al código y funciona con cualquier lenguaje.
114
¿En qué consiste un despliegue Canary gestionado por Istio?
En enviar un pequeño porcentaje de tráfico (ej. 5%) a una nueva versión del servicio para probarla antes del despliegue total.
115
¿Qué significa que una comunicación sea mTLS en el contexto de una malla?
Que ambos servicios se autentican mutuamente y cifran la conexión mediante certificados gestionados por la malla.
116
¿Qué herramienta de HashiCorp combina Discovery y almacenamiento de configuración?
Consul.
117
¿Cuál es la diferencia entre el balanceo de carga de NGINX y el de Spring Cloud LoadBalancer?
NGINX es balanceo en el lado del servidor; Spring Cloud es en el lado del cliente.
118
¿Para qué sirve el patrón Circuit Breaker en la recuperación ante desastres?
Para evitar que un fallo en un servicio se propague y bloquee los hilos de los servicios que lo llaman.
119
¿Qué herramienta se usa para hacer Backups y recuperación de desastres en clústeres de Kubernetes?
Velero.
120
Si un microservicio en Kubernetes quiere llamar a otro, ¿qué mecanismo de Discovery usa por defecto?
El DNS interno de Kubernetes.
121
¿Qué componente centraliza la configuración externa de los microservicios?
El Config Server (ej. Spring Cloud Config).
122
¿Cuál es la ventaja de usar Kong para centralizar funciones frente a hacerlo en el código?
Que permite añadir funcionalidades (seguridad, cuotas) mediante plugins sin recompilar los microservicios.
123
¿Qué herramienta se usa específicamente para centralizar la gestión de secretos y contraseñas?
HashiCorp Vault.
124
¿En qué consiste el Rate Limiting centralizado en un API Gateway?
En limitar el número de peticiones que un usuario puede hacer por segundo para proteger a los servicios internos.
125
¿Cómo ayuda un Config Server a la agilidad del sistema?
Permite cambiar parámetros de funcionamiento de múltiples servicios en tiempo real desde un único punto (ej. un repo Git).
126
¿Qué es un Trace ID o ID de correlación?
Un identificador único que se adjunta a una petición y se propaga por todos los microservicios para rastrear su camino.
127
¿Cuál es la diferencia entre Prometheus y Grafana?
Prometheus recolecta y almacena las métricas; Grafana las visualiza en gráficos y paneles.
128
¿Para qué sirve el estándar OpenTelemetry?
Para unificar la forma en que las aplicaciones generan y envían trazas, métricas y logs a cualquier herramienta de análisis.
129
¿Qué información nos da una herramienta como Jaeger?
Una visualización detallada del tiempo que ha pasado una petición en cada microservicio y dónde ha fallado exactamente.
130
¿Qué ventaja ofrece una solución APM como Datadog frente a herramientas gratuitas?
Ofrece análisis automáticos, alertas inteligentes y una visión integrada de toda la infraestructura con menos configuración manual.
131
¿Qué significa que un token JWT sea "autocontenido"?
Que lleva toda la información necesaria (usuario, roles, expiración) dentro de sí mismo, permitiendo al servicio validarlo sin consultar una DB.
132
¿Cuál es la diferencia entre Autenticación y Autorización?
Autenticación es saber quién eres; Autorización es saber a qué tienes permiso.
133
¿Por qué es peligroso usar sesiones tradicionales (JSESSIONID) en microservicios?
Porque obligan al servidor a guardar estado, lo que impide escalar horizontalmente de forma sencilla.
134
¿Qué función cumple Keycloak en esta arquitectura?
Actúa como un Servidor de Autorización (Authorization Server) centralizado.
135
¿Para qué sirve el protocolo mTLS en la comunicación interna?
Para asegurar que tanto el emisor como el receptor se identifiquen mutuamente y la charla viaje cifrada.
136
¿Qué es OpenTelemetry (OTel)?
Es un estándar abierto para recolectar métricas, logs y trazas de forma neutral, sin casarse con un solo proveedor.
137
¿Para qué sirve un Mapa de Topología en microservicios?
Para visualizar las dependencias y flujos de tráfico entre los distintos servicios en tiempo real.
138
¿Qué diferencia a Grafana de Prometheus?
Prometheus es el motor que almacena los datos (métricas), mientras que Grafana es la herramienta que los visualiza en cuadros de mando.
139
¿Qué problema resuelve la Trazabilidad Distribuida?
Permite rastrear una petición a través de todos los microservicios por los que pasa para identificar cuellos de botella.
140
¿Cuál es la función de Consul en una arquitectura distribuida?
Gestionar el Service Discovery (localización de servicios) y la configuración centralizada.
141
¿Cuál es el principal riesgo de usar una Shared Database (Base de datos compartida)?
Crea un acoplamiento fuerte (monolito distribuido), donde un cambio en el esquema rompe múltiples servicios.
142
¿Qué es el patrón CQRS?
Es la separación de las operaciones de escritura (comandos) y lectura (consultas) en modelos de datos distintos.
143
¿Para qué se utilizan las transacciones compensatorias en una Saga?
Para deshacer los cambios realizados por pasos anteriores si uno de los pasos de la transacción distribuida falla.
144
¿Cuál es la diferencia entre Saga por Coreografía y por Orquestación?
En la coreografía los servicios deciden según eventos; en la orquestación hay un controlador central que dirige el flujo.
145
¿Qué patrón de compartición es mejor para consultas en tiempo real de baja complejidad?
El patrón de API Composition.
146
¿Qué significa la "C" en el acrónimo CQRS?
Command (Comando), que representa cualquier acción que cambia el estado de los datos.
147
¿Cuál es la principal ventaja de separar la lectura de la escritura?
Permite escalar de forma independiente: puedes dar más recursos a las consultas si tienes mucho tráfico de lectura.
148
¿Qué es la Consistencia Eventual en CQRS?
Es el breve periodo de tiempo en el que la base de datos de lectura aún no se ha sincronizado con la de escritura.
149
¿Por qué CQRS mejora el rendimiento del Frontend?
Porque la base de datos de lectura suele tener los datos "pre-cocinados" (desnormalizados) tal y como los necesita la pantalla.
150
¿Es recomendable aplicar CQRS en todos los microservicios de un sistema?
No, solo en aquellos donde la complejidad de las consultas o el volumen de tráfico justifiquen el esfuerzo extra de desarrollo.
151
¿Cuál es el objetivo principal del protocolo 2PC?
Garantizar la atomicidad en transacciones que afectan a múltiples bases de datos distribuidas.
152
¿Qué sucede si un solo participante vota "No" en la primera fase?
El coordinador ordena un Rollback global a todos los participantes.
153
¿Cuál es la mayor desventaja del 2PC en sistemas de alta disponibilidad?
Es un protocolo bloqueante: los recursos quedan retenidos hasta que finaliza la segunda fase.
154
¿Quién es el encargado de tomar la decisión final de hacer commit o rollback?
El Coordinador de la transacción.
155
¿Qué alternativa asíncrona suele usarse en microservicios para evitar el bloqueo del 2PC?
El Patrón Saga.
156
¿Qué es una Transacción Compensatoria?
Una operación que deshace semánticamente los efectos de una transacción anterior que ya fue confirmada.
157
¿En qué se diferencia la Coreografía de la Orquestación?
En la coreografía los servicios intercambian eventos sin un jefe; en la orquestación hay un componente central que dirige el flujo.
158
¿Qué tipo de consistencia garantiza el patrón SAGA?
Consistencia Eventual (los datos pueden no estar sincronizados durante unos milisegundos).
159
¿Cuál es la principal ventaja de SAGA sobre 2PC en microservicios?
SAGA no mantiene bloqueos de larga duración, lo que permite una mayor escalabilidad.
160
¿Qué sucede si el cuarto paso de una SAGA de cinco pasos falla?
Se ejecutan las transacciones compensatorias del tercer, segundo y primer paso en orden inverso.
161
¿Qué framework de Java es conocido como "Supersonic Subatomic Java"?
Quarkus.
162
¿Cuál es la principal ventaja de FastAPI sobre Flask?
Su soporte nativo para programación asíncrona y validación de datos automática.
163
¿Qué patrón de arquitectura impone NestJS por defecto?
Arquitectura modular basada en Inyección de Dependencias.
164
¿Qué permite hacer la compilación AOT (Ahead-of-Time) en frameworks modernos?
Reducir el tiempo de arranque al realizar el trabajo pesado durante la compilación y no al ejecutar.
165
¿Cuál es la unidad mínima de ejecución que se puede gestionar en Kubernetes?
El Pod.
166
¿Qué componente de K8s garantiza que un número específico de réplicas de un Pod esté siempre en ejecución?
El Deployment (internamente usa un ReplicaSet).
167
¿Cuál es la diferencia principal entre un Service y un Ingress?
El Service gestiona la conectividad interna/básica, mientras que el Ingress gestiona el acceso externo avanzado (HTTP/HTTPS).
168
¿Cómo se llama el proceso de actualización que permite desplegar una nueva versión sin caída de servicio?
Rolling Update.
169
¿Para qué sirve un Namespace en un clúster compartido por varios ministerios?
Para crear un aislamiento lógico y dividir los recursos entre diferentes proyectos o equipos.
170
¿Qué objeto de K8s usarías para almacenar la contraseña de una base de datos de forma más segura que un ConfigMap?
Un Secret.
171
¿Qué significa que un despliegue sea declarativo?
Que el administrador define qué resultado quiere obtener, y el sistema se encarga de ejecutar los pasos para lograrlo.
172
¿Cuál es la principal ventaja de la Infraestructura como Código (IaC)?
La repetibilidad y la consistencia; evita errores humanos al configurar entornos manualmente.
173
En un despliegue Blue-Green, ¿qué función cumple el balanceador de carga?
Actúa como un conmutador para desviar instantáneamente el tráfico de la versión antigua a la nueva.
174
¿Qué diferencia hay entre CI y CD?
CI (Integración Continua) automatiza la construcción y pruebas; CD (Despliegue Continuo) automatiza la subida a producción.
175
¿Cómo ayuda el aislamiento a la seguridad del sistema?
Evita el "movimiento lateral": si un atacante compromete un contenedor, le será mucho más difícil saltar al resto del sistema.
176
¿Qué componente permite ejecutar varias VMs sobre un único hardware físico?
El Hipervisor (o Monitor de Máquina Virtual).
177
¿Cuál es la diferencia técnica clave entre una VM y un Contenedor?
La VM virtualiza el hardware (incluye SO propio); el Contenedor virtualiza el SO (comparte el Kernel).
178
¿A qué modelo de servicio pertenece AWS Lambda?
Al modelo FaaS (Function as a Service) o Serverless.
179
¿Qué ventaja principal ofrece el modelo PaaS al desarrollador?
Permite centrarse en el código al delegar la gestión del SO y el middleware en el proveedor.
180
¿Por qué el despliegue en Máquina Física se considera menos eficiente para microservicios?
Por la dificultad de aislamiento, el infrautilizamiento de recursos y la falta de agilidad para escalar.
181
¿Cuál es la principal diferencia entre IaaS y PaaS?
En IaaS gestionas el Sistema Operativo; en PaaS el SO es gestionado por el proveedor.
182
¿En qué modelo se incluye Kubernetes gestionado (como AKS o GKE)?
En el modelo CaaS (Container as a Service).
183
¿Qué ventaja económica tiene el modelo FaaS?
El pago es por uso real (ejecución); si no hay peticiones, el coste es cero.
184
¿En qué nivel de abstracción situarías el servicio Amazon EC2?
En IaaS (Infraestructura como Servicio).
185
¿Por qué FaaS se conoce también como Serverless?
Porque el desarrollador se abstrae totalmente de la existencia de servidores; solo ve funciones.
186
¿Qué diferencia hay entre GitHub Actions y ArgoCD en un flujo moderno?
GitHub Actions suele encargarse de la CI (construir/probar), mientras que ArgoCD se encarga de la CD (desplegar en K8s vía GitOps).
187
¿Para qué se utiliza SonarQube dentro del pipeline?
Para realizar un Análisis Estático de Código (SAST) en busca de bugs, vulnerabilidades y deuda técnica.
188
¿Qué significa el término GitOps?
Es una práctica donde el repositorio de Git es la "única fuente de verdad" para el estado de la infraestructura.
189
¿Por qué se usa Trivy antes de desplegar un contenedor?
Para escanear la imagen del contenedor en busca de vulnerabilidades en el Sistema Operativo base o las dependencias.
190
¿Qué herramienta usarías para empaquetar y versionar tus manifiestos de Kubernetes?
Helm (usando Charts).
191
¿En qué se diferencia Traefik de un proxy tradicional como Nginx?
En su capacidad de descubrimiento automático de servicios en entornos dinámicos como Docker o K8s.
192
¿Qué componente de infraestructura suele usar Spinnaker para ejecutar sus despliegues?
Suele integrarse con herramientas de CI (como Jenkins) para recibir los artefactos y lanzarlos a la nube.
193
¿De dónde saca Kubernetes la información sobre el consumo de RAM de un contenedor específico?
De cAdvisor.
194
¿Cuál es el concepto fundamental de GitOps que aplica ArgoCD?
El uso de un repositorio Git como la "fuente única de verdad" para el estado de la infraestructura.
195
¿Qué sucede en ArgoCD si detecta un "Drift" (diferencia) entre Git y el Cluster?
ArgoCD marca la aplicación como "Out of Sync" y puede forzar la resincronización automática.
196
¿Cómo se llama la unidad mínima de ejecución en Tekton?
Se llama Task (Tarea).
197
¿Por qué se dice que Tekton es "Cloud-Native"?
Porque se ejecuta como recursos nativos de Kubernetes (CRDs) y cada paso corre en contenedores efímeros.
198
¿Qué rol cumple Tekton en el flujo de trabajo junto a ArgoCD?
Tekton suele encargarse de la fase de CI (build/test) y ArgoCD de la fase de CD (deployment).
199
¿Qué problema principal resuelven los Contract Tests?
Evitan que un servicio rompa a sus consumidores al cambiar su API de forma inesperada.
200
¿En qué consiste el Chaos Engineering?
En inyectar fallos controlados (latencia, caídas) para verificar la resiliencia del sistema.
201
¿Qué ventaja ofrece Testcontainers sobre los mocks tradicionales?
Permite testear contra instancias reales de bases de datos o brokers en contenedores efímeros.
202
¿Por qué no se recomienda tener muchos tests End-to-End en microservicios?
Porque son lentos, costosos de mantener y muy difíciles de depurar cuando fallan.
203
¿Cuál es la diferencia entre un Mock y un Stub en tests de componentes?
Un Stub devuelve datos fijos; un Mock además verifica que la llamada se haya realizado con los parámetros correctos.
204
¿Cuál es la diferencia entre un log y una métrica?
El log es un texto detallado de un evento; la métrica es un valor numérico agregado en el tiempo.
205
¿Qué herramienta del stack EFK se encarga de la visualización de los logs?
Kibana.
206
¿Qué estándar permite que diferentes herramientas de observabilidad hablen el mismo idioma en 2026?
OpenTelemetry.
207
¿Para qué sirve Chaos Mesh en un entorno de microservicios?
Para realizar Chaos Engineering, inyectando fallos controlados para probar la resiliencia.
208
¿Qué componente de Prometheus se encarga de enviar los correos de aviso al equipo técnico?
Alertmanager.
209
¿Qué diferencia hay entre Autenticación y Autorización?
La Autenticación verifica quién eres; la Autorización verifica qué tienes permiso para hacer.
210
¿Qué es el mTLS y por qué es importante en microservicios?
Es el TLS mutuo, donde ambos servicios se identifican con certificados; asegura que la comunicación interna sea privada y confiable (Zero Trust).
211
¿Cuál es la ventaja de usar JWT en una arquitectura distribuida?
Permite una seguridad sin estado (stateless), ya que el token contiene toda la información necesaria para verificar los permisos sin consultar una base de datos central.
212
¿Qué función cumple el campo "scopes" en un token de acceso?
Define los permisos específicos (ej: leer, escribir) que el portador del token tiene sobre un recurso.
213
¿Por qué no se deben almacenar secretos en el repositorio de Git?
Porque cualquier persona con acceso al código (o un atacante que lo robe) tendría acceso inmediato a las credenciales críticas del sistema.
214
¿Qué estado del Circuit Breaker permite probar si un servicio se ha recuperado?
El estado Half-Open (Medio Abierto).
215
¿Por qué es peligrosa una política de reintentos sin Exponential Backoff?
Porque puede causar un ataque de denegación de servicio (DoS) involuntario al servicio que ya está sufriendo.
216
¿Qué patrón de resiliencia se basa en el aislamiento de recursos físicos o lógicos?
El patrón Bulkhead.
217
¿Cuál es el requisito indispensable para poder aplicar Reintentos de forma segura en escrituras?
Que la operación sea Idempotente.
218
¿Qué librería de Java ha sustituido a Netflix Hystrix para implementar estos patrones?
Resilience4j.
219
¿Qué término define la capacidad de añadir más instancias de un microservicio para absorber tráfico?
Escalado Horizontal (Scaling Out).
220
¿Cuál es la principal limitación del Escalado Vertical?
El límite físico del hardware y el coste desproporcionado al llegar a equipos de gama alta.
221
¿Qué requisito debe cumplir un microservicio para escalar horizontalmente de forma eficiente?
Debe ser Stateless (sin estado), para que la sesión no dependa de una instancia concreta.
222
¿En qué consiste el Database Sharding?
En fragmentar la base de datos para que diferentes servidores gestionen distintos subconjuntos de datos.
223
¿Cómo ayuda el escalado horizontal a la Alta Disponibilidad?
Al tener múltiples réplicas, la caída de una de ellas no implica la interrupción del servicio para el usuario final.
224
¿Qué es el Auto-scaling en Kubernetes?
La capacidad del clúster de aumentar o disminuir el número de Pods (HPA) o Nodos (CA) según la carga real.
225
¿Qué diferencia hay entre Escalabilidad y Elasticidad?
La Escalabilidad es la capacidad de crecer; la Elasticidad es la capacidad de hacerlo de forma automática y volver al estado inicial.
226
¿A qué se refiere el término Shared-nothing architecture?
A que cada microservicio tiene sus propios recursos y datos, sin compartir nada con los demás para evitar cuellos de botella.