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

13 KiB

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

  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

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 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:

# 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 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:

    ./orquestador.rb flujo revision-semanal
    
  2. 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

  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:

# 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):

  • BKP02f05001 (Backup Automático de VMs)
  • DB02f05002 (Backup Automático de Base de Datos)
  • MON01f05003 (Monitoreo de Recursos)
  • DOC01f05004 (Documentación Operativa)
  • PERF01f05005 (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:

# 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):

  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:

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 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
Autor: Sistema de Orquestación P2601
Filosofía: "Pequeñas herramientas coordinadas hacen al todo"