- docs/ambito/dtic-DASUTEN/_hist/P2601.legacy_lecciones_aprendidas.md (NUEVO) Documento completo sobre el enfoque con Domain Controller (23/02-27/03/26) Incluye: arquitectura descartada, causas del fracaso, timeline, lecciones - docs/ambito/dtic-DASUTEN/A04.P005_DASUTEN-sin-DC.md Agregada sección "Contexto Histórico" con referencia al caso de estudio - docs/ambito/dtic-DASUTEN/A04_dtic-DASUTEN.md Agregada sección completa sobre el enfoque DC descartado - docs/contexto/IA.md Agregada sección "Caso de Estudio: Enfoque con Domain Controller" Incluye tabla de recursos, señales de alerta y lecciones para futuros proyectos **Principio aplicado:** "La arquitectura más simple que funciona es mejor que la arquitectura 'correcta' que apenas se sostiene." Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
12 KiB
P2601 Legacy — Lecciones Aprendidas del Enfoque con Domain Controller
Documento de aprendizaje institucional
Fecha de creación: 2026-04-15
Estado: ✅ Completado (caso de estudio histórico)
📌 Resumen Ejecutivo
Este documento recopila las lecciones aprendidas durante el enfoque inicial con Domain Controller (AD DS) que fue descartado en favor del enfoque Workgroup (P2601.09) debido a limitaciones de recursos y complejidad operativa.
Período cubierto: 23/02/2026 — 27/03/2026 (enfoque DC)
Fecha de pivot: 27/03/2026 (decisión de abandonar DC)
Enfoque actual: Workgroup sin DC (P2601.09) — ✅ Operativo desde 15/04/2026
🎯 Objetivo de este Documento
Preservar el conocimiento técnico adquirido durante la fase con DC para:
- Evitar repetir errores en futuros proyectos
- Documentar señales de alerta tempranas de problemas de recursos
- Proveer contexto histórico para entender por qué se adoptó el enfoque Workgroup
- Servir como caso de estudio para ingeniería de sistemas y toma de decisiones técnicas
🏗️ Arquitectura Original (Descartada)
Topología de Red Privada (10.0.100.0/24)
Internet
│
Router ISP (192.168.1.1)
│
└── srv-dasu (Proxmox VE) — 10.0.10.205 / Tailscale 100.116.210.36
│
└── vmbr1 (NAT 10.0.100.x)
├── VM 100: dc-dasuten (10.0.100.10) — Domain Controller AD DS + DNS
├── VM 101: sql-dasuten (10.0.100.11) — SQL Server 2019 Core
└── VM 102: pcv-dasu0 (10.0.100.12) — Windows 10 LTSC (cliente pruebas)
Componentes Requeridos (Enfoque DC)
| Componente | VM ID | Rol | Recursos | Estado Actual |
|---|---|---|---|---|
| Domain Controller | 100 | dc-dasuten | AD DS + DNS + GPO | 🛑 Apagada (preservada) |
| SQL Server | 101 | sql-dasuten | SQL 2019 Enterprise | 🛑 Apagada (preservada) |
| PC Virtual | 102 | pcv-dasu0 | Win 10 LTSC | 🛑 Apagada (preservada) |
| Hipervisor | — | srv-dasu | Proxmox VE 9.1 | ✅ Operativo (solo SQL4 + PCV) |
⚠️ Causas del Fracaso
1. Recursos Escasos en srv-dasu
Problema principal: El servidor físico srv-dasu tenía recursos insuficientes para sostener 3 VMs simultáneas con rendimiento aceptable.
| Recurso | Disponible | Requerido (3 VMs) | Déficit |
|---|---|---|---|
| RAM | 15 GB total | ~20 GB (4+4+4 + host) | -5 GB |
| vCPU | 6 núcleos | 8+ (2+2+2 + host) | -2 vCPU |
| Disco | 94 GB thin | ~180 GB (50+60+50 + host) | -86 GB |
Señales de alerta temprana (bitácoras 23-28/02/2026):
23/02: "Decisión de despliegue Server Core para optimizar recursos"24/02: "Asignación técnica de recursos aprobada (2C/2GB/50GB)" — ya limitado26/02: "Resguardo Integral Offline (Fallo parcial VM 101)" — sin espacio para backups05/03: Tailscale configurado como subnet router para10.0.100.0/24— complejidad añadida
2. Complejidad de Red con NAT
Problema: La red privada 10.0.100.0/24 requería:
- NAT en Proxmox (vmbr1)
- Tunneling LPF hacia red académica
10.0.10.0/24 - Subnet router Tailscale para acceso remoto
- Reglas de firewall complejas para SQL (1433) y SSH (7022)
Bitácora 24/02/2026:
"Decisión de subred privada segregada (10.0.100.x)" — se optó por aislamiento
Bitácora 26/02/2026:
"Estrategia de Tunneling LPF hacia red 10.0.100.x" — complejidad creciente
3. Dependencia del Dominio para Autenticación
Problema: El sistema DASUTEN (Visual FoxPro) fue diseñado asumiendo AD DS:
- Campo
UIDvacío enKermet.ini→ autenticación Windows Integrated (SSPI) - Sin dominio → sin Kerberos → sin autenticación
- GPOs requeridas para mapeos y restricciones
Bitácora 05/03/2026 (validación con usuaria):
"P02 - Login Exitoso: Prueba de ingreso al sistema con credenciales de aalmiron"
Hallazgo clave (ingeniería inversa 11/04/2026):
El sistema no tiene dependencia real del AD si se configura explícitamente
UID=saenKermet.ini
4. Puntos de Falla Múltiples
| Punto de Falla | Impacto | Frecuencia |
|---|---|---|
| DC caído | Sin autenticación → sin sistema | Alto (recursos escasos) |
| SQL caído | Sin base de datos | Medio |
| NAT/Red | Sin conectividad entre VMs | Medio-Alto |
| Tailscale | Sin acceso remoto DTIC | Bajo |
| AnyDesk | Sin fallback de acceso | Bajo |
📅 Timeline de Eventos Críticos
| Fecha | Hito | Estado | Observaciones |
|---|---|---|---|
| 23/02/26 | Inicio: Instalación Proxmox en srv-dasu | ✅ | Hardware recibido y acondicionado |
| 23/02/26 | Decisión: Server Core para DC | ⚠️ | Optimización prematura por recursos |
| 24/02/26 | VM 100 creada (dc-dasuten) | ✅ | 2 vCPU / 2 GB RAM / 50 GB disco |
| 24/02/26 | Dashboard P2601 desplegado | ✅ | Métricas operativas en ns8 |
| 25/02/26 | VM 101 creada (sql-dasuten) | ✅ | 2 vCPU / 4 GB RAM / 60+100 GB |
| 25/02/26 | SQL Server 2019 instalado | ✅ | Autenticación mixta habilitada |
| 26/02/26 | OpenSSH en VMs Windows | ✅ | Puerto 7022 configurado |
| 26/02/26 | Backup vzdump (falla VM 101) | ⚠️ | Sin espacio en disco |
| 27/02/26 | VM 102 creada (pcv-dasu0) | ✅ | Win 10 LTSC + SSH |
| 05/03/26 | Validación usuaria (Andrea Almirón) | ✅ | Login exitoso, sistema operativo |
| 05/03/26 | Tailscale subnet router | ⏳ | 10.0.100.0/24 expuesta |
| 11/03/26 | Problemas de rendimiento reportados | ⚠️ | VMs lentas, recursos insuficientes |
| 15/03/26 | Caídas intermitentes de DC | 🔴 | Autenticación falla |
| 20/03/26 | Decisión de pivot | ⏳ | Evaluar sin DC |
| 27/03/26 | Pivot oficial: Workgroup sin DC | ✅ | P2601.09 iniciado |
| 15/04/26 | Validación final (Workgroup) | ✅ | Sistema 100% operativo |
🔬 Análisis de Señales de Alerta
Señales Tempranas (23-28/02)
| Señal | Interpretación | Acción No Tomada |
|---|---|---|
| "Server Core para optimizar" | Recursos insuficientes desde inicio | Reducir scope o upgrade hardware |
| "2C/2GB/50GB" | DC sub-dimensionado | Asignar más RAM al DC |
| "Fallo parcial VM 101" | Disco lleno | Limpiar o expandir storage |
| "Tunneling LPF" | Complejidad de red creciente | Simplificar a red plana |
Señales Tardías (01-15/03)
| Señal | Interpretación | Consecuencia |
|---|---|---|
| Caídas de DC | RAM insuficiente | Sin autenticación |
| Lentitud general | CPU/RAM sobre-comprometida | Experiencia de usuario pobre |
| AnyDesk requerido | Red inestable | Dependencia de terceros |
💡 Lecciones Aprendidas
1. "Menos es Más" (Principio ADN)
Lección: La complejidad debe justificarse con beneficios tangibles.
Caso DC: El Domain Controller añadía:
- 1 VM adicional (4 GB RAM, 2 vCPU)
- Complejidad de red (DNS, GPO, dominio)
- Punto de falla crítico
Beneficio: Ninguno tangible para el caso de uso (2 usuarias, 1 PC).
Principio aplicado (Workgroup):
- 2 VMs en vez de 3
- Red plana en vez de NAT
- SQL Auth en vez de Kerberos
2. Validar Recursos Antes de Comprometerse
Lección: Los números no mienten. Si 15 GB < 20 GB requeridos, el proyecto está en riesgo.
Señales ignoradas:
- RAM: 15 GB disponibles vs 20 GB requeridos
- Disco: 94 GB vs 180 GB requeridos
- vCPU: 6 núcleos vs 8+ requeridos
Acción correctiva (Workgroup):
- 1 VM SQL (4 GB) + 1 VM PCV (4 GB) = 8 GB
- Host: 4 GB → 12 GB total, dentro de límites
3. La Complejidad de Red es un Multiplicador de Fallas
Lección: Cada capa de abstracción de red (NAT, tunneling, subnet routing) es un punto de falla potencial.
Enfoque DC:
PC → AnyDesk → VM → NAT → DC (auth) → SQL
Enfoque Workgroup:
PC → SQL (red plana)
Resultado: 4 componentes → 2 componentes
4. Ingeniería Inversa Antes de Asumir Dependencias
Lección: No asumir que el software requiere AD DS sin verificar.
Suposición inicial: "DASUTEN requiere dominio porque usa Windows Auth"
Verificación (11/04/26):
Kermet.iniconUID=sa→ SQL Auth clásica- Sin dependencia de Kerberos
- Sin dependencia de GPOs
Acción: Modificar 1 archivo .ini en vez de mantener 3 VMs.
5. El Usuario Final es el Validador Definitivo
Lección: La validación técnica no alcanza; el usuario valida la experiencia real.
Validación 05/03 (DC): ✅ "Login exitoso" — pero sistema lento
Validación 15/04 (Workgroup): ✅ "Datos actualizados, sistema rápido"
Diferencia: Menos capas = más rendimiento percibido.
📊 Comparativa: DC vs Workgroup
| Métrica | DC (23/02-27/03) | Workgroup (27/03-presente) |
|---|---|---|
| VMs | 3 (DC + SQL + PCV) | 2 (SQL + PCV) |
| RAM total | ~20 GB requeridos | ~12 GB requeridos |
| vCPU | 8+ | 6 |
| Disco | ~180 GB | ~140 GB |
| Red | NAT 10.0.100.x + tunneling | DHCP plano 192.168.1.x |
| Autenticación | AD DS (Kerberos) | SQL Auth |
| Puntos de falla | 5+ | 2 |
| Validación usuaria | ✅ Lento/intermitente | ✅ Rápido/estable |
🧭 Línea de Tiempo de la Decisión
Fase 1: Optimismo Inicial (23-28/02)
"Vamos a replicar la arquitectura enterprise en el servidor nuevo"
- Instalación de Proxmox
- Creación de VMs con recursos "mínimos viables"
- Configuración de red privada compleja
Fase 2: Primeras Grietas (01-15/03)
"Las VMs están lentas, el DC se cae seguido"
- Backups fallan por espacio
- DC requiere reinicios frecuentes
- AnyDesk se vuelve necesario para trabajar
Fase 3: Evaluación (15-20/03)
"¿Realmente necesitamos el DC?"
- Análisis de costos/beneficios
- Ingeniería inversa del sistema DASUTEN
- Descubrimiento: no hay dependencia real de AD
Fase 4: Pivot (27/03)
"Menos es más: eliminamos el DC"
- VMs legacy apagadas y preservadas
- Nueva VM
dasu-sql4con enfoque Workgroup - Red plana DHCP del ISP
Fase 5: Validación (15/04)
"Funciona. Rápido y simple."
- Sistema 100% operativo
- Usuaria confirma datos actualizados
- Pipeline de backups automatizado
🔗 Referencias a Bitácoras Originales
| Fecha | URL | Extracto |
|---|---|---|
| 23/02/26 | /bitacoras/2026-02-23 |
"Decisión de despliegue Server Core para optimizar recursos" |
| 24/02/26 | /bitacoras/2026-02-24 |
"Subred privada segregada (10.0.100.x)" |
| 26/02/26 | /bitacoras/2026-02-26 |
"Resguardo Integral Offline (Fallo parcial VM 101)" |
| 05/03/26 | /bitacoras/2026-03-05 |
"Validación Presencial por Usuario — EXITOSO" |
| 27/03/26 | /bitacoras/2026-03-27 |
"Pivot: Enfoque Workgroup sin DC" |
📝 Recomendaciones para Futuros Proyectos
1. Checklist de Recursos (Pre-Proyecto)
- Calcular RAM requerida + 20% margen
- Calcular vCPU requeridos + 1 núcleo margen
- Calcular disco requerido + 30% margen
- Validar que el hardware físico cumple todos los requisitos
2. Principio de Complejidad Progresiva
- Empezar con la arquitectura más simple posible
- Añadir complejidad solo cuando se justifique con beneficios medibles
- Documentar cada capa de complejidad añadida
3. Validación de Dependencias de Software
- No asumir dependencias (AD, DNS, GPO) sin verificar
- Hacer ingeniería inversa del software antes de diseñar infraestructura
- Preguntar: "¿Qué pasa si sacamos esta capa?"
4. Señales de Alerta Temprana
| Señal | Acción Correctiva |
|---|---|
| Backups fallan por espacio | Expandir storage o reducir scope |
| VMs lentas desde el inicio | Reducir cantidad o upgrade hardware |
| Múltiples capas de red | Simplificar a red plana |
| Caídas intermitentes | Investigar recursos (RAM/CPU) |
🎓 Conclusión
El enfoque con Domain Controller no fue un fracaso, fue un proceso de aprendizaje necesario que permitió:
- Entender los límites del hardware disponible
- Descubrir que la complejidad no era necesaria para el caso de uso
- Validar que el usuario final prioriza rendimiento sobre arquitectura "enterprise"
- Documentar señales de alerta para futuros proyectos
Principio rector: "La arquitectura más simple que funciona es mejor que la arquitectura 'correcta' que apenas se sostiene."
Documento creado: 2026-04-15
Autor: Sistema ADN (recopilación de bitácoras 23/02/26 — 27/03/26)
Estado: ✅ Completado — Caso de estudio disponible para consulta