Contenedores y microservicios: arquitectura y despliegue — Test de Cuerpo de Gestión de Sistemas e Informática de la Administración del Estado
Test gratuito de 30 preguntas de Cuerpo de Gestión de Sistemas e Informática de la Administración del Estado, con la explicación justificada de cada respuesta. Responde las preguntas y envía el test para ver tu resultado: no necesitas registrarte.
Según la arquitectura de microservicios, ¿cuál de los siguientes es un principio fundamental para la comunicación entre servicios?
- ALos servicios deben compartir una base de datos común para garantizar la consistencia.
- BLa comunicación debe realizarse siempre de forma síncrona mediante llamadas HTTP REST.
- CLos servicios deben estar débilmente acoplados y ser independientes en su despliegue.
- DCada servicio debe exponer su estado interno directamente a otros servicios.
En Docker, ¿qué comando se utiliza para construir una imagen a partir de un Dockerfile?
- Adocker create image
- Bdocker build
- Cdocker image run
- Ddocker commit
¿Cuál es la función principal de un orquestador de contenedores como Kubernetes?
- AProporcionar un entorno de ejecución ligero para aplicaciones en contenedores.
- BGestionar el ciclo de vida de los contenedores, incluyendo despliegue, escalado y recuperación.
- CAlmacenar imágenes de contenedores en un registro privado.
- DMonitorear el rendimiento de las aplicaciones en tiempo real.
En el contexto de seguridad de contenedores, ¿qué establece el principio de privilegios mínimos?
- ALos contenedores deben ejecutarse siempre con capacidades de superusuario (root).
- BLos contenedores deben tener acceso a todos los recursos del host para un funcionamiento óptimo.
- CLos contenedores deben ejecutarse con solo los permisos necesarios para su tarea.
- DCada contenedor debe aislarse en una máquina virtual independiente.
¿Qué es un 'Sidecar' en el patrón de diseño para microservicios?
- AUn contenedor que se ejecuta en paralelo al contenedor principal para extender o mejorar su funcionalidad.
- BUn servicio que actúa como puerta de enlace única para todas las peticiones entrantes.
- CUna base de datos compartida que almacena el estado de todos los servicios.
- DUn mecanismo para sincronizar relojes entre diferentes instancias de servicio.
Según el Esquema Nacional de Seguridad (ENS), ¿qué categoría de sistemas estaría obligada a aplicar medidas de seguridad en un despliegue de microservicios para la AGE?
- ASolo los sistemas clasificados como de alta seguridad.
- BTodos los sistemas que traten información clasificada.
- CTodos los sistemas de información de la Administración General del Estado, según su categoría.
- DSolo los sistemas que procesen datos personales.
En Kubernetes, ¿qué objeto se utiliza para exponer un conjunto de pods como un servicio de red?
- ADeployment
- BIngress
- CService
- DConfigMap
¿Qué tecnología de virtualización subyacente utilizan los contenedores Docker por defecto en Linux?
- AHyper-V
- BKVM
- Cnamespaces y cgroups del kernel
- DVMware ESXi
En una arquitectura de microservicios, el patrón 'Circuit Breaker' se utiliza principalmente para:
- AProteger un servicio ante fallos en llamadas a servicios externos, evitando cascadas de error.
- BGestionar la autenticación y autorización de usuarios.
- CAlmacenar en caché las respuestas de las bases de datos.
- DDistribuir la carga de tráfico entre múltiples instancias.
¿Cuál es el propósito del comando 'docker-compose'?
- AGestionar el clúster de contenedores en múltiples nodos.
- BDefinir y ejecutar aplicaciones Docker multi-contenedor.
- CMonitorizar el rendimiento de los contenedores en ejecución.
- DConstruir imágenes Docker a partir de código fuente.
Según la Ley Orgánica 3/2018 (LOPDGDD), ¿qué principio debe aplicarse al tratar datos personales en microservicios?
- APrincipio de concentración de datos en un único servicio.
- BPrincipio de minimización de datos, recogiendo solo los estrictamente necesarios.
- CPrincipio de almacenamiento indefinido para disponibilidad.
- DPrincipio de acceso libre entre servicios para eficiencia.
¿Qué objeto de Kubernetes se utiliza para gestionar el despliegue y actualización de un conjunto de pods?
- APod
- BReplicaSet
- CStatefulSet
- DDeployment
En el contexto de contenedores, ¿qué es un 'registro' (registry)?
- AUn sistema de monitorización de contenedores en ejecución.
- BUn servicio para almacenar y distribuir imágenes de contenedores.
- CUna base de datos que almacena los logs de los contenedores.
- DUna herramienta para orquestar contenedores en un clúster.
¿Qué patrón de arquitectura se utiliza para gestionar la configuración distribuida en microservicios?
- AService Discovery
- BAPI Gateway
- CConfiguration Server
- DMessage Broker
En Kubernetes, ¿qué componente es responsable de programar los pods en los nodos?
- Akubelet
- Bkube-proxy
- Ckube-scheduler
- Detcd
¿Qué ventaja principal ofrecen los contenedores frente a las máquinas virtuales tradicionales?
- AMayor aislamiento de seguridad.
- BMenor overhead y mayor eficiencia en el uso de recursos.
- CCapacidad para ejecutar diferentes sistemas operativos en el mismo host.
- DNo requieren un sistema operativo huésped.
Según el modelo de madurez de microservicios, ¿qué caracteriza a un servicio 'stateless'?
- AAlmacena el estado de la sesión en memoria local.
- BNo mantiene estado persistente entre peticiones, delegándolo a almacenes externos.
- CSolo maneja peticiones de lectura.
- DRequiere afinidad de sesión con el cliente.
¿Qué comando de Docker se utiliza para ejecutar un contenedor en segundo plano (detached mode)?
- Adocker run -d
- Bdocker start -b
- Cdocker exec --detach
- Ddocker attach --background
En Kubernetes, ¿qué recurso se utiliza para gestionar el almacenamiento persistente independiente del ciclo de vida del pod?
- AVolume
- BPersistentVolume
- CStorageClass
- DConfigMap
¿Qué protocolo es comúnmente utilizado para la comunicación asíncrona entre microservicios?
- AHTTP/1.1
- BgRPC
- CAMQP (ej: RabbitMQ)
- DFTP
¿Qué herramienta se utiliza comúnmente para la gestión de paquetes y despliegues en Kubernetes?
- AAnsible
- BHelm
- CTerraform
- DPuppet
Según las buenas prácticas de Docker, ¿cuál es el propósito de usar un archivo .dockerignore?
- AIgnorar contenedores en ejecución durante las operaciones de limpieza.
- BExcluir archivos y directorios del contexto de construcción para reducir el tamaño de la imagen.
- CEvitar que ciertas imágenes sean extraídas de registros públicos.
- DDeshabilitar las capacidades de seguridad por defecto.
En el contexto del ENS, ¿qué medida de protección es aplicable a los sistemas que despliegan microservicios?
- ACifrado de datos en reposo y en tránsito, según la categoría del sistema.
- BUso exclusivo de software propietario.
- CAlmacenamiento centralizado de todos los logs en medios físicos.
- DDespliegue obligatorio en infraestructura on-premise.
¿Qué componente de Kubernetes se encarga de exponer servicios HTTP/HTTPS desde el exterior del clúster?
- AService de tipo NodePort
- BService de tipo ClusterIP
- CIngress Controller
- Dkube-proxy
¿Qué característica define a una arquitectura de microservicios frente a una monolítica?
- ATodos los componentes se ejecutan en un único proceso.
- BLa aplicación se estructura como un conjunto de servicios pequeños e independientes.
- CComparten una única base de datos transaccional.
- DEl despliegue se realiza en una sola operación.
¿Qué comando de Kubernetes se utiliza para ver los pods en un namespace específico?
- Akubectl get pods --all-namespaces
- Bkubectl get pods -n <namespace>
- Ckubectl list pods --namespace <namespace>
- Dkubectl describe pods <namespace>
En Docker, ¿cuál es la capa superior de una imagen que es escribible y específica de cada contenedor?
- ACapa base (base layer)
- BCapa de unión (union layer)
- CCapa de contenedor (container layer)
- DCapa de caché (cache layer)
¿Qué patrón se utiliza para manejar fallos transitorios en la comunicación entre microservicios?
- AService Mesh
- BRetry con backoff exponencial
- CBulkhead
- DEvent Sourcing
Según la Ley 40/2015 de Régimen Jurídico del Sector Público, ¿qué principio debe guiar la interoperabilidad entre sistemas en la AGE?
- APrincipio de neutralidad tecnológica.
- BPrincipio de uso obligatorio de software privativo.
- CPrincipio de mínima funcionalidad.
- DPrincipio de desconexión automática.
¿Qué objeto de Kubernetes permite definir variables de entorno y configuraciones para los pods?
- ASecret
- BConfigMap
- CPersistentVolumeClaim
- DDeployment
Soluciones y explicaciones
Ver las 30 respuestas correctas y su explicación
Esta sección revela las respuestas correctas. Te recomendamos hacer el test antes de consultarla.
-
Según la arquitectura de microservicios, ¿cuál de los siguientes es un principio fundamental para la comunicación entre servicios?
Respuesta correcta: Los servicios deben estar débilmente acoplados y ser independientes en su despliegue.
El principio fundamental de los microservicios es el acoplamiento débil y la independencia de despliegue, como se describe en el patrón de arquitectura definido por Martin Fowler y otros.
-
En Docker, ¿qué comando se utiliza para construir una imagen a partir de un Dockerfile?
Respuesta correcta: docker build
El comando 'docker build' construye una imagen Docker a partir de un Dockerfile y un contexto, según la documentación oficial de Docker.
-
¿Cuál es la función principal de un orquestador de contenedores como Kubernetes?
Respuesta correcta: Gestionar el ciclo de vida de los contenedores, incluyendo despliegue, escalado y recuperación.
Kubernetes es un sistema de orquestación que automatiza el despliegue, escalado y gestión de aplicaciones en contenedores, según la documentación del proyecto Kubernetes.
-
En el contexto de seguridad de contenedores, ¿qué establece el principio de privilegios mínimos?
Respuesta correcta: Los contenedores deben ejecutarse con solo los permisos necesarios para su tarea.
El principio de privilegios mínimos, fundamental en seguridad informática y aplicado a contenedores, indica que se deben conceder solo los permisos estrictamente necesarios para reducir la superficie de ataque.
-
¿Qué es un 'Sidecar' en el patrón de diseño para microservicios?
Respuesta correcta: Un contenedor que se ejecuta en paralelo al contenedor principal para extender o mejorar su funcionalidad.
El patrón Sidecar consiste en desplegar un contenedor auxiliar junto al contenedor principal para tareas como logging, monitorización o proxies, como se define en los patrones de diseño de microservicios.
-
Según el Esquema Nacional de Seguridad (ENS), ¿qué categoría de sistemas estaría obligada a aplicar medidas de seguridad en un despliegue de microservicios para la AGE?
Respuesta correcta: Todos los sistemas de información de la Administración General del Estado, según su categoría.
El Real Decreto 3/2010, del ENS, establece en su artículo 2 que las medidas de seguridad se aplican a todos los sistemas de información de la AGE, clasificados en tres categorías (baja, media, alta).
-
En Kubernetes, ¿qué objeto se utiliza para exponer un conjunto de pods como un servicio de red?
Respuesta correcta: Service
El objeto Service en Kubernetes define un punto de acceso lógico a un conjunto de pods, proporcionando descubrimiento de servicios y balanceo de carga, según la documentación de Kubernetes.
-
¿Qué tecnología de virtualización subyacente utilizan los contenedores Docker por defecto en Linux?
Respuesta correcta: namespaces y cgroups del kernel
Docker utiliza las características namespaces (para aislamiento) y cgroups (para limitación de recursos) del kernel de Linux, según la documentación técnica de Docker.
-
En una arquitectura de microservicios, el patrón 'Circuit Breaker' se utiliza principalmente para:
Respuesta correcta: Proteger un servicio ante fallos en llamadas a servicios externos, evitando cascadas de error.
El patrón Circuit Breaker, descrito por Martin Fowler, previene que un servicio continúe intentando ejecutar operaciones que probablemente fallen, permitiendo que el sistema se recupere.
-
¿Cuál es el propósito del comando 'docker-compose'?
Respuesta correcta: Definir y ejecutar aplicaciones Docker multi-contenedor.
Docker Compose es una herramienta para definir y ejecutar aplicaciones Docker multi-contenedor usando un archivo YAML, según la documentación oficial de Docker.
-
Según la Ley Orgánica 3/2018 (LOPDGDD), ¿qué principio debe aplicarse al tratar datos personales en microservicios?
Respuesta correcta: Principio de minimización de datos, recogiendo solo los estrictamente necesarios.
El artículo 5 del RGPD, incorporado por la LOPDGDD, establece el principio de minimización de datos: los datos personales deben ser adecuados, pertinentes y limitados a lo necesario.
-
¿Qué objeto de Kubernetes se utiliza para gestionar el despliegue y actualización de un conjunto de pods?
Respuesta correcta: Deployment
El objeto Deployment en Kubernetes gestiona el despliegue declarativo y las actualizaciones de aplicaciones stateless, proporcionando actualizaciones rodantes y rollback.
-
En el contexto de contenedores, ¿qué es un 'registro' (registry)?
Respuesta correcta: Un servicio para almacenar y distribuir imágenes de contenedores.
Un registro de contenedores, como Docker Hub o un registry privado, es un servicio que almacena y distribuye imágenes de contenedores, según la documentación de Docker.
-
¿Qué patrón de arquitectura se utiliza para gestionar la configuración distribuida en microservicios?
Respuesta correcta: Configuration Server
El patrón Configuration Server centraliza la configuración de los microservicios, permitiendo gestionarla externamente, como se describe en los patrones de diseño de microservicios de Chris Richardson.
-
En Kubernetes, ¿qué componente es responsable de programar los pods en los nodos?
Respuesta correcta: kube-scheduler
El kube-scheduler es el componente del plano de control de Kubernetes que asigna pods a nodos en función de los recursos disponibles y las restricciones.
-
¿Qué ventaja principal ofrecen los contenedores frente a las máquinas virtuales tradicionales?
Respuesta correcta: Menor overhead y mayor eficiencia en el uso de recursos.
Los contenedores comparten el kernel del host, lo que reduce el overhead y mejora la eficiencia respecto a las máquinas virtuales, que requieren un sistema operativo completo por cada instancia.
-
Según el modelo de madurez de microservicios, ¿qué caracteriza a un servicio 'stateless'?
Respuesta correcta: No mantiene estado persistente entre peticiones, delegándolo a almacenes externos.
Un servicio stateless no guarda estado de la sesión entre peticiones, lo que facilita la escalabilidad y resiliencia, según las mejores prácticas de arquitectura de microservicios.
-
¿Qué comando de Docker se utiliza para ejecutar un contenedor en segundo plano (detached mode)?
Respuesta correcta: docker run -d
La opción '-d' o '--detach' en el comando 'docker run' ejecuta el contenedor en segundo plano, según la referencia de comandos de Docker.
-
En Kubernetes, ¿qué recurso se utiliza para gestionar el almacenamiento persistente independiente del ciclo de vida del pod?
Respuesta correcta: PersistentVolume
Un PersistentVolume (PV) es un recurso de almacenamiento en el clúster que existe independientemente de los pods, proporcionando almacenamiento persistente, según la documentación de Kubernetes.
-
¿Qué protocolo es comúnmente utilizado para la comunicación asíncrona entre microservicios?
Respuesta correcta: AMQP (ej: RabbitMQ)
AMQP (Advanced Message Queuing Protocol) es un protocolo de mensajería asíncrona utilizado en sistemas de microservicios para comunicación desacoplada mediante brokers como RabbitMQ.
-
¿Qué herramienta se utiliza comúnmente para la gestión de paquetes y despliegues en Kubernetes?
Respuesta correcta: Helm
Helm es el gestor de paquetes para Kubernetes, que permite definir, instalar y actualizar aplicaciones Kubernetes mediante charts, según la documentación de Helm.
-
Según las buenas prácticas de Docker, ¿cuál es el propósito de usar un archivo .dockerignore?
Respuesta correcta: Excluir archivos y directorios del contexto de construcción para reducir el tamaño de la imagen.
El archivo .dockerignore especifica qué archivos y directorios excluir del contexto de construcción, similar a .gitignore, para mejorar el rendimiento y reducir el tamaño de la imagen.
-
En el contexto del ENS, ¿qué medida de protección es aplicable a los sistemas que despliegan microservicios?
Respuesta correcta: Cifrado de datos en reposo y en tránsito, según la categoría del sistema.
El Anexo II del Real Decreto 3/2010, ENS, especifica medidas de protección como el cifrado de datos en reposo y tránsito para las categorías media y alta.
-
¿Qué componente de Kubernetes se encarga de exponer servicios HTTP/HTTPS desde el exterior del clúster?
Respuesta correcta: Ingress Controller
Un Ingress Controller (ej: Nginx Ingress) gestiona el acceso externo a servicios dentro del clúster, proporcionando routing HTTP/HTTPS y terminación SSL.
-
¿Qué característica define a una arquitectura de microservicios frente a una monolítica?
Respuesta correcta: La aplicación se estructura como un conjunto de servicios pequeños e independientes.
La arquitectura de microservicios descompone una aplicación en servicios pequeños, independientes y desacoplados, en contraste con la arquitectura monolítica.
-
¿Qué comando de Kubernetes se utiliza para ver los pods en un namespace específico?
Respuesta correcta: kubectl get pods -n <namespace>
El comando 'kubectl get pods -n <namespace>' lista los pods en el namespace especificado, según la referencia de comandos de kubectl.
-
En Docker, ¿cuál es la capa superior de una imagen que es escribible y específica de cada contenedor?
Respuesta correcta: Capa de contenedor (container layer)
La capa de contenedor (container layer) es la capa superior escribible y efímera que se añade sobre las capas de solo lectura de la imagen, según el modelo de almacenamiento de Docker.
-
¿Qué patrón se utiliza para manejar fallos transitorios en la comunicación entre microservicios?
Respuesta correcta: Retry con backoff exponencial
El patrón Retry con backoff exponencial reintenta llamadas fallidas con intervalos crecientes, manejando fallos transitorios, según los patrones de resiliencia en microservicios.
-
Según la Ley 40/2015 de Régimen Jurídico del Sector Público, ¿qué principio debe guiar la interoperabilidad entre sistemas en la AGE?
Respuesta correcta: Principio de neutralidad tecnológica.
El artículo 4 de la Ley 40/2015 establece el principio de neutralidad tecnológica, asegurando que las decisiones tecnológicas no limiten la interoperabilidad.
-
¿Qué objeto de Kubernetes permite definir variables de entorno y configuraciones para los pods?
Respuesta correcta: ConfigMap
Un ConfigMap es un objeto de Kubernetes que almacena datos de configuración no confidenciales en pares clave-valor, que pueden ser usados como variables de entorno en pods.