Files
dtic-DIIAA/docs/ambito/dtic-DASUTEN/_hist/P2601.legacy_lecciones_aprendidas.md
Ricardo MonlaandClaude Opus 4.6 faa5d7ad9a [Documentación] Caso de estudio DC descartado — Lecciones aprendidas integradas
- 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>
2026-04-15 19:56:02 -03:00

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:

  1. Evitar repetir errores en futuros proyectos
  2. Documentar señales de alerta tempranas de problemas de recursos
  3. Proveer contexto histórico para entender por qué se adoptó el enfoque Workgroup
  4. 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 limitado
  • 26/02: "Resguardo Integral Offline (Fallo parcial VM 101)" — sin espacio para backups
  • 05/03: Tailscale configurado como subnet router para 10.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 UID vacío en Kermet.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=sa en Kermet.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.ini con UID=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-sql4 con 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ó:

  1. Entender los límites del hardware disponible
  2. Descubrir que la complejidad no era necesaria para el caso de uso
  3. Validar que el usuario final prioriza rendimiento sobre arquitectura "enterprise"
  4. 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