Files
dtic-DIIAA/tools/orquestador/README.md
T

415 lines
13 KiB
Markdown

# Orquestador de Herramientas - Dashboard P2601
## Filosofía: "Pequeñas herramientas coordinadas hacen al todo"
> **NOTA**: Esta versión ha sido optimizada con una estructura modular.
> Ver [README_OPTIMIZADO.md](README_OPTIMIZADO.md) para la nueva arquitectura.
Este directorio contiene herramientas pequeñas, específicas y reutilizables para gestionar el dashboard del proyecto P2601. Cada herramienta tiene un propósito único y claro, siguiendo el principio de que herramientas pequeñas combinadas son más efectivas que una herramienta monolítica.
## 🚀 Nueva Estructura Modular (Optimizada)
Se ha implementado una nueva arquitectura modular que centraliza funcionalidades comunes y promueve la reutilización de código:
```
tools/orquestador/
├── dashboard/ # Herramientas específicas (legado)
├── lib/ # 📦 Módulos centrales reutilizables
│ ├── dashboard_core.rb # Módulo central con funcionalidades comunes
│ ├── hitos/manager.rb # Gestión centralizada de hitos
│ ├── estados/manager.rb # Gestión centralizada de estados
│ ├── verificacion/manager.rb # Verificación centralizada
│ ├── vista_previa/manager.rb # Vista previa multi-modo
│ └── sincronizacion/manager.rb # Sincronización multi-ambiente
├── config.rb # Configuración centralizada
├── migrar_ids_hitos.rb # Migración a nuevo sistema de IDs
├── ejemplo_modulos_optimizados.rb # Ejemplos de uso
└── README_OPTIMIZADO.md # Documentación completa
```
### 🎯 Nuevo Sistema de IDs de Hitos
- **Formato**: `f{numero_fase}{secuencia de 3 dígitos}`
- **Ejemplos**: `f05001` (Fase 5, secuencia 1), `f05002` (Fase 5, secuencia 2)
### 🔄 Migración Recomendada
1. Verificar estado actual: `./migrar_ids_hitos.rb verificar`
2. Simular migración: `./migrar_ids_hitos.rb simular`
3. Realizar migración: `./migrar_ids_hitos.rb migrar`
### 📚 Documentación Completa
- [README_OPTIMIZADO.md](README_OPTIMIZADO.md) - Nueva arquitectura modular
- [config.rb](config.rb) - Configuración centralizada
- [ejemplo_modulos_optimizados.rb](ejemplo_modulos_optimizados.rb) - Ejemplos de uso
## Estructura (Versión Original)
```
tools/orquestador/
├── dashboard/ # Herramientas específicas para el dashboard
│ ├── limpiar.rb # Limpiar hitos duplicados
│ ├── agregar_hitos.rb # Agregar hitos de forma controlada
│ ├── verificar.rb # Verificar estructura y estado
│ ├── actualizar_estados.rb # Actualizar estados de hitos
│ ├── vista_previa.rb # Vista previa rápida del dashboard
│ ├── sincronizar.rb # Sincronizar dashboard local con producción
│ ├── agregar_hitos_db.rb # Agregar hitos a base de datos PostgreSQL
│ └── orquestador.rb # Script maestro para orquestar todas las herramientas
└── README.md # Este archivo
```
## Herramientas Disponibles (Versión Original)
> **NOTA**: Estas herramientas están siendo migradas a la nueva estructura modular.
> Para funcionalidades optimizadas, usar los módulos en `lib/`.
### 1. `limpiar.rb` - Limpiador de Dashboard
**Propósito**: Eliminar hitos duplicados y corregir estructura del dashboard.
**Equivalente modular**: `DashboardCore::HitosManager#limpiar_duplicados`
**Uso**:
```bash
cd tools/orquestador/dashboard
./limpiar.rb
```
**Características**:
- Crea backup automático del dashboard
- Detecta y elimina hitos duplicados
- Reconstruye estructura correcta de timeline
- Muestra estadísticas de limpieza
### 2. `agregar_hitos.rb` - Gestor de Hitos
**Propósito**: Agregar hitos al dashboard de forma controlada y estructurada.
**Equivalente modular**: `DashboardCore::HitosManager#agregar_hitos_fase`
**Uso**:
```bash
# Agregar hitos de fase 5 (modo predeterminado)
./agregar_hitos.rb agregar fase5 append
# Listar hitos disponibles
./agregar_hitos.rb listar fase5
# Mostrar ayuda
./agregar_hitos.rb help
```
**Modos de operación**:
- `append`: Agregar hitos al final de la timeline
- `replace`: Reemplazar hitos existentes de una fase
- `insert`: Insertar después de un marcador específico
**Hitos predefinidos (fase5)**:
- `BKP02`: Backup Automático de VMs en Proxmox
- `DB02`: Backup Automático de Base de Datos sysdasuten
- `MON01`: Monitoreo de Recursos del Hipervisor
- `DOC01`: Documentación Operativa del Sistema
- `PERF01`: Pruebas de Rendimiento del Sistema
### 3. `verificar.rb` - Verificador de Dashboard
**Propósito**: Verificar estructura y analizar estado del dashboard.
**Equivalente modular**: `DashboardCore::VerificacionManager#verificar_completo`
**Uso**:
```bash
# Verificar estructura básica
./verificar.rb verificar
# Analizar hitos en detalle
./verificar.rb analizar
# Mostrar ayuda
./verificar.rb help
```
**Verificaciones realizadas**:
- Estructura HTML básica
- Presencia de elementos requeridos
- Integridad de hitos (sin duplicados)
- Estado de la timeline
- Métricas y estadísticas
### 4. `actualizar_estados.rb` - Gestor de Estados de Hitos
**Propósito**: Actualizar el estado de hitos en el dashboard.
**Equivalente modular**: `DashboardCore::EstadosManager#actualizar_estado_hito`
**Uso**:
```bash
# Listar hitos con sus estados
./actualizar_estados.rb listar
# Actualizar estado de un hito
./actualizar_estados.rb actualizar BKP02 in-progress
# Actualizar múltiples hitos
./actualizar_estados.rb multiples BKP02 in-progress DB02 completed
# Mostrar estados disponibles
./actualizar_estados.rb estados
```
**Estados disponibles**:
- `pending`: Pendiente (amarillo)
- `in-progress`: En Progreso (azul)
- `completed`: Completado (verde)
- `blocked`: Bloqueado (rojo)
- `on-hold`: En Espera (púrpura)
### 5. `vista_previa.rb` - Vista Previa Rápida
**Propósito**: Obtener vista previa rápida del dashboard.
**Equivalente modular**: `DashboardCore::VistaPreviaManager#mostrar_vista_previa`
**Uso**:
```bash
# Resumen completo
./vista_previa.rb resumen
# Hitos detallados
./vista_previa.rb hitos
# Estructura del dashboard
./vista_previa.rb estructura
# Estadísticas detalladas
./vista_previa.rb estadisticas
# Resumen rápido
./vista_previa.rb rapido
```
**Características**:
- Múltiples modos de visualización
- Análisis de estructura HTML
- Estadísticas de hitos y estados
- Métricas clave del proyecto
### 6. `orquestador.rb` - Script Maestro de Orquestación
**Propósito**: Orquestar todas las herramientas en flujos de trabajo predefinidos.
### 7. `sincronizar.rb` - Sincronizador de Dashboard
**Propósito**: Sincronizar dashboard local con producción.
**Equivalente modular**: `DashboardCore::SincronizacionManager#sincronizar_a_produccion`
### 8. `agregar_hitos_db.rb` - Gestor de Hitos en Base de Datos
**Propósito**: Agregar hitos a la base de datos PostgreSQL.
**Uso**:
```bash
# Ejecutar una herramienta específica
./orquestador.rb herramienta limpiar
# Ejecutar flujo de trabajo predefinido
./orquestador.rb flujo seguimiento-diario
# Listar herramientas disponibles
./orquestador.rb listar-herramientas
# Listar flujos de trabajo
./orquestador.rb listar-flujos
# Mostrar estado del sistema
./orquestador.rb estado
```
**Flujos de trabajo predefinidos**:
- `inicializar`: Inicializar dashboard limpio con hitos de fase 5
- `seguimiento-diario`: Flujo para seguimiento diario del proyecto
- `revision-semanal`: Flujo para revisión semanal completa
- `agregar-fase5`: Agregar hitos de fase 5 y verificar
## Flujo de Trabajo Recomendado
### Para nuevo proyecto o limpieza completa:
1. **Verificar estado actual**:
```bash
./orquestador.rb flujo revision-semanal
```
2. **Inicializar dashboard limpio**:
```bash
./orquestador.rb flujo inicializar
```
### Para seguimiento diario:
```bash
./orquestador.rb flujo seguimiento-diario
```
### Para agregar hitos de fase 5:
```bash
./orquestador.rb flujo agregar-fase5
```
## Principios de Diseño
1. **Una herramienta, un propósito**: Cada herramienta hace una cosa y la hace bien.
2. **Composición sobre monolitos**: Las herramientas se pueden combinar para flujos complejos.
3. **Backup automático**: Todas las herramientas crean backups antes de modificar.
4. **Feedback claro**: Proporcionan información detallada sobre lo que hacen.
5. **Interfaz simple**: Uso intuitivo desde línea de comandos.
6. **Reutilización**: Código modular que se puede integrar en otros sistemas.
## Integración con Herramientas ADN
Estas herramientas están diseñadas para complementar (no reemplazar) las herramientas existentes en `tools/adn`. Se pueden usar conjuntamente:
1. **Herramientas ADN**: Para automatización compleja y gestión de eventos
2. **Herramientas Orquestador**: Para tareas específicas de dashboard y estructura
## 🚀 Migración a la Nueva Estructura
### Ventajas de la Nueva Arquitectura:
1. **Reutilización de código**: Funcionalidades comunes centralizadas
2. **Consistencia**: Sistema de IDs uniforme (`fNNNNN`)
3. **Mantenibilidad**: Módulos independientes con responsabilidades únicas
4. **Escalabilidad**: Fácil adición de nuevas funcionalidades
### Pasos de Migración:
```bash
# 1. Verificar estado actual de IDs
./migrar_ids_hitos.rb verificar
# 2. Simular migración (modo dry-run)
./migrar_ids_hitos.rb simular
# 3. Realizar migración completa
./migrar_ids_hitos.rb migrar
# 4. Probar nuevos módulos
./ejemplo_modulos_optimizados.rb
```
### Mapeo de IDs (Fase 5):
- `BKP02` → `f05001` (Backup Automático de VMs)
- `DB02` → `f05002` (Backup Automático de Base de Datos)
- `MON01` → `f05003` (Monitoreo de Recursos)
- `DOC01` → `f05004` (Documentación Operativa)
- `PERF01` → `f05005` (Pruebas de Rendimiento)
## Características Técnicas
### Backups Automáticos
- Todas las herramientas crean backups antes de modificar
- Backups organizados por fecha/hora en `dashboard/backups/`
- Formato: `dashboard_[tipo]_YYYYMMDD_HHMMSS.html`
### Manejo de Errores
- Validación de parámetros de entrada
- Mensajes de error descriptivos
- Códigos de salida significativos
- Opción `DEBUG=true` para detalles técnicos
### Compatibilidad
- Ruby estándar (sin dependencias externas)
- Compatible con cualquier sistema Unix/Linux
- Encoding UTF-8
## Ejemplos de Uso Avanzado
### Actualizar estados basados en progreso real:
```bash
# Marcar hitos en progreso
./actualizar_estados.rb actualizar BKP02 in-progress
# Marcar hitos completados con fecha específica
./actualizar_estados.rb actualizar DB02 completed 2024-03-05
# Actualizar múltiples hitos
./actualizar_estados.rb multiples \
MON01 in-progress \
DOC01 pending \
PERF01 on-hold
```
### Análisis detallado del dashboard:
```bash
# Ver estructura completa
./vista_previa.rb estructura
# Analizar estadísticas
./vista_previa.rb estadisticas
# Verificar integridad
./verificar.rb verificar
```
## Mantenimiento
### Backups
- Se guardan automáticamente en `dashboard/backups/`
- Se recomienda limpiar backups antiguos periódicamente
- Formato: `dashboard_[tipo]_YYYYMMDD_HHMMSS.html`
### Logs y Depuración
```bash
# Activar modo debug
DEBUG=true ./verificar.rb verificar
# Verificar sintaxis de herramientas
ruby -c limpiar.rb
```
### Actualizaciones
- Mantener la filosofía de herramientas pequeñas y específicas
- Documentar cambios en este README
- Probar flujos de trabajo después de modificaciones
## Próximos Pasos
### ✅ Completado (Nueva Estructura):
1. **Crear módulos centrales** reutilizables en `lib/`
2. **Implementar nuevo sistema de IDs** (`fNNNNN`)
3. **Documentar arquitectura modular** en `README_OPTIMIZADO.md`
4. **Crear scripts de migración** y ejemplos de uso
### 🔄 En Progreso:
1. **Migrar herramientas existentes** a la nueva arquitectura
2. **Crear tests automatizados** para cada módulo
3. **Implementar logging centralizado**
### 📋 Planificado:
1. **Integración con APIs externas**
2. **Dashboard en tiempo real**
3. **Reportes automatizados por email**
## 📚 Documentación Adicional
### Nueva Arquitectura:
- [README_OPTIMIZADO.md](README_OPTIMIZADO.md) - Documentación completa de la nueva estructura
- [config.rb](config.rb) - Configuración centralizada
- [ejemplo_modulos_optimizados.rb](ejemplo_modulos_optimizados.rb) - Ejemplos de uso práctico
### Herramientas de Migración:
- [migrar_ids_hitos.rb](migrar_ids_hitos.rb) - Migración de IDs al nuevo formato
- Script interactivo con modos: `verificar`, `simular`, `migrar`
### Módulos Principales:
- `DashboardCore::HitosManager` - Gestión completa de hitos
- `DashboardCore::EstadosManager` - Gestión de estados
- `DashboardCore::VerificacionManager` - Verificación exhaustiva
- `DashboardCore::VistaPreviaManager` - Vista previa multi-modo
- `DashboardCore::SincronizacionManager` - Sincronización multi-ambiente
## Contacto
Para problemas o sugerencias:
- Revisar la bitácora del proyecto P2601
- Verificar backups en `dashboard/backups/`
- Usar modo debug para detalles técnicos: `DEBUG=true`
## Dashboard en Producción
🔗 **URL**: https://ns8.frlr.utn.edu.ar/bitacoras/p2601
**Recomendaciones**:
- Verificar cambios en producción después de cada modificación
- Usar flujo `seguimiento-diario` para monitoreo regular
- Mantener backups organizados por fecha
---
*Última actualización: 2024-03-06*
*Versión del sistema: 2.0.0 (Estructura Modular)*
*Documentación optimizada: [README_OPTIMIZADO.md](README_OPTIMIZADO.md)*
*Autor: Sistema de Orquestación P2601*
*Filosofía: "Pequeñas herramientas coordinadas hacen al todo"*