WorksheetsDevOps: Conceptos Generales y Tecnicos
Total questions: 15
Worksheet time: 8mins
¿Cuál de las siguientes afirmaciones define MEJOR el objetivo principal de la cultura DevOps?
Implementar más herramientas de automatización para reemplazar al equipo de Operaciones.
Unificar Desarrollo (Dev) y Operaciones (Ops) para entregar valor al cliente de forma más rápida y fiable.
Acelerar la fase de Desarrollo (Dev) para que Operaciones (Ops) tenga más tiempo para probar.
Crear un nuevo equipo llamado "DevOps" que se encargue de todos los despliegues.
¿Cómo se relacionan DevOps y las metodologías Ágiles (como Scrum)?
DevOps es una metodología Ágil que reemplaza a Scrum y Kanban.
Ágil se enfoca en la velocidad de desarrollo; DevOps se enfoca solo en la estabilidad de operaciones.
DevOps es una extensión de los principios Ágiles que aplica la agilidad a todo el ciclo de vida, incluyendo el despliegue y las operaciones.
Ágil gestiona el proyecto (tareas); DevOps gestiona la infraestructura (servidores).
El ciclo de "Crear -> Medir -> Aprender" (Build-Measure-Learn) de Lean Startup tiene como objetivo principal:
Construir un producto completo y perfecto antes de lanzarlo al mercado.
Medir la velocidad del equipo de desarrollo para aprender a optimizarla.
Aprender lo más rápido posible qué es lo que el cliente realmente valora, minimizando el desperdicio.
Crear un Producto Mínimo Viable (MVP) y medir cuántas ventas genera.
¿Cuál es la responsabilidad principal del Product Owner en un equipo Scrum?
Dirigir la "Daily Standup" y asegurarse de que el equipo complete las tareas a tiempo.
Escribir el código para las Historias de Usuario más complejas.
Maximizar el valor del producto gestionando y priorizando el "Product Backlog".
Facilitar las ceremonias de Scrum y eliminar impedimentos para el equipo de desarrollo.
¿Cuál es el propósito fundamental de limitar el "Trabajo en Progreso" (WIP Limit) en un tablero Kanban?
Evitar que los desarrolladores trabajen horas extras.
Identificar cuellos de botella y forzar al equipo a terminar tareas antes de empezar nuevas.
Asegurar que todas las columnas del tablero tengan el mismo número de tareas.
Medir cuánto tiempo tarda una tarea en pasar de "To Do" a "Done".
¿Cuál es la diferencia clave entre git fetch y git pull?
git pull trae los cambios del remoto y los fusiona; git fetch solo trae los cambios pero no los fusiona.
git fetch trae los cambios del remoto y los fusiona; git pull solo revisa si hay cambios.
git pull se usa para subir cambios; git fetch se usa para bajarlos.
git fetch funciona con GitHub; git pull funciona con cualquier repositorio Git.
Un desarrollador ejecuta git add . y luego git commit -m "feat: login". ¿En qué estado se encuentran sus cambios?
Los cambios están en el "Staging Area" y en el repositorio remoto.
Los cambios están guardados en el repositorio local, pero no en el "Staging Area".
Los cambios están guardados ("confirmados") en el repositorio local.
Los cambios están en el repositorio remoto, pero no en el local.
¿Cuál es el mecanismo central que usa GitHub para proponer, discutir y aprobar cambios a una rama principal de forma segura?
Un git push --force a la rama main
Un "Pull Request" (PR) desde una rama de funcionalidad (feature branch).
Un "Issue" (Incidencia) asignado al líder del equipo.
Un git merge directo en la terminal del desarrollador.
Un estudiante intenta ejecutar npm install y recibe el error command not found. ¿Cuál es la causa más probable?
No ha instalado Docker Desktop.
No ha iniciado sesión en su cuenta de GitHub.
No ha instalado Node.js (que incluye npm) en su máquina local.
No ha configurado sus credenciales (Access Keys) de AWS.
¿Cuál es la ventaja clave de un Contenedor sobre una Máquina Virtual (VM)?
Un Contenedor comparte el Kernel del SO Anfitrión, haciéndolo mucho más ligero y rápido de arrancar.
Un Contenedor virtualiza el hardware, ofreciendo un aislamiento más robusto que una VM.
Un Contenedor incluye su propio Sistema Operativo Invitado (Guest OS) completo.
Un Contenedor es más pesado (GBs) pero más seguro que una VM (MBs).
¿Cuál es la relación correcta entre una Imagen y un Contenedor?
La Imagen es la plantilla inmutable (el "plano"); el Contenedor es una instancia en ejecución de esa imagen (el "apartamento").
El Contenedor es la plantilla inmutable; la Imagen es la instancia en ejecución.
La Imagen se crea con docker run; el Contenedor se crea con docker build.
La Imagen y el Contenedor son lo mismo, pero "Imagen" se usa en Docker Hub.
¿Qué hace el comando docker ps -a?
Lista solo los contenedores que están actualmente en ejecución.
Lista todas las imágenes que han sido descargadas localmente.
Pausa todos los contenedores que están actualmente en ejecución
Lista todos los contenedores, incluyendo los que están detenidos (Exited).
¿Cuál es el propósito del flag -p 8080:80 en el comando docker run?
Limitar el contenedor para que solo use 8080 MB de RAM y 80% de CPU.
Mapear el puerto 8080 del Host (tu máquina) al puerto 80 del Contenedor (donde escucha la app).
Exponer el puerto 8080 del contenedor para que otros contenedores puedan verlo.
Indicarle a la aplicación dentro del contenedor que debe escuchar en el puerto 8080 en lugar del 80.
En un Dockerfile, ¿cuál es la diferencia clave entre las instrucciones RUN y CMD?
RUN se ejecuta al arrancar el contenedor (docker run); CMD se ejecuta al construir la imagen (docker build).
RUN se ejecuta al construir la imagen (docker build) para crear una capa; CMD define el comando por defecto al arrancar el contenedor.
RUN se usa para instalar dependencias; CMD se usa para copiar archivos.
RUN es para comandos de Linux; CMD es para comandos de Node.js.
¿Por qué es una práctica de optimización crucial copiar package.json y ejecutar npm install antes de copiar el resto del código (COPY . .)?
Para asegurar que node_modules exista antes de que el código sea copiado.
Porque COPY . . no copiará node_modules si se ejecuta primero.
Para aprovechar la caché de capas: si solo cambia el código, la capa pesada de node_modules no se reconstruye.
Porque la instrucción RUN siempre debe ir inmediatamente después de una instrucción COPY.
