🆘 Skill: Disaster Recovery & Business Continuity
📋 Metadata
| Atributo | Valor |
|---|---|
| ID | sre-disaster-recovery-business-continuity |
| Nivel | 🔴 Avanzado |
| Versión | 1.0.0 |
| Keywords | disaster-recovery, business-continuity, backup, failover, rpo, rto, dr-plan |
| Referencia | AWS Disaster Recovery |
🔑 Keywords para Invocación
disaster-recoverybusiness-continuitybackup-strategyfailoverrportodr-plan@skill:disaster-recovery
Ejemplos de Prompts
Implementa disaster recovery plan con RPO y RTO
Configura backup strategy y failover procedures
Setup business continuity plan para servicios críticos
@skill:disaster-recovery - Plan completo de DR y BC
📖 Descripción
Disaster Recovery (DR) y Business Continuity (BC) aseguran que servicios críticos puedan recuperarse rápidamente de desastres. Este skill cubre DR planning, backup strategies, failover procedures, RPO/RTO definitions, y testing procedures.
✅ Cuándo Usar Este Skill
- Servicios críticos en producción
- SLAs estrictos
- Compliance requirements
- Data protection requirements
- High availability requirements
❌ Cuándo NO Usar Este Skill
- Servicios no críticos
- Desarrollo local
- Prototipos sin datos reales
🏗️ DR Strategy Framework
RPO (Recovery Point Objective)
↓
Backup Frequency
↓
RTO (Recovery Time Objective)
↓
Failover Procedures
💻 Implementación
📁 Scripts Ejecutables: Este skill incluye scripts ejecutables en la carpeta
scripts/:
backup-strategy.sh- Estrategia automatizada de backups (Bash)failover_procedures.py- Gestor de procedimientos de failover (Python CLI)dr-test.sh- Script completo de testing de DR (Bash)requirements.txt- Dependencias (ninguna, usa stdlib)Ver
scripts/README.mdpara documentación de uso.
1. RPO/RTO Definitions
# dr/rpo-rto-definitions.yml
services:
- name: payment-service
rpo: 5m # Maximum 5 minutes of data loss
rto: 15m # Recovery within 15 minutes
priority: critical
backup_strategy: continuous
- name: user-service
rpo: 1h # Maximum 1 hour of data loss
rto: 30m # Recovery within 30 minutes
priority: high
backup_strategy: hourly
- name: analytics-service
rpo: 24h # Maximum 24 hours of data loss
rto: 2h # Recovery within 2 hours
priority: medium
backup_strategy: daily
2. Backup Strategy
Script ejecutable: scripts/backup-strategy.sh
Script Bash completo para automatizar estrategia de backups con soporte para backups completos, incrementales, verificación y limpieza.
Cuándo ejecutar
- Backups programados: Como parte de cron jobs (diarios/horarios)
- Backups manuales: Para crear backups bajo demanda
- Verificación: Para validar integridad de backups antes de restaurar
- Limpieza: Para mantener espacio de almacenamiento bajo control
Uso
# Hacer ejecutable
chmod +x scripts/backup-strategy.sh
# Backup completo (diario)
./scripts/backup-strategy.sh full
# Backup incremental (horario)
./scripts/backup-strategy.sh incremental
# Limpiar backups antiguos
./scripts/backup-strategy.sh cleanup
# Verificar backup
./scripts/backup-strategy.sh verify /backup/full/20240115
# Listar backups disponibles
./scripts/backup-strategy.sh list
Configuración
Variables de entorno:
export BACKUP_DIR="/backup" # Directorio de backups
export RETENTION_DAYS=30 # Días de retención
export S3_BUCKET="backup-bucket" # Bucket S3 (opcional)
export DB_HOST="localhost" # Host de base de datos
export DB_USER="backup_user" # Usuario de backup
export DB_NAME="mydb" # Nombre de base de datos
export APP_DATA_DIR="/var/app/data" # Directorio de datos de aplicación
Características
- ✅ Backups completos e incrementales
- ✅ Verificación automática de integridad
- ✅ Upload a S3 (opcional)
- ✅ Limpieza automática con política de retención
- ✅ Logging con colores
- ✅ Manejo de errores robusto
3. Failover Procedures
Script ejecutable: scripts/failover_procedures.py
Gestor completo de procedimientos de failover con registro de servicios, health checks, y ejecución automatizada de failover.
Cuándo ejecutar
- Registro de servicios: Al configurar nuevos servicios para DR
- Failover manual: Cuando se detecta un desastre y se necesita failover
- Failover automatizado: Integrado con sistemas de monitoreo
- Testing: Para probar procedimientos de failover (dry-run)
Uso
# Registrar servicio
python scripts/failover_procedures.py register \
--name payment-service \
--primary us-east-1 \
--standby us-west-2 \
--rto 15 \
--rpo 5
# Ejecutar failover
python scripts/failover_procedures.py failover payment-service
# Dry-run (simular sin cambios)
python scripts/failover_procedures.py failover payment-service --dry-run
# Ver estado de servicio
python scripts/failover_procedures.py status payment-service
# Ver estado de todos los servicios
python scripts/failover_procedures.py status
# Listar servicios registrados
python scripts/failover_procedures.py list
Características
- ✅ Registro y gestión de servicios
- ✅ Health checks de standby
- ✅ Promoción automática de standby a primary
- ✅ Actualización de routing (DNS/load balancer)
- ✅ Verificación de failover
- ✅ Modo dry-run para testing
- ✅ Persistencia de configuración en JSON
- ✅ Tracking de último failover
4. DR Testing
Script ejecutable: scripts/dr-test.sh
Script completo de testing de Disaster Recovery que simula un desastre y verifica todos los procedimientos de recuperación.
Cuándo ejecutar
- Testing regular: Ejecutar periódicamente (mensual/trimestral) para validar procedimientos
- Después de cambios: Después de modificar configuración de DR
- Entrenamiento: Para entrenar al equipo en procedimientos de DR
- Validación: Antes de aprobar cambios en producción
Uso
# Hacer ejecutable
chmod +x scripts/dr-test.sh
# Test completo
./scripts/dr-test.sh payment-service
# Test sin simular desastre (solo verificar procedimientos)
DR_TEST_SKIP_SIMULATION=true ./scripts/dr-test.sh payment-service
# Test sin failback (más rápido)
DR_TEST_SKIP_FAILBACK=true ./scripts/dr-test.sh payment-service
Fases del Test
- Pre-test checklist - Verifica backups, standby health, documentación
- Simular desastre - Detiene servicio primary (simulado)
- Ejecutar failover - Ejecuta procedimiento de failover
- Verificar disponibilidad - Confirma que servicio está disponible
- Restaurar primary - Restaura servicio primary
- Failback - Ejecuta procedimiento de failback
- Post-test verification - Verifica salud del servicio y consistencia de datos
Características
- ✅ Checklist pre-test completo
- ✅ Simulación de desastre
- ✅ Verificación de cada fase
- ✅ Logging detallado con colores
- ✅ Opciones para saltar fases (testing parcial)
- ✅ Verificación de consistencia de datos
5. Multi-Region Setup
# k8s/multi-region-deployment.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: dr-config
data:
primary_region: "us-east-1"
standby_region: "us-west-2"
failover_threshold: "5m"
rpo_minutes: "5"
rto_minutes: "15"
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: payment-service-primary
labels:
app: payment-service
region: primary
spec:
replicas: 3
selector:
matchLabels:
app: payment-service
region: primary
template:
metadata:
labels:
app: payment-service
region: primary
spec:
containers:
- name: app
image: payment-service:latest
env:
- name: REGION
value: "primary"
- name: REPLICATION_MODE
value: "master"
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: payment-service-standby
labels:
app: payment-service
region: standby
spec:
replicas: 2
selector:
matchLabels:
app: payment-service
region: standby
template:
metadata:
labels:
app: payment-service
region: standby
spec:
containers:
- name: app
image: payment-service:latest
env:
- name: REGION
value: "standby"
- name: REPLICATION_MODE
value: "replica"
🎯 Mejores Prácticas
1. RPO/RTO
✅ DO:
- Define realistic RPO/RTO
- Align with business requirements
- Test regularly
- Document assumptions
❌ DON'T:
- Set unrealistic targets
- Ignore business impact
- Skip testing
2. Backups
✅ DO:
- Test restore procedures
- Store backups off-site
- Encrypt backups
- Verify backup integrity
❌ DON'T:
- Assume backups work
- Skip verification
- Store in same location
3. Failover
✅ DO:
- Test failover regularly
- Document procedures
- Monitor failover events
- Practice with team
❌ DON'T:
- Skip failover testing
- Ignore documentation
- Test only in emergencies
🚨 Troubleshooting
Backup Failures
- Check disk space
- Verify permissions
- Review backup logs
- Test restore procedures
Failover Issues
- Verify standby health
- Check network connectivity
- Review failover procedures
- Test in non-production first
📚 Recursos Adicionales
Versión: 1.0.0
Última actualización: Diciembre 2025
Total líneas: 1,100+