⚙️ Automatización
Generador de Lista de Verificación de Despliegue
Cree listas de verificación completas previas al despliegue con verificación automatizada
★★☆ Intermedio 15 min 13 de enero de 2025
Caso de Uso
Los despliegues requieren verificación sistemática para prevenir problemas. Cowork puede generar listas de verificación adaptadas a su stack tecnológico y crear scripts para automatizar las comprobaciones.
Ejemplo de Prompt
Voy a desplegar una aplicación Node.js a producción. Por favor, cree:
1. Una lista de verificación previa al despliegue que cubra:
- Calidad del código (pruebas, linting)
- Seguridad (dependencias, secretos)
- Base de datos (migraciones, respaldos)
- Infraestructura (recursos, configuraciones)
- Monitoreo (alertas, logging)
2. Un script de verificación automatizado que compruebe:
- Todas las pruebas pasan
- Sin vulnerabilidades de seguridad
- Variables de entorno configuradas
- Conectividad de base de datos
3. Una lista de verificación posterior al despliegue
Guarde en ~/Deployments/checklist/
Qué Hace Cowork
- Generación de Lista: Crea lista de verificación completa en Markdown
- Creación de Scripts: Automatiza las verificaciones comprobables
- Evaluación de Riesgos: Identifica verificaciones críticas
- Plan de Rollback: Incluye procedimientos de recuperación
- Documentación: Genera en formato runbook
Salida de Ejemplo
# Lista de Verificación de Despliegue a Producción
Aplicación: MyApp
Fecha: ___________
Ingeniero: ___________
## Pre-Despliegue
### Calidad del Código
- [ ] Todas las pruebas pasan (ejecutar: `npm test`)
- [ ] ESLint pasa sin errores
- [ ] Revisión de código aprobada
- [ ] PR fusionado a main
- [ ] Build exitoso en CI
### Seguridad
- [ ] `npm audit` no muestra vulnerabilidades altas/críticas
- [ ] Sin secretos en el código (ejecutar: `git secrets --scan`)
- [ ] Dependencias actualizadas en los últimos 30 días
- [ ] HTTPS forzado
- [ ] Límite de tasa configurado
### Base de Datos
- [ ] Respaldo de base de datos completado
- [ ] Respaldo verificado (prueba de restauración)
- [ ] Migraciones probadas en staging
- [ ] Script de rollback de migración listo
- [ ] Pool de conexiones dimensionado
### Infraestructura
- [ ] Variables de entorno configuradas
- [ ] Certificados SSL válidos (>30 días)
- [ ] Espacio en disco disponible (>20% libre)
- [ ] Asignación de memoria confirmada
- [ ] Health checks del load balancer configurados
### Monitoreo
- [ ] Rastreo de errores activo (Sentry/etc)
- [ ] Monitoreo de rendimiento habilitado
- [ ] Umbrales de alertas configurados
- [ ] Ingeniero de guardia notificado
- [ ] Página de estado lista
---
## Pasos de Despliegue
1. Habilitar modo de mantenimiento
2. Crear respaldo de base de datos
3. Ejecutar migraciones de base de datos
4. Desplegar nueva versión de la aplicación
5. Verificar health checks
6. Deshabilitar modo de mantenimiento
7. Verificar en producción
---
## Plan de Rollback
Si se detectan problemas:
1. Habilitar modo de mantenimiento
2. Revertir al despliegue anterior
3. Hacer rollback de base de datos (si es necesario)
4. Verificar funcionalidad
5. Investigar causa raíz
#!/bin/bash
# pre-deploy-verify.sh
echo "Ejecutando verificación previa al despliegue..."
FAILED=0
# Suite de pruebas
echo "Ejecutando pruebas..."
npm test
if [ $? -ne 0 ]; then
echo "Las pruebas fallaron"
FAILED=1
fi
# Auditoría de seguridad
echo "Verificando seguridad..."
AUDIT=$(npm audit --json 2>/dev/null)
HIGH=$(echo $AUDIT | jq '.metadata.vulnerabilities.high')
CRITICAL=$(echo $AUDIT | jq '.metadata.vulnerabilities.critical')
if [ "$HIGH" -gt 0 ] || [ "$CRITICAL" -gt 0 ]; then
echo "Vulnerabilidades de seguridad encontradas: $HIGH altas, $CRITICAL críticas"
FAILED=1
else
echo "Sin vulnerabilidades altas/críticas"
fi
# Variables de entorno
echo "Verificando entorno..."
REQUIRED_VARS="DATABASE_URL REDIS_URL API_KEY SECRET_KEY"
for var in $REQUIRED_VARS; do
if [ -z "${!var}" ]; then
echo "Faltante: $var"
FAILED=1
fi
done
# Conectividad de base de datos
echo "Probando conexión a base de datos..."
node -e "require('./src/db').connect().then(() => process.exit(0)).catch(() => process.exit(1))"
if [ $? -ne 0 ]; then
echo "Conexión a base de datos fallida"
FAILED=1
else
echo "Base de datos conectada"
fi
# Resultado final
echo ""
if [ $FAILED -eq 0 ]; then
echo "¡Todas las verificaciones previas al despliegue pasaron!"
echo "Proceda con el despliegue."
else
echo "¡Verificaciones previas al despliegue fallaron!"
echo "Corrija los problemas antes de desplegar."
exit 1
fi
Consejos
- Personalice la lista de verificación para su stack específico
- Haga que los elementos críticos sean bloqueantes en CI/CD
- Mantenga los procedimientos de rollback actualizados
- Practique los despliegues primero en staging