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 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
- Verificar estado actual:
./migrar_ids_hitos.rb verificar - Simular migración:
./migrar_ids_hitos.rb simular - Realizar migración:
./migrar_ids_hitos.rb migrar
📚 Documentación Completa
- README_OPTIMIZADO.md - Nueva arquitectura modular
- config.rb - Configuración centralizada
- 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:
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:
# 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 timelinereplace: Reemplazar hitos existentes de una faseinsert: Insertar después de un marcador específico
Hitos predefinidos (fase5):
BKP02: Backup Automático de VMs en ProxmoxDB02: Backup Automático de Base de Datos sysdasutenMON01: Monitoreo de Recursos del HipervisorDOC01: Documentación Operativa del SistemaPERF01: 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:
# 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:
# 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:
# 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:
# 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 5seguimiento-diario: Flujo para seguimiento diario del proyectorevision-semanal: Flujo para revisión semanal completaagregar-fase5: Agregar hitos de fase 5 y verificar
Flujo de Trabajo Recomendado
Para nuevo proyecto o limpieza completa:
-
Verificar estado actual:
./orquestador.rb flujo revision-semanal -
Inicializar dashboard limpio:
./orquestador.rb flujo inicializar
Para seguimiento diario:
./orquestador.rb flujo seguimiento-diario
Para agregar hitos de fase 5:
./orquestador.rb flujo agregar-fase5
Principios de Diseño
- Una herramienta, un propósito: Cada herramienta hace una cosa y la hace bien.
- Composición sobre monolitos: Las herramientas se pueden combinar para flujos complejos.
- Backup automático: Todas las herramientas crean backups antes de modificar.
- Feedback claro: Proporcionan información detallada sobre lo que hacen.
- Interfaz simple: Uso intuitivo desde línea de comandos.
- 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:
- Herramientas ADN: Para automatización compleja y gestión de eventos
- Herramientas Orquestador: Para tareas específicas de dashboard y estructura
🚀 Migración a la Nueva Estructura
Ventajas de la Nueva Arquitectura:
- Reutilización de código: Funcionalidades comunes centralizadas
- Consistencia: Sistema de IDs uniforme (
fNNNNN) - Mantenibilidad: Módulos independientes con responsabilidades únicas
- Escalabilidad: Fácil adición de nuevas funcionalidades
Pasos de Migración:
# 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=truepara 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:
# 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:
# 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
# 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):
- Crear módulos centrales reutilizables en
lib/ - Implementar nuevo sistema de IDs (
fNNNNN) - Documentar arquitectura modular en
README_OPTIMIZADO.md - Crear scripts de migración y ejemplos de uso
🔄 En Progreso:
- Migrar herramientas existentes a la nueva arquitectura
- Crear tests automatizados para cada módulo
- Implementar logging centralizado
📋 Planificado:
- Integración con APIs externas
- Dashboard en tiempo real
- Reportes automatizados por email
📚 Documentación Adicional
Nueva Arquitectura:
- README_OPTIMIZADO.md - Documentación completa de la nueva estructura
- config.rb - Configuración centralizada
- ejemplo_modulos_optimizados.rb - Ejemplos de uso práctico
Herramientas de Migración:
- 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 hitosDashboardCore::EstadosManager- Gestión de estadosDashboardCore::VerificacionManager- Verificación exhaustivaDashboardCore::VistaPreviaManager- Vista previa multi-modoDashboardCore::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-diariopara 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
Autor: Sistema de Orquestación P2601
Filosofía: "Pequeñas herramientas coordinadas hacen al todo"