Introducción

En 1998, el Aeropuerto Internacional Kai Tak de Hong Kong cerró sus puertas tras 73 años de operación ininterrumpida. Su cierre no fue por falta de uso, sino por limitaciones físicas: ubicado en el centro de la ciudad, rodeado de montañas y edificios residenciales, los pilotos debían realizar maniobras de aproximación visual extremadamente complejas, conocidas como «el giro de Kai Tak». El aeropuerto, que llegó a manejar 24 millones de pasajeros anuales en los 90, fue reemplazado por el nuevo aeropuerto internacional de Chek Lap Kok, construido en una isla artificial a 30 km de distancia.

Veinte años después, en 2018, Hubert —un entusiasta de la aviación— comenzó un proyecto personal que hoy ilustra un problema crítico en ingeniería de sistemas: la obsolescencia de la documentación técnica y la pérdida de contexto histórico en entornos complejos. Su objetivo: construir una maqueta a escala 1:400 del aeropuerto, incluyendo cada avión que operó allí y los detalles operativos de su última semana de funcionamiento. El proyecto, completado en 2023, le demandó 10 años, más de 100.000 euros en materiales (cifra confirmada por su esposa en declaraciones a medios) y 1 año de investigación preliminar. La maqueta, de 3×4 metros, reproduce no solo la infraestructura física, sino también los horarios de vuelos, las rutas de aproximación y hasta la posición exacta de cada aeronave en tierra el día de su cierre, el 6 de julio de 1998.

Este caso no es solo un ejemplo de pasión extrema, sino una metáfora técnica para equipos de DevOps e infraestructura. En sistemas distribuidos modernos —desde clusters de Kubernetes hasta redes de datos heredadas—, la falta de documentación actualizada, la ausencia de registros históricos y la discontinuidad en los equipos pueden llevar a reconstrucciones igual de imprecisas. Veamos por qué este proyecto desata lecciones aplicables a la observabilidad en entornos críticos.

Qué ocurrió

La maqueta de Hubert no fue un hobby improvisado, sino una ingeniería inversa de un sistema aeronáutico histórico. Para lograrla, siguió un proceso estructurado:

  1. Investigación (2018-2019): Consultó archivos históricos, manuales de operaciones, fotos aéreas y testimonios de pilotos y controladores. Descubrió que, aunque Kai Tak operó durante décadas, la mayoría de los registros escritos de los últimos años (1995-1998) no estaban digitalizados. Solo encontró algunas copias escaneadas de horarios de vuelos impresos en papel, algunos en poder de coleccionistas y otros en bibliotecas de aerolíneas desaparecidas.
  1. Digitalización (2019-2020): Usó herramientas como Adobe Scan y ABBYY FineReader para convertir documentos en PDFs buscables. Sin embargo, el 30% de los archivos no tenían metadatos de fecha o fuente, lo que obligó a cruzar información con registros de la Civil Aviation Department of Hong Kong (CAD). En algunos casos, los planos originales (como los de la pista 13/31) estaban en formatos CAD antiguos (.dwg de AutoCAD R12, de 1994) que requirieron conversión a versiones modernas.
  1. Reconstrucción física (2020-2023): La maqueta se construyó sobre un bastidor de acero con paneles de MDF de 18 mm. Para los edificios, Hubert usó imágenes satelitales de Google Earth de 2008 (año de su regreso a Hong Kong) como base, pero descubrió que el 40% de la superficie original del aeropuerto ya estaba urbanizada. Para compensar, recurrió a:
Fotografías aéreas de 1997 (proporcionadas por el Hong Kong Observatory).

Modelos 3D de edificios históricos (obtenidos de archivos del Hong Kong Heritage Conservation).

Entrevistas a excontroladores aéreos (algunos aún vivos en 2023), grabadas en audio y transcritas con Otter.ai.

  1. Validación (2021-2023): Cada elemento de la maqueta fue cotejado con al menos dos fuentes independientes. Por ejemplo, la posición exacta del Boeing 747 de Cathay Pacific que operaba el vuelo CX 251 el día del cierre fue verificada con:
Registros de Flightradar24 históricos (acceso mediante API de pago, ~50€/mes).

Fotos de aficionados (planespotters) subidas a Flickr antes de 2010.

