Ingeniero DevOps: pregunta de entrevista
¿Cómo diseñas CI/CD para un servicio web?
CI construye un artefacto inmutable y ejecuta lint, pruebas, seguridad y migraciones; CD promociona el mismo artefacto con aprobaciones, rollout progresivo, health gates, observabilidad y rollback.
Respuesta directa
Qué debe cubrir una buena respuesta
Cómo funciona
CI produce un artefacto inmutable por commit, una imagen de contenedor etiquetada con el SHA, tras lint, pruebas unitarias y de integración, escaneo de dependencias y secretos, y una comprobación de que las migraciones son compatibles hacia atrás. CD promueve ese artefacto exacto, nunca una reconstrucción, por entornos: automático a staging con pruebas de humo, luego a producción con aprobación donde el riesgo lo justifica, desplegado progresivamente con puertas de salud sobre tasa de errores y latencia que pausan o revierten automáticamente. La observabilidad lleva la etiqueta de versión para atribuir problemas, y el rollback es una promoción del artefacto anterior, ensayada con regularidad.
Ejemplo
Una fusión en main construye la imagen api:abc123, ejecuta la suite contra un contenedor PostgreSQL, escanea la imagen y despliega a staging donde una prueba de humo llama a los endpoints de salud y login. Una aprobación manual promueve la misma imagen a producción como canario al 10 por ciento; el pipeline vigila la tasa de errores y el p95 durante 15 minutos y luego completa el despliegue. Un pico de 5xx durante un canario pausó el despliegue y avisó al de guardia antes de que los clientes lo notaran.
Errores frecuentes
- Reconstruir la imagen para producción, de modo que lo probado no es lo que se publica.
- Desplegar al 100 por ciento de golpe sin puerta de salud.
- Acoplar una migración destructiva al despliegue, de modo que el rollback es imposible.
Una estructura útil para responder
Responde desde tu propia experiencia.
No memorices un guion: usa solo ejemplos que puedas explicar con honestidad en preguntas posteriores.
Abre el espacio de trabajo de escritorio y ensaya una respuesta clara con tus propias palabras.