Describe un pipeline de CI/CD que montarías para un servicio web en Python.
Respuesta
- En cada PR: instalar con dependencias bloqueadas (en caché), formato y lint (ruff), comprobación de tipos (mypy), unit tests con coverage (pytest), escaneo de dependencias y secretos.
- Al fusionar en main: construir una imagen Docker etiquetada con el SHA del commit y subirla a un registry.
- Tests de integración con dependencias reales (base de datos en contenedores).
- Desplegar en staging automáticamente (primero migraciones compatibles hacia atrás) y ejecutar smoke tests.
- Desplegar en producción con aprobación o automáticamente, rolling o canary, con health checks.
- Monitorizar la tasa de errores y la latencia; rollback automático si se disparan.
- Herramientas: GitHub Actions/GitLab CI, Terraform para la infraestructura, secretos desde un gestor.
Practica esta pregunta en Repaso