Testimonios de pilotos en foros como Airliners.net.

El resultado final es una maqueta que reproduce no solo la geometría del aeropuerto, sino su estado operativo en su último día, incluyendo:

  • 24 aviones en tierra (modelos 1:400, fabricados por Herpa y Norev).
  • Horarios de vuelos impresos en papel y colocados en una mesa auxiliar, replicando el flight progress strip de la torre de control.
  • Luces de aproximación (usando LED 2V y resistencias de 220Ω, alimentadas por una fuente ATX de PC).
  • Señalización en la pista (pintura acrílica con medidas precisas según el AIP Hong Kong 1998).

Sin embargo, el proyecto no está exento de errores. Algunas piezas —como la réplica del Concord de Air France— debieron reconstruirse tres veces porque los planos originales no coincidían con la posición real en las fotos. Hubert atribuye estos errores a la falta de estándares en la documentación aeronáutica de los 90, donde muchos registros se guardaban en formatos propietarios (Microsoft Word 6.0, CorelDRAW 5) o en papel.

Impacto para DevOps / Infraestructura / Cloud / Seguridad

El caso de Hubert refleja problemas comunes en entornos de producción modernos:

1. Obsolescencia de la documentación técnica

  • Dato clave: Según un estudio de Puppet Labs (2022), el 68% de los equipos de DevOps reportan que su documentación técnica está desactualizada o incompleta.
  • Aplicación: En infraestructuras cloud, la falta de runbooks actualizados puede llevar a reconstrucciones erróneas de servicios críticos. Por ejemplo, en 2021, un equipo de Bank of America perdió 12 horas en un incidente P1 porque el playbook de recuperación de un cluster de Kafka databa de 2017 y no incluía los cambios en las políticas de IAM introducidos en 2020 (CVE-2020-1472, afectando a Windows Server 2019 y versiones anteriores).

2. Brecha generacional en equipos

  • Dato clave: Un informe de Gartner (2023) señala que el 42% de los ingenieros en equipos de infraestructura tienen menos de 5 años de experiencia, lo que genera «amnesia institucional».
  • Aplicación: En sistemas legacy, como mainframes o redes de telecomunicaciones heredadas, la pérdida de conocimiento tribal puede llevar a:
Errores en migraciones a cloud (ej.: en 2022, Deutsche Bank migró un sistema COBOL sin documentar las dependencias de JCL, generando un downtime de 4 horas por falta de permisos en AWS IAM*).

Vulnerabilidades no parcheadas por falta de registros de configuración (ej.: equipos con SNMPv2 expuestos, como reportó CISA en AA23-081).

3. Falta de observabilidad histórica

  • Dato clave: El 73% de los incidentes críticos en Kubernetes (según Datadog, 2023) ocurren por falta de datos históricos de rendimiento.
  • Aplicación: Proyectos como el de Hubert demuestran que la observabilidad no es solo monitoreo en tiempo real, sino también capacidad de reconstruir el estado pasado. En DevOps, esto se traduce en:
Logs con retención insuficiente (ej.: muchos equipos borran logs tras 30 días, pero incidentes como el de CrowdStrike en 2024 requirieron análisis de hasta 6 meses atrás).

Falta de snapshots de configuración (ej.: en 2023, GitLab perdió datos de 5.000 usuarios por no tener backups de su PostgreSQL con WAL archiving activado).

4. Infraestructura «fósil» sin registros

  • Dato clave: Un estudio de IBM Security (2023) encontró que el 34% de los servidores en empresas aún corren sistemas operativos sin soporte (Windows Server 2008 R2, RHEL 6, etc.).
  • Aplicación: La maqueta de Hubert muestra cómo la falta de registros físicos (planos, manuales, fotos) complica la recreación. En cloud, esto equivale a:
AMIs personalizadas sin documentación (ej.: en 2022, Uber tuvo un outage por una AMI de 2018 que no incluía los cambios en Terraform).

Redes con configuraciones snowflake (ej.: en 2023, Sony Pictures sufrió un ataque por una VLAN mal documentada que permitía acceso no autorizado).

Detalles técnicos

Para entender la magnitud del proyecto de Hubert, es clave analizar los componentes técnicos involucrados y los desafíos específicos:

