415 lines
13 KiB
Markdown
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"* |