¿Qué es un Monolito en el contexto de arquitectura de software?
Una aplicación donde todos los componentes funcionales están integrados en una única unidad de despliegue y base de datos.
¿Cuál es la principal ventaja de los microservicios respecto al escalado?
Permiten el escalado selectivo: solo se escalan los componentes que tienen más carga, ahorrando recursos.
¿Qué significa que un microservicio deba ser autónomo?
Que debe poder desarrollarse, desplegarse y escalarse de forma independiente al resto del sistema.
¿Cómo suelen comunicarse los microservicios entre sí de forma estándar?
Principalmente a través de protocolos ligeros como REST (HTTP/JSON) o mensajería asíncrona.
¿Qué implica la “Descentralización de datos” en esta arquitectura?
Que cada microservicio debe ser dueño de su propia base de datos, evitando que otros servicios accedan a ella directamente.
¿Qué es un artefacto en el contexto de desarrollo de software?
Es el archivo binario resultante del proceso de compilación (ej: .jar, .war, imagen de Docker).
¿Cuál es la función de un repositorio tipo Proxy en Nexus o Artifactory?
Actuar como caché local de repositorios públicos externos para mejorar la velocidad y disponibilidad.
¿Qué diferencia a un repositorio Hosted de uno Virtual?
El Hosted almacena artefactos propios localmente; el Virtual agrupa varios repositorios bajo una única URL.
¿Por qué son fundamentales estos repositorios para la Inmutabilidad del software?
Porque aseguran que una versión específica de un binario no pueda ser modificada una vez publicada.
Además de librerías .jar o .npm, ¿qué elemento crítico de los microservicios suelen almacenar hoy día?
Imágenes de contenedores (Docker / OCI).
¿Qué establece la Ley de Conway en relación a los microservicios?
Que las organizaciones diseñan sistemas que son copias de sus propias estructuras de comunicación (equipos funcionales = servicios funcionales).
¿Qué es la Persistencia Políglota?
Es la capacidad de usar diferentes tecnologías de bases de datos (SQL, NoSQL, Grafo) según las necesidades de cada microservicio.
¿Cuál es la diferencia principal entre un componente de software tradicional y un microservicio?
El componente es una librería vinculada en tiempo de compilación; el microservicio es un proceso independiente que se comunica por red.
¿A qué se refiere el término “You build it, you run it”?
A que el equipo de desarrollo es responsable también de la operación y mantenimiento del servicio en producción.
¿Por qué se dice que los microservicios tienen un Gobierno Descentralizado?
Porque no hay una autoridad central que obligue a usar el mismo stack tecnológico para todos los servicios del sistema.
¿Qué es un fallo en cascada en microservicios?
Ocurre cuando el fallo o lentitud de un servicio provoca que los servicios que dependen de él también fallen, colapsando el sistema.
¿Por qué la consistencia de datos es un reto en esta arquitectura?
Porque al tener bases de datos independientes, no se pueden realizar transacciones ACID atómicas entre varios servicios.
¿Qué herramienta es necesaria para rastrear una petición que pasa por múltiples microservicios?
La Trazabilidad Distribuida (Distributed Tracing), usando herramientas como Jaeger o Zipkin.
¿A qué se refiere el término Consistencia Eventual?
A que los datos en diferentes servicios pueden no estar sincronizados instantáneamente, pero lo estarán tras un tiempo determinado.
¿Qué problema de rendimiento surge al sustituir llamadas en memoria por llamadas de red?
El incremento de la latencia y la posibilidad de errores de comunicación (timeouts, pérdidas de paquetes).
¿Qué significa el principio de Alta Cohesión en un microservicio?
Que todas las funciones dentro del servicio están estrechamente relacionadas con una única tarea de negocio.
¿Por qué es deseable el Bajo Acoplamiento entre microservicios?
Para permitir que cada servicio pueda evolucionar, desplegarse y fallar de forma independiente sin afectar a los demás.
¿Qué ocurre si dos microservicios comparten la misma Base de Datos?
Se produce un alto acoplamiento que impide modificar el esquema de datos de un servicio sin romper el otro.
¿Qué es un Monolito Distribuido?
Un sistema con múltiples servicios tan acoplados entre sí que pierden la agilidad de despliegue independiente.