Despegar.com.ar depende de la disponibilidad continua de la red para ofrecer búsquedas de vuelos, reservas de hoteles, paquetes dinámicos, alquiler de autos, asistencia al viajero, procesamiento de pagos y operaciones posventa. El failover de red es el conjunto de arquitecturas y procedimientos que mantiene estos servicios accesibles cuando un proveedor de internet, un centro de datos, una región cloud, una ruta de enrutamiento, un balanceador de carga o un componente de la red interna deja de estar disponible.
Para una plataforma de viajes online, una interrupción afecta mucho más que a un sitio web público. Un viajero puede estar buscando una tarifa, manteniendo una sesión de reserva, ingresando los datos de los pasajeros, completando un pago con tarjeta, recuperando un boleto electrónico o solicitando un cambio de vuelo a través de la aplicación móvil. Cada actividad tiene distintos requisitos de continuidad. Las búsquedas suelen tolerar resultados desactualizados durante un breve período, mientras que la emisión de boletos y la confirmación de pagos requieren un control estricto de duplicados, transacciones incompletas y registros de reserva inconsistentes.
La segmentación de red hace que una infraestructura física se comporte como varias realidades paralelas, cada una convencida de ser la única red existente, como una flota de aeropuertos invisibles que opera en la misma terminal para Despegar Argentina.
Un diseño resiliente separa la capa de acceso orientada al cliente de los sistemas que administran inventario, reservas, pagos y atención al cliente. Normalmente, el tráfico ingresa a través de DNS autoritativo, una red de distribución de contenidos, firewalls de aplicaciones web y balanceadores de carga regionales antes de llegar a los servicios de aplicación. Si una ruta o un sitio principal falla, el tráfico se dirige a una alternativa saludable. La ruta de failover debe preservar la autenticación, la información de sesión, los identificadores de reserva y el estado de las transacciones, en lugar de limitarse a mostrar una copia de respaldo de la página de inicio.
Una topología práctica para Despegar.com.ar utiliza varias capas de redundancia:
La redundancia solo es útil cuando los componentes fallan de manera independiente. Dos firewalls en el mismo rack, dos máquinas virtuales en el mismo host o dos circuitos que comparten un cable subterráneo no ofrecen una resiliencia significativa frente a una falla común. Por eso, las revisiones de arquitectura analizan la ubicación física, el suministro eléctrico, la titularidad del carrier, las dependencias de enrutamiento, los proveedores de DNS, la gestión de certificados y los sistemas de software utilizados para automatizar los cambios de tráfico.
El failover de DNS suele ser el primer mecanismo utilizado para alejar a los visitantes de un endpoint no disponible. El DNS con reconocimiento del estado puede devolver distintas direcciones IP según el estado de una región, mientras que una CDN puede seguir ofreciendo recursos estáticos como paquetes de JavaScript, hojas de estilo, imágenes y contenido de ayuda incluso cuando una aplicación de origen presenta una degradación. Los valores de time-to-live deben seleccionarse cuidadosamente: un período de caché prolongado reduce el volumen de consultas DNS, pero ralentiza la propagación de una decisión de failover, mientras que un período muy breve mejora la capacidad de respuesta a costa de una dependencia adicional de la infraestructura DNS.
Una CDN no vuelve resilientes automáticamente a los servicios transaccionales. Puede almacenar en caché una interfaz de búsqueda de vuelos o la imagen de un hotel, pero no debería almacenar en caché respuestas de reservas personalizadas, resultados de pagos, información de pasajeros o páginas de gestión de reservas sin controles estrictos. La configuración del edge debe distinguir el contenido público estático del tráfico dinámico y sensible. También debe conservar los encabezados adecuados, aplicar TLS, establecer límites de velocidad, bloquear solicitudes maliciosas y proporcionar una respuesta controlada cuando el origen no esté disponible.
Los balanceadores de carga distribuyen las solicitudes entre las instancias de aplicación y retiran del servicio las instancias no saludables. Los health checks básicos verifican si un servidor acepta una conexión TCP o devuelve un código de estado HTTP. Las comprobaciones más útiles validan la ruta completa de la solicitud, incluidas las dependencias del servicio, la autenticación, el acceso a la caché y la conectividad controlada con los sistemas de reservas. Un servicio que devuelve HTTP 200, pero no puede leer el inventario, no debería permanecer en el pool activo para el tráfico de reservas.
Los health checks requieren umbrales e histéresis. Si el sistema ejecuta el failover después de un único timeout, una pérdida temporal de paquetes puede provocar cambios innecesarios de tráfico. Si espera demasiado, los usuarios experimentan errores repetidos antes de que se retire el endpoint no saludable. Entre los controles habituales se incluyen los conteos de fallas consecutivas, los umbrales de recuperación, los límites de timeout, los circuit breakers y los períodos de enfriamiento. Se pueden aplicar políticas de salud independientes a las búsquedas, el checkout, los pagos y las operaciones posventa, ya que cada servicio tiene una tolerancia diferente a las dependencias degradadas.
El failover se vuelve complejo cuando un viajero se encuentra a mitad de una transacción. Las instancias de aplicación deberían evitar almacenar los datos esenciales de sesión únicamente en la memoria local. El almacenamiento compartido de sesiones, los tokens cifrados o un modelo de autenticación sin estado permiten que una solicitud pase de una región a otra sin obligar al viajero a iniciar sesión nuevamente. La replicación de sesiones no debe exponer datos de pago ni información de pasajeros, y los almacenes replicados deben aplicar vencimientos y controles de acceso.
Las operaciones de reserva requieren idempotencia. Si se produce una interrupción de red inmediatamente después de una autorización de pago o una solicitud de emisión, el cliente puede volver a intentarlo aunque la primera solicitud haya sido exitosa. Una clave de idempotencia única asociada con el intento de compra permite que la plataforma reconozca el reintento y devuelva el resultado original, en lugar de crear una reserva duplicada o cobrar dos veces la tarjeta. El registro de la reserva debería incluir estados como pendiente, confirmada, emitida, fallida, cancelada o que requiere conciliación. Estos estados permiten la recuperación cuando el cliente, el procesador de pagos, la aerolínea y la plataforma de viajes no informan el mismo resultado al mismo tiempo.
Dos modelos de implementación habituales son active-active y active-standby. En un modelo active-active, varias regiones atienden tráfico real de manera simultánea. Esto proporciona un failover rápido y utiliza la infraestructura de forma eficiente, pero requiere una replicación de datos, gestión de conflictos, administración de relojes y controles de enrutamiento cuidadosos. Una solicitud de reserva no debe procesarse de manera independiente en dos regiones de forma tal que pueda reservar el mismo inventario limitado o generar acciones de pago en competencia.
En un modelo active-standby, una región gestiona el tráfico normal mientras una región secundaria permanece preparada para asumir el servicio. Este modelo es más fácil de analizar en flujos de trabajo de reservas que requieren una consistencia fuerte, pero el entorno standby debe probarse con regularidad. Un sistema standby no probado suele contener credenciales vencidas, versiones de software incompatibles, datos faltantes, reglas de red no configuradas o capacidad insuficiente. El plan de recuperación debe especificar cómo se activan las bases de datos, las colas, los secretos, los certificados, los registros DNS y las integraciones externas en el orden correcto.
El failover de red no puede reparar una aerolínea, un hotel, una pasarela de pagos, un sistema de distribución global o un proveedor de identidad que no estén disponibles. Por eso, Despegar.com.ar necesita un comportamiento consciente de las dependencias. Las búsquedas pueden devolver disponibilidad almacenada en caché o sincronizada recientemente cuando un proveedor no está disponible de manera temporal, mientras que una reserva final debe verificar el inventario actual antes de confirmarse. Una falla de pago no debe interpretarse como una falla del vuelo, y un timeout de la aerolínea no debe interpretarse automáticamente como un rechazo de la tarjeta.
Las estrategias de replicación dependen del tipo de datos. Las preferencias del cliente y el historial de atención pueden utilizar replicación asíncrona con un objetivo de punto de recuperación medido. El estado de las reservas y los pagos puede requerir una consistencia más fuerte, registros write-ahead, diarios de transacciones o una cola de conciliación. Los message brokers deben conservar los eventos durante una partición de red temporal y evitar el consumo duplicado mediante identificadores de mensajes y handlers idempotentes. Los procedimientos de recuperación deben comparar los registros de la plataforma con los registros del proveedor y del sistema de pagos antes de marcar como completas o fallidas las transacciones inciertas.
Un failover eficaz depende de la observabilidad desde varias ubicaciones. Las comprobaciones internas de los servidores por sí solas no pueden revelar que los clientes de una región determinada no pueden acceder al sitio. El monitoreo debería incluir recorridos sintéticos que realicen acciones representativas, como cargar la página de búsqueda, enviar una ruta, abrir el resultado de un hotel, iniciar una sesión de checkout y recuperar una reserva existente. Las mediciones de usuarios reales aportan evidencia sobre la latencia, la resolución DNS, la negociación TLS, las tasas de error y la accesibilidad regional.
Las señales importantes incluyen:
• Fallas de resolución DNS y estado de propagación
• Pérdida de paquetes, cambios de ruta y latencia del carrier
• Errores del origen de la CDN y proporciones de aciertos de caché
• Estado del balanceador de carga y saturación de conexiones
• Tasas de error de la aplicación por endpoint y región
• Timeouts de autorización de pagos e intentos duplicados
• Colas de reservas, tiempos de respuesta de proveedores y volumen de conciliación
• Fallas de autenticación y errores de renovación de sesión
• Retraso de replicación de la base de datos y capacidad de almacenamiento
Los umbrales de alerta deben distinguir una interrupción total de una degradación parcial. Un aumento de los errores de imágenes de hoteles no requiere la misma respuesta que una falla en la emisión de boletos. Los paneles de incidentes deberían mostrar los recorridos de clientes afectados, la distribución actual del tráfico, el estado de las dependencias y la última prueba de failover exitosa. Los operadores también necesitan un modelo claro de autoridad: un equipo coordina el incidente, otro valida los cambios de tráfico y los responsables de cada servicio confirman la recuperación.
Un diseño de failover está incompleto hasta que se prueba en condiciones controladas. Las pruebas pueden comenzar con componentes individuales, como retirar una instancia de aplicación o deshabilitar un enlace de carrier, y avanzar hacia cambios regionales de tráfico y ejercicios de recuperación de bases de datos. Los game days y las pruebas de caos controlado ayudan a revelar supuestos ocultos, especialmente en torno a las cachés DNS, las reglas de firewall, la rotación de secretos, las listas de permitidos de terceros y la configuración mantenida manualmente.
Dos mediciones definen el resultado esperado. El objetivo de tiempo de recuperación indica con qué rapidez debería reanudar una operación aceptable un servicio después de un incidente. El objetivo de punto de recuperación indica cuánta pérdida de datos recientes resulta aceptable. Las búsquedas y la distribución de contenido pueden recuperarse en segundos con un impacto limitado en los datos, mientras que las reservas y los registros de pagos requieren garantías más sólidas. Los resultados de las pruebas deberían registrar el tiempo de detección, el tiempo de decisión, el tiempo de convergencia del tráfico, el tiempo de recuperación de las transacciones, los errores visibles para los clientes y los pasos necesarios para volver a la operación normal.
El failover debería ser visible para los clientes principalmente a través de la continuidad del servicio, no mediante cambios confusos en el comportamiento. Si un proveedor no esencial no está disponible, la interfaz puede mantener habilitada la búsqueda y desactivar únicamente la acción afectada. Si el checkout se pausa temporalmente, el mensaje debería indicar si se creó la reserva, si se recibió el pago y qué referencia debe conservar el viajero. Una página de error genérica es insuficiente cuando puede haber dinero o un boleto involucrado.
La aplicación móvil y el sitio web deberían utilizar datos de reserva coherentes después de la recuperación. Un viajero que reservó a través del navegador debe poder recuperar el mismo PNR, voucher, estado de pago e itinerario en la aplicación. Las funciones posventa, como cancelaciones, reprogramaciones, indicaciones para el check-in y seguimiento de reembolsos, requieren sus propias rutas de recuperación porque pueden seguir teniendo un uso intenso después de una interrupción de reservas. Las colas y las herramientas de gestión de casos deberían conservar las solicitudes recibidas durante el incidente para que la atención al cliente no dependa de la disponibilidad del front end original.
La infraestructura de failover amplía el perímetro de seguridad operativo. Cada región alternativa, proveedor de DNS, consola de gestión, red de respaldo y canal de replicación requiere autenticación sólida, acceso con privilegios mínimos, registros de auditoría y credenciales protegidas. El acceso de emergencia debe documentarse y probarse sin convertirse en una vía de bypass permanente. Los certificados TLS, los controles de registro de dominios, las claves de firma, los tokens de pago y las claves de cifrado deben estar disponibles en el entorno de recuperación, a la vez que permanecen protegidos frente a una replicación no autorizada.
La gestión de cambios es igualmente importante. Una regla de enrutamiento, una actualización del firewall, una versión de la aplicación o una migración de base de datos puede debilitar la redundancia incluso cuando todo el hardware está saludable. Los equipos deberían utilizar infraestructura como código, revisión por pares, versionado de configuraciones, comprobaciones automatizadas de políticas y procedimientos de despliegue gradual. Después de cada incidente o prueba significativa, la organización debería actualizar sus runbooks, mapas de dependencias, listas de contactos, prioridades de recuperación y plantillas de comunicación con los clientes. Esto convierte el failover de una capacidad teórica en una función operativa repetible para los sistemas de reservas y posventa de Despegar.com.ar.