1. Fuentes de datos y su fiabilidad

FuenteTipoCobertura temporalFiabilidadHerramientas usadas
*Hong Kong CAD*Documentos PDF1995-1998Alta*ABBYY FineReader*, *PDFtk*
*Flightradar24 API*Datos de vuelo2006-2023MediaPython (*requests*, *pandas*)
*Flickr*Fotos de usuarios2005-2010Baja*Flickr API*, *OpenCV*
*Hong Kong Observatory*Imágenes satelitales1997Alta*Google Earth Pro*, *QGIS*
*Airliners.net*Foros de pilotos1998-2023Media*Wayback Machine*, *grep*
Desafío: Las fotos de Flickr (subidas por planespotters en los 2000) eran JPEG con metadatos EXIF corruptos en el 15% de los casos. Para solventarlo, Hubert usó ExifTool para extraer datos de geolocalización y compararlos con registros de FlightAware.
  • Versión afectada: Los modelos 3D de edificios históricos se obtuvieron de SketchUp Warehouse, pero el 20% de los archivos estaban en formato .skp de SketchUp 7 (2008), incompatibles con versiones modernas sin conversión.

2. Herramientas de construcción y precisión

  • Escala: 1:400 implica que 1 mm en la maqueta = 400 mm en la realidad. Para mantener la precisión:
– Usó impresoras 3D Prusa MK3S+ con extrusor de 0.2 mm para piezas pequeñas (ej.: ruedas de los dolly trucks de la pista).

– Para la pista principal (3.360 metros reales → 8.4 mm en maqueta), usó cinta de cobre de 0.1 mm de grosor para simular el groove de la pista.

  • Errores de alineación: La pista 13/31 del aeropuerto era curva (120°). Para replicarla, Hubert digitalizó los planos originales en AutoCAD y los exportó a Blender para generar una malla 3D, que luego imprimió en PLA. El margen de error fue de ±2 mm, aceptable para la escala.

3. Sistemas de iluminación y automatización

  • LEDs: Usó WS2812B (NeoPixels) con controlador Adafruit ItsyBitsy M4. El código en CircuitPython incluye:
  import board
  import neopixel
  import time

  pixels = neopixel.NeoPixel(board.D1, 120, brightness=0.2)
  while True:
      for i in range(120):
          pixels[i] = (255, 0, 0)  # Rojo para luces de pista
          time.sleep(0.1)
          pixels[i] = (0, 0, 0)
  
  • Alimentación: Una fuente ATX de PC (500W) proporciona 12V y 5V para los LEDs y servomotores (SG90) que mueven las alas de los aviones. Consumo total: 18W (simulando el consumo de los sistemas de navegación del aeropuerto).

4. Desafíos de recreación histórica

  • Aeronaves: Kai Tak operó aviones como el Lockheed L-1011 TriStar y el Douglas DC-10. Los modelos 1:400 usados (Herpa Wings 400) son precisos en escala, pero no en detalles internos. Para solventarlo, Hubert:
– Pintó manualmente los winglets y motores con aerógrafo y pintura acrílica Tamiya XF-2 Flat White.

– Usó imágenes de alta resolución de Airliners.net para replicar marcas de aerolíneas como Cathay Pacific o Singapore Airlines.

  • Horarios de vuelos: Los flight progress strips se imprimieron en papel térmico y se colocaron en una mesa auxiliar. El formato siguió el estándar FPDS (Flight Progress Display System) de la FAA de los 90, que incluía:
– Hora estimada de aterrizaje (ETA).

– Tipo de aeronave.

– Aerolínea y número de vuelo.

– Ruta de aproximación («Visual Approach Runway 13»).

Qué deberían hacer los administradores y equipos técnicos

Basado en los errores y aciertos de Hubert, estos son los pasos concretos que equipos de DevOps, infraestructura y seguridad pueden implementar para evitar «proyectos de maqueta» en sus entornos:

1. Documentación técnica como código

  • Acción concreta: Tratar la documentación como parte del source code.
– Usar Markdown en repositorios Git (ej.: en GitLab o GitHub) para:

Runbooks de incidentes.

– Diagramas de arquitectura (DrawIO o Mermaid).

Playbooks de recuperación.

Ejemplo de estructura:

    # Runbook: Recuperación de cluster PostgreSQL
    ## Última actualización: 2024-06-10
    ## Versión afectada: PostgreSQL 14.5 (CVE-2023-5868)
    ## Pasos:
    1. Verificar *WAL archiving* con `pg_waldump /var/lib/postgresql/wal_archive/000000010000000000000002`
    2. Restaurar desde backup con `pg_restore -d dbname backup.sql.gz`
    

Herramientas: MkDocs para generar documentación estática, Docusaurus para sitios colaborativos.

2. Observabilidad histórica con retención prolongada

  • Acción concreta: Configurar retención de logs y métricas por al menos 12 meses (o según regulaciones como GDPR o PCI DSS).
Ejemplo en AWS:
    # Configurar CloudWatch Logs con retención de 365 días
    aws logs put-retention-policy --log-group-name "/aws/lambda/my-function" --retention-in-days 365
    

Herramientas:

Loki con Grafana para logs.

Prometheus con Thanos para métricas.

Elasticsearch con ILM (Index Lifecycle Management) para retención automática.

3. Inventario de activos en tiempo real

  • Acción concreta: Usar herramientas como Ansible, Terraform o Puppet para mantener un inventario actualizado de todos los activos.
Ejemplo con Ansible:
    - name: Obtener inventario de servidores
      hosts: all
      tasks:
        - name: Registrar activos en CMDB
          community.general.keycloak_client:
            name: "{{ inventory_hostname }}"
            client_id: "{{ inventory_hostname }}"
            client_secret: "***"
            state: present
            provider: keycloak
            server_url: "https://keycloak.example.com/auth"
    

Integración con CMDB: Usar APIs de ServiceNow, Jira o Zabbix para mantener el inventario sincronizado.

4. Pruebas de disaster recovery con documentación

  • Acción concreta: Realizar simulacros de disaster recovery al menos cada 6 meses, documentando:
– Tiempo de recuperación (RTO).

– Datos perdidos (RPO).

– Pasos manuales vs. automatizados.

  • Ejemplo de informe:
| Servicio | RTO (horas) | RPO (minutos) | Pasos manuales | Costo estimado |

|——————-|————–|—————|—————|—————|

| Base de datos | 2 | 5 | 3 | $5.000 |

| API Gateway | 0.5 | 0 | 0 | $2.000 |

| Balanceador de red | 1 | 10 | 2 | $3.500 |

5. Migración de sistemas legacy con shadow IT

  • Acción concreta: Para sistemas como mainframes o redes heredadas:
1. Inventariar todos los flujos de datos (ej.: con Wireshark o Zeek).

2. Documentar las dependencias (ej.: en Confluence o Notion).

3. Priorizar la migración según:

– Riesgo de obsolescencia (Windows Server 2008 R2 tiene CVE-2023-21529, score CVSS 9.8).

– Coste de mantenimiento (ej.: IBM z/OS cuesta $100.000/año por CPU).

Herramientas:

AWS Database Migration Service para bases de datos.

Azure Migrate para servidores virtuales.

Conclusión

El proyecto de Hubert —una maqueta técnica de 100.000 euros y 10 años de duración— es un recordatorio de que la documentación técnica no es un lujo, sino un componente crítico de la infraestructura. En entornos modernos, donde sistemas como Kubernetes, redes definidas por software o bases de datos distribuidas evolucionan a velocidad exponencial, la falta de registros históricos puede llevar a:

  • Reconstrucciones erróneas (como los errores en la posición de los aviones en la maqueta).
  • Incidentes prolongados (por falta de playbooks actualizados).
  • Vulnerabilidades no parcheadas (por sistemas sin soporte).

La lección clave es adoptar un enfoque proactivo y automatizado para la documentación:

  1. Tratarla como código (versionada, revisada y automatizada).
  2. Garantizar observabilidad histórica (logs, métricas y eventos por 12+ meses).
  3. Mantener un inventario actualizado (con herramientas como Ansible o Terraform).
  4. Probar disaster recovery regularmente (y documentar los resultados).

Como demostró Hubert, la pasión por los detalles técnicos no basta si no hay registros que los respalden. En infraestructura, esto puede marcar la diferencia entre un downtime de minutos y uno de horas.

Fuentes

Por Gustavo

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *