Reestructuración modular integral de servicios, reorganización de gestión en docs/ y limpieza profunda del repositorio
This commit is contained in:
@@ -0,0 +1,415 @@
|
||||
# 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"*
|
||||
Reference in New Issue
Block a user