3.13

Ver en inglés

3.13 Red y conectividad

Visión general y motivación

Cada solicitud que su aplicación emite cruza una red, y la red no sabe nada de sus plazos. Entre su código y la base de datos, el proveedor de pagos o el navegador hay una pila de componentes en movimiento: resolución de nombres, enrutamiento, control de congestión, acuerdos de cifrado, balanceadores de carga, proxies y firewalls. La mayoría de los ingenieros de aplicaciones trata todo esto como un canal directo y fiable, y esa suposición es, con diferencia, la fuente más prolífica de incidentes en producción. Las célebres falacias de la computación distribuida (la red es fiable, la latencia es cero, el ancho de banda es infinito, la topología no cambia y el transporte no tiene coste) nombran con precisión las creencias que convierten un pequeño tropiezo en una caída total. Este capítulo no es un curso de certificación de redes. Es el conocimiento práctico que un ingeniero de aplicaciones realmente necesita para construir sistemas que permanezcan en pie cuando la red se comporta mal.

Para una gran organización, la conectividad es el punto donde la arquitectura se encuentra con la física y la política a la vez. Una empresa global entrelaza centros de datos, regiones de nube, APIs de socios y sistemas heredados, y cada salto suma latencia, modos de fallo y un perímetro de seguridad que alguien debe asumir. Los gobiernos añaden reglas estrictas sobre cómo el tráfico entra y sale de sus redes y por dónde puede transitar los datos de los ciudadanos. La diferencia entre un equipo que comprende la red y uno que la ignora se manifiesta en las cifras de disponibilidad, en los tiempos de carga, en los informes de vulnerabilidad y en las observaciones de auditoría. Este material se vincula con los sistemas distribuidos (capítulo 3.3), la escalabilidad y la resiliencia (capítulo 3.5), la infraestructura y la seguridad en la nube (capítulo 4.3) y la criptografía y la gestión de claves (capítulo 4.8).

La buena noticia es que no necesita dominar los protocolos de enrutamiento para construir sistemas resilientes. Necesita saber qué capas importan para sus decisiones, de dónde viene la latencia, cómo se resuelven los nombres, cómo se asegura y se reparte el tráfico, y cómo fallar con elegancia en el límite de la red. Si acierta en esos puntos, gran parte de la red se convierte en un sustrato fiable.

Principios fundamentales

  • La red es una dependencia, no una certeza. Trate cada llamada remota como algo que puede ser lento, caer o mentir sobre si se completó.
  • La latencia la fijan la distancia y los viajes de ida y vuelta. No puede vencer la velocidad de la luz, así que reduzca los viajes y acerque los datos a los usuarios.
  • Los nombres fallan más que los servidores. La resolución de nombres y los certificados causan una proporción sorprendente de caídas, así que trátelos como preocupaciones operativas de primera clase.
  • Asegure y cierre el cifrado de forma deliberada. Sepa exactamente dónde se cifra el tráfico, dónde se descifra y quién custodia las claves.
  • Cada límite de red necesita un tiempo de espera y un plan alternativo. Las esperas sin límite y los reintentos ciegos convierten una sola dependencia lenta en una caída global.
  • Denegue por defecto en los extremos. Segmente las redes, controle lo que sale y asuma que el perímetro ya es poroso.
  • Observe la conexión, no solo el código. Los errores de conexión, los reenvíos, los tiempos de acuerdo y la latencia de DNS son señales que sus registros suelen pasar por alto.

Recomendaciones

Comprenda las capas que realmente condicionan sus decisiones

No necesita tener memorizado el modelo de siete capas, pero sí necesita un mapa mental. En la capa de transporte, el Protocolo de Control de Transmisión (TCP) le ofrece un flujo de bytes ordenado y fiable a costa de un acuerdo inicial y del bloqueo en cabeza de cola, mientras que el Protocolo de Datagramas de Usuario (UDP) le ofrece datagramas económicos, desordenados, sin garantía de entrega. El tráfico de peticiones fiables viaja por TCP; la multimedia en tiempo real, los videojuegos y parte de la telemetría viajan por UDP, porque un paquete tardado es peor que uno perdido.

La evolución del Protocolo de Transferencia de Hipertexto (HTTP) cambia su techo de rendimiento. HTTP/1.1 gestiona una sola solicitud por conexión a la vez, por lo que los navegadores abren muchas conexiones y usted paga acuerdos repetidos. HTTP/2 multiplexa muchos flujos sobre una única conexión TCP, lo que elimina el bloqueo en cabeza de cola a nivel de aplicación, pero no el de nivel TCP: un solo paquete perdido bloquea todos los flujos de esa conexión. HTTP/3 se ejecuta sobre QUIC, un transporte basado en UDP que otorga a cada flujo entrega independiente, configuración de conexión más rápida y migración de conexión ante cambios de red. Rara vez los implementa usted mismo, pero los elige en sus balanceadores, su red de entrega de contenido y sus clientes, y la decisión se refleja en la latencia de cola.

Trate DNS y los certificados como sistemas de producción

El Sistema de Nombres de Dominio (DNS) traduce nombres humanos en direcciones, y se sitúa delante de casi cada solicitud. Un número notable de caídas de gran alcance se remontan a DNS: un cambio erróneo de registro, una zona caducada, un resolvent mal configurado, una capa de caché que sirve respuestas obsoletas o un servidor autoritativo lento que añade cientos de milisegundos al primer byte. Trate los cambios de DNS con el mismo rigor que un despliegue de código. Utilice valores de tiempo de vida (TTL) sensatos para poder desplazar el tráfico rápidamente durante un incidente sin invitar a la caché obsoleta en condiciones normales, y vigile la latencia de resolución y las tasas de fallo como métricas reales.

Los certificados merecen la misma seriedad. Cuando los certificados de Seguridad de Capa de Transporte (TLS) caducan sin que nadie lo note, servicios completos se apagan de golpe, y el fallo no se parece en nada a un error de código. Automatice la emisión y la renovación, controle las fechas de caducidad de forma centralizada y active alertas con margen de antelación. Decida de forma deliberada dónde se cierra el TLS: en el balanceador de carga de la frontera, en un proxy o hasta el propio servicio. Cerrar en la frontera simplifica el tráfico interno, pero deja ese tramo interno sin cifrar a menos que vuelva a cifrarlo. Las autoridades de certificación, la rotación de claves y la elección de cifrados se abordan en el capítulo 4.8; aquí el punto operativo es que DNS y los certificados fallan en silencio y arrastran consigo todo, por lo que hay que instrumentar y automatizar ambos.

Reparta la carga en la capa adecuada y aproveche los proxies

El balanceo de carga distribuye el tráfico entre varios destinos, y dónde lo haga importa. Un balanceador de capa 4 (L4) enruta por dirección IP y puerto sin leer la carga útil, por lo que es rápido, agnóstico de protocolo y económico. Un balanceador de capa 7 (L7) entiende HTTP, por lo que puede enrutar por ruta o cabecera, cerrar TLS, reintentar solicitudes idempotentes y aplicar límites de velocidad, a costa de más trabajo por solicitud. La mayoría del tráfico de aplicaciones quiere un proxy inverso L7 o una pasarela de API en la frontera, que le ofrece un único punto para gestionar TLS, autenticación, enrutamiento y observabilidad. Reserve el L4 para el caudal bruto o los protocolos no HTTP.

Las verificaciones de estado son lo que hace seguro el balanceo. Configúrelas para que reflejen la verdadera preparación, no solo que «el proceso está en marcha», de modo que un destino que no alcanza su base de datos se retire de rotación antes de servir errores, y drene las conexiones en los despliegues para que las solicitudes en curso finalicen. Una pasarela de API centraliza las preocupaciones transversales (autenticación, limitación de velocidad, modelado de solicitudes, versionado), pero se convierte en una dependencia crítica y un cuello de botella potencial, por lo que debe recibir el mismo presupuesto de disponibilidad y observabilidad que cualquier servicio central.

Acercue los datos a los usuarios con una CDN y el borde

La latencia la domina el tiempo de ida y vuelta, y el tiempo de ida y vuelta lo domina la distancia. Una red de entrega de contenido (CDN) almacena en caché contenido en puntos de presencia cerca de los usuarios, de modo que los recursos estáticos, y cada vez más las respuestas dinámicas y personalizadas, se sirven desde unos pocos milisegundos de distancia en lugar de al otro lado del océano. Para cualquier producto orientado al usuario con una audiencia geográficamente dispersa, una CDN es una de las inversiones de rendimiento con mayor retorno que puede hacer, y al mismo tiempo funciona como un escudo que absorbe los picos de tráfico y los ataques volumétricos.

Desplace el trabajo al borde donde ayude. Cerrar TLS en el borde reduce la latencia del acuerdo porque los viajes costosos ocurren cerca del usuario, y almacenar en caché las respuestas de API en ubicaciones de borde acorta la ruta para las solicitudes habituales. El contrapartida es la invalidación de caché: cuanto más cerca y más en caché estén los datos, más difícil es garantizar su frescura, así que sea explícito sobre lo que puede estar obsoleto y durante cuánto tiempo. Esto se conecta con la discusión sobre caché y rendimiento en el capítulo 3.5.

Haga que el límite de la red sea resiliente por defecto

Cada llamada remota es un punto donde la red puede hacerle daño, así que envuelva cada una en la misma disciplina. Establezca un tiempo de espera explícito en cada llamada, porque una dependencia colgada agotará sus pools de conexiones y de hilos y paralizará todo lo que venga detrás. Reintente solo las operaciones seguras de repetir, utilice espera exponencial con jitter para que un bache no se convierta en una tormenta de reintentos sincronizada, y establezca un máximo de intentos y de tiempo total. Añada un disyuntor para que, tras un umbral de fallos, falle rápido durante un período de enfriamiento en lugar de apilar solicitudes sobre un servicio que ya se ahoga. Estos patrones se tratan en profundidad en el capítulo 3.3; la idea aquí es que pertenecen al límite de la red específicamente, idealmente como valores predeterminados de una plataforma compartida en lugar de algo que cada equipo reinventa.

Presupueste sus tiempos de espera a lo largo de la cadena de llamadas. Si una solicitud orientada al usuario dispone de un presupuesto de dos segundos y cruza cuatro saltos, cada salto debe saber cuánto tiempo le queda y fallar rápido en lugar de reintentar al vacío. Reutilice conexiones mediante pools y keep-alive para no pagar un acuerdo TCP y TLS nuevo por solicitud, y vigile la latencia de cola, no solo la media, porque el último uno por ciento es lo que los usuarios recuerdan y lo que se desencadena bajo carga.

Diseñe y gobierne la topología de red

En la nube, su red es software que configura, así que configúrela a propósito. Coloque las cargas de trabajo en una red virtual privada (VPC) y segmente: niveles públicos, niveles de aplicación y niveles de datos en subredes separadas con reglas que permitan solo el tráfico que debe existir. Controle el tráfico saliente con la misma deliberación que el entrante. El acceso saliente incontrolado es cómo salen los datos durante una brecha y cómo una carga de trabajo comprometida alcanza servidores de comando y control, por lo que canalice el tráfico saliente a través de puertas de enlace controladas y autorice por lista blanca los destinos que realmente necesitan ser alcanzados. Planifique el IPv6 en lugar de tratarlo como una ocurrencia tardía, porque el agotamiento de direcciones y los requisitos de socios lo impondrán eventualmente y adaptarlo a posteriori es penoso.

Adopte un modelo de confianza cero: deje de tratar «dentro de la red» como algo fiable, y autentique y autorice cada solicitud en función de la identidad, no de la ubicación de red. En la práctica, esto significa TLS mutuo entre servicios, credenciales de vida corta y políticas que no asumen que una solicitud es segura solo porque provino de una subred vecina. Una malla de servicios puede aportar gran parte de esto de forma uniforme. Al ejecutar un proxy sidecar junto a cada servicio, una malla le ofrece TLS mutuo, reintentos y tiempos de espera consistentes, y telemetría por salto, sin modificar el código de la aplicación. Añade complejidad operativa y algo de latencia, por lo que adóptela cuando el número de servicios justifique la sobrecarga frente a la uniformidad sin código. La confianza cero y la segmentación se desarrollan más adelante en los capítulos 4.3 y 8.3.

Compromisos: ventajas y desventajas

DecisiónVentajasDesventajas / coste
Balanceador L7 / pasarela de APIEnrutamiento inteligente, cierre de TLS, autenticación, limitación de velocidad, observabilidadMás latencia por solicitud, una dependencia compartida crítica
Balanceador L4Rápido, agnóstico de protocolo, económicoNo puede ver ni actuar sobre HTTP, sin enrutamiento basado en contenido
Cierre de TLS en el bordeAcuerdos más rápidos, destinos simplificadosEl tramo interno va sin cifrar salvo que se vuelva a cifrar
CDN y caché en el bordeGran reducción de latencia, absorbe picos y ataquesInvalidación de caché y obsolescencia, coste y configuración extra
Malla de serviciosTLS mutuo uniforme, reintentos y telemetría sin cambios en la appComplejidad operativa, latencia del sidecar y coste de recursos
HTTP/3 sobre QUICSin bloqueo en cabeza de cola, configuración rápida, migración de conexiónHerramientas más nuevas, el UDP a veces se estrangula, más difícil de depurar

La tensión central es entre el control y la simplicidad. Cada componente capaz que se añade en el límite de la red (una pasarela L7, una malla, una CDN, un proxy de salida) compra inteligencia de enrutamiento, ejecución de seguridad y visibilidad, y cada uno también añade un salto, un modo de fallo y algo que operar. Resuélvalo desplazando las preocupaciones compartidas a infraestructura compartida solo cuando suficientes equipos las necesiten para justificar el peso operativo, y mantenga la ruta rápida. Una startup de dos personas que cierra TLS en un balanceador administrado y da por hecho es una mejor decisión que el mismo equipo construyendo una malla de servicios a mano. Una empresa de mil servicios sin TLS mutuo uniforme ni control de salidas está tomando una decisión peor.

Preguntas para debatir con su equipo

  1. ¿Dónde se cierra el TLS en cada una de sus rutas de solicitud, y puede todo el mundo dibujarla igual? Suena a tontería hasta que llega un incidente. Si la mitad del equipo cree que el tráfico va cifrado de extremo a extremo y la otra mitad sabe que se descifra en la frontera y se envía en texto plano al destino, tiene tanto una brecha de seguridad como una trampa de depuración. Para una gran organización, esta pregunta se corresponde directamente con el cumplimiento normativo: los reguladores y los auditores preguntarán por dónde viajan en claro los datos de ciudadanos o clientes, y «no estamos seguros» es una observación. Presente un diagrama real de una ruta de extremo a extremo, desde el cliente hasta la base de datos, marcando cada punto donde el cifrado comienza y termina y quién custodia cada certificado y clave. La respuesta debería indicar si necesita recifrado interno, dónde corresponde el TLS mutuo y qué certificados dejarían un servicio fuera de servicio si caducaran. Si nadie puede dibujarlo con seguridad, esa brecha es su primera tarea.

  2. ¿Qué ocurre en su sistema cuando DNS es lento o incorrecto, y lo ha probado realmente? DNS está por delante de casi cada solicitud, y sin embargo la mayoría de los equipos nunca han observado su sistema bajo degradación de DNS. Un resolvent lento añade latencia a cada conexión nueva, una caché obsoleta puede enviar tráfico a un host retirado y un cambio erróneo de registro puede sepultar un servicio completo en segundos. En una gran empresa, el radio de impacto es mayor porque el descubrimiento de servicios interno, las integraciones con socios y los extremos de nube dependen todos de la resolución de nombres. Presente sus configuraciones de TTL de DNS, sus métricas de latencia de resolución (si las tiene) y el protocolo de actuación ante un cambio erróneo de registro, y pregúntese con qué rapidez podría desplazar realmente el tráfico durante un incidente. La respuesta debería impulsar a monitorizar la resolución como una métrica de primera clase, ajustar los TTL para lograr agilidad y eficiencia de caché, y ensayar la conmutación por fallos de DNS. Si nunca ha provocado un fallo de DNS en una prueba controlada, ese experimento debe entrar en la agenda.

  3. ¿Qué patrones de resiliencia en el límite de la red son valores predeterminados de la plataforma, y cuáles reinventa cada equipo? Los tiempos de espera, los reintentos acotados con jitter, los disyuntores, el pooling de conexiones y la trazabilidad por salto son más baratos y fiables cuando se construyen una vez y los hereda todo el mundo. Dejados a cada equipo, divergen: algunas llamadas no tienen tiempo de espera, otras reintentan operaciones no idempotentes, otras no emiten telemetría a nivel de conexión, y las lagunas solo se manifiestan bajo carga. Para un equipo grande, esta es una decisión organizativa sobre dónde reside la resiliencia: en una biblioteca o capa de plataforma compartida o dispersa entre servicios. Presente una auditoría de una muestra de servicios que cuente cuántos establecen un tiempo de espera explícito en cada llamada remota y propagan un identificador de correlación de extremo a extremo. Si ese número es bajo, la solución es una inversión de plataforma, y estandarizarla también hace que la resiliencia sea testeable y auditable, algo cada vez más importante en sectores regulados. La respuesta debería indicar si debe financiar una capacidad de plataforma de red o seguir pagando la incoherencia en incidentes.

  4. ¿A qué destinos de internet público puede alcanzar ahora mismo cada una de sus cargas de trabajo, y quién firmó cada uno de esos destinos salientes? El tráfico entrante recibe atención porque es donde los atacantes golpean, pero el saliente es como salen realmente los datos durante una brecha y como una carga de trabajo comprometida comunica con un servidor de mando. La mayoría de los equipos puede enumerar con mucha más facilidad qué habla con ellos que con qué hablan ellos, y esa asimetría es exactamente la brecha que un atacante explota. La consideración opuesta es la fricción: una lista blanca de destinos aprobados frena a los desarrolladores que quieren llamar a una nueva API de terceros hoy mismo, así que el debate honesto es cuánta comodidad cambia por un radio de impacto reducido. Presente las reglas de salida actuales de un servicio representativo, un registro de a dónde se conectó efectivamente durante la última semana y el proceso (si existe) para aprobar un nuevo destino. Para sistemas empresariales y gubernamentales, esto no es una buena práctica opcional, sino un epígrafe de auditoría: la protección del perímetro y los inventarios de salida son exactamente lo que los reguladores y las normas de límite de red exigen que produzca, y «cualquier carga de trabajo puede llegar a cualquier sitio» es una observación que le exigirán subsanar.

  5. ¿Se componen sus tiempos de espera y reintentos en un presupuesto coherente a lo largo de cada cadena de llamadas, o cada salto adivina en aislamiento? Una solicitud orientada al usuario que cruza cuatro servicios tiene un único plazo que el usuario percibe, y sin embargo cada salto suele fijar su propio tiempo de espera localmente, reintenta un servicio que ya se ha rendido y explota el presupuesto de extremo a extremo haciendo trabajo extra. Para un equipo grande, el peligro es emergente: tiempos de espera razonables por servicio se compunden en paralizaciones en cascada y tormentas de reintentos sincronizados que ningún equipo individual puede ver desde su propio panel. La tensión es entre la autonomía local, donde cada equipo ajusta sus propios límites, y un plazo propagado que cada salto lee y acorta a medida que se consume el tiempo. Presente una ruta de solicitud real con la política de tiempo de espera y reintento en cada salto, el presupuesto de extremo a extremo que el producto promete y sus cifras de latencia de cola (p99, no la media) bajo carga. En contextos regulados y de alta disponibilidad, vincúlelo a sus objetivos de recuperación: una cadena que no puede fallar rápido dentro de su presupuesto convierte una dependencia lenta en un objetivo de nivel de servicio incumplido, y ese incumplimiento es la cifra que la dirección y los auditores le pedirán explicar.

  6. ¿A partir de cuántos servicios y con qué perfil de tráfico la ejecución uniforme (una malla de servicios, una pasarela L7, caché en el borde) justifica su peso operativo, y en qué punto de esa curva se encuentra hoy? Cada componente capaz que se añade en el límite de la red compra inteligencia de enrutamiento, seguridad y visibilidad, y cada uno también añade un salto, un modo de fallo y algo que operar las veinticuatro horas. Adopción de una malla demasiado temprano y ahoga a un puñado de servicios en complejidad de sidecar; adóptela demasiado tarde y tiene mil servicios sin TLS mutuo uniforme ni reintentos consistentes. Las consideraciones que compiten son el valor de una ejecución uniforme y sin código en muchos equipos frente al coste real de operar el plano de control, la latencia añadida y las personas escasas capaces de depurarla. Presente su número de servicios actual y su curva de crecimiento, la fracción de servicios que ya usan clientes compartidos que ofrecen las mismas garantías y el margen de latencia de que dispone. Para una gran empresa o agencia, la decisión es también de gobernanza: una malla o una pasarela central permite a un equipo de plataforma desplegar una política en todas partes de una vez, lo cual es poderoso para el cumplimiento y peligroso si ese único cuello de botella está infrafinanciado, por lo que hay que presupuestarlo como infraestructura central con su propio objetivo de disponibilidad, no como un proyecto colateral.

Perspectiva por sector

Startup. Apóyese en infraestructura administrada y dedique su escaso ingenio al producto, no a los paquetes. Un balanceador L7 administrado que cierra TLS con certificados de renovación automática, sumado a una CDN delante de su aplicación, le da tráfico cifrado, balanceado y globalmente rápido sin equipo de operaciones. Envuelva cada llamada externa en un pequeño cliente compartido con tiempo de espera y reintento acotado, y resista añadir una malla de servicios hasta que tenga muchos más servicios que personas para operarla.

Pequeña empresa. No tiene especialista en redes y su presupuesto es ajustado, así que trate la conectividad como algo que se compra configurado en lugar de construir. Elija un proveedor de nube o una plataforma cuyos valores predeterminados ya le den certificados automáticos, gestión de DNS y un firewall sensato, y active lo que ofrecen en lugar de ensamblarlo usted. Cuando deba decidir, prefiera la opción administrada: pagar a un proveedor para que renueve certificados y vigile DNS resulta mucho más barato que la caída que provoca una caducidad olvidada.

Empresa. Su problema es la coherencia entre muchos equipos y regiones: TLS mutuo uniforme, tiempos de espera y reintentos estandarizados, control del tráfico saliente y monitorización de certificados y DNS de la que ningún equipo puede eximirse. Desplácelo a infraestructura de plataforma compartida (una malla de servicios, una pasarela interna, una biblioteca de clientes compartida) para que la resiliencia se herede en lugar de reinventarse, y gestione el límite de la red con el mismo presupuesto de disponibilidad y observabilidad que cualquier servicio central. Segmente las VPC, gobierne el tráfico saliente de forma central y trate la topología como software que audita.

Gobierno. Las reglas de contratación, la transparencia y la rendición de cuentas pública condicionan cada límite. Canalice todo el tráfico hacia internet a través de un pequeño conjunto de puertas de enlace endurecidas y monitorizadas, conforme al modelo de conexiones de internet de confianza. El tráfico entre organismos viaja por conexiones privadas, y cada extremo externo está inventariado, de modo que los equipos de seguridad saben exactamente qué puede entrar y salir. La agencia opera con una arquitectura de confianza cero en la que los servicios se autentican entre sí por identidad con credenciales de vida corta, y ninguna solicitud se confía por provenir del interior del perímetro. La gestión de DNS y certificados se trata como infraestructura crítica con monitorización dedicada, porque un solo certificado caducado en un servicio orientado al ciudadano conlleva tanto escrutinio público como legislativo, y mantenga la evidencia auditable para que las revisiones de protección del perímetro encuentren un diseño documentado y defendible.

Ejemplos

Startup. Una empresa de software como servicio de diez personas ejecuta todo detrás de un único balanceador L7 administrado que cierra TLS con certificados de renovación automática, y coloca una CDN delante de su aplicación web y API. Esa combinación les otorga tiempos de carga globales rápidos, absorbe el ocasional pico de tráfico de un lanzamiento de producto y protege su origen sin un equipo de operaciones dedicado. Establecen un tiempo de espera explícito y un reintento acotado en cada llamada a su proveedor de pagos y a su servicio de correo, envueltos en un pequeño cliente compartido, de modo que un tercero lento nunca paralice una solicitud de usuario. Se resisten a añadir una malla de servicios: con una docena de servicios, el coste operativo eclipsaría el beneficio, y la infraestructura administrada ya les ofrece tráfico cifrado y balanceado.

Empresa. Un minorista multinacional opera en tres regiones de nube y un centro de datos heredado en local, conectados por enlaces privados en lugar de por internet, de modo que el tráfico de inventario y pagos nunca atraviesa redes abiertas. Cada región se sitúa en una VPC segmentada con subredes separadas para niveles públicos, de aplicación y de datos, y todo el tráfico saliente fluye a través de puertas de enlace de salida que autorizan por lista blanca los destinos aprobados, de modo que una carga de trabajo comprometida no pueda exfiltrar datos en silencio. Cientos de servicios se comunican a través de una malla de servicios que impone TLS mutuo en todas partes y aplica reintentos, tiempos de espera y trazabilidad uniformes, permitiendo a un equipo de plataforma central desplegar una nueva política de reintento sin tocar el código de la aplicación. La monitorización centralizada de certificados detecta caducidades días antes y la automatización los rota antes de que ningún cliente lo note.

Gobierno. Una agencia nacional opera bajo reglas de protección del perímetro de red que canalizan todo el tráfico hacia internet a través de un pequeño conjunto de puertas de enlace endurecidas y monitorizadas, conforme al modelo de conexiones de internet de confianza. El tráfico interorganismos viaja por conexiones privadas, y cada extremo externo está inventariado, de modo que los equipos de seguridad conocen exactamente qué puede entrar y salir. La agencia ejecuta una arquitectura de confianza cero en la que los servicios se autentican entre sí por identidad con credenciales de vida corta, y ninguna solicitud se confía por haberse originado dentro del perímetro. La gestión de DNS y certificados se trata como infraestructura crítica con monitorización dedicada, porque un solo certificado caducado o un cambio erróneo de zona podría dejar fuera de servicio el portal de prestaciones orientado al ciudadano y generar tanto escrutinio público como legislativo.

Justificación empresarial: motivaciones, retorno de la inversión y coste total de propiedad

La disciplina de red se compra barata y su ausencia se paga en el peor momento posible. La inversión es mayoritariamente de una sola vez y de carácter de plataforma: clientes compartidos con tiempos de espera y reintentos, gestión automatizada de certificados, monitorización de DNS, una VPC sensatamente segmentada y caché en el borde. Cada uno beneficia a todos los equipos que lo heredan, por lo que el coste marginal por equipo es bajo y el beneficio se compone. Una CDN en particular suele pagarse dos veces: reduce el coste de ancho de banda del origen al mismo tiempo que mejora las cifras de conversión y engagement que siguen de los tiempos de carga más rápidos.

El coste de omitir este trabajo se mide en caídas y brechas. Un certificado caducado o un cambio erróneo de DNS puede dejar todo un producto fuera de servicio en minutos, con la solución retrasada mientras los ingenieros persiguen la capa equivocada. Un tiempo de espera ausente puede cascada una dependencia lenta en una paralización total de la plataforma. El tráfico saliente incontrolado convierte una única carga de trabajo comprometida en un incidente de exfiltración de datos. Plantee el caso ante la dirección en términos que ya siguen: disponibilidad, tiempo medio de recuperación, tiempo de carga y riesgo de brecha. La gestión automatizada de certificados y DNS previene una categoría de caídas autogeneradas, la inversión en borde y CDN mejora una métrica de producto, y la segmentación y el control del tráfico saliente reducen el radio de impacto de una brecha. El argumento del coste total de propiedad es el que se repite a lo largo de esta guía: construir la capacidad por adelantado es una fracción del coste de adaptarla a posteriori cuando el incidente que la exige ya ha ocurrido.

Antipatrón y trampas

  • Suponer que la red es fiable y rápida. Programar como si las llamadas remotas fueran locales, sin tiempos de espera, sin reintentos y sin gestionar el caso de «tiempo de espera agotado, pero tal vez se completó».
  • Gestión manual de certificados. Controlar la caducidad en una hoja de cálculo o en la memoria de alguien, garantizando una caída eventual cuando el certificado expire sin que nadie lo note.
  • Ignorar a DNS como sistema operativo. Sin monitorización de resolución, TTL descuidados y cambios de registro hechos sin el rigor de un despliegue.
  • Reintentar sin idempotencia ni espera. Efectos secundarios duplicados y tormentas de reintentos sincronizadas que amplifican un bache en una caída.
  • Confiar en la red interna. Tratar todo lo que hay dentro del perímetro como seguro, con tráfico interno sin cifrar y sin autorización basada en identidad.
  • Tráfico saliente incontrolado. Permitir que las cargas de trabajo alcancen cualquier destino saliente, entregando a los atacantes una vía de exfiltración y un canal hacia servidores de comando.
  • Rutas de solicitud verbosas. Cadenas de llamadas síncronas profundas en las que cada salto añade un viaje de ida y vuelta, de modo que la latencia de cola se dispara bajo carga.
  • Adoptar una malla de servicios demasiado pronto. Asumir la complejidad y la latencia del sidecar para un puñado de servicios que un cliente compartido atendería mejor.

Modelo de madurez

  • Nivel 1, Iniciar: Las llamadas remotas se tratan como llamadas locales. Los tiempos de espera y los reintentos son inexistentes o ingenuos, y el caso de «tiempo de espera agotado, pero tal vez se completó» no se gestiona. Los certificados y DNS se gestionan a mano y provocan caídas inesperadas. No hay segmentación, y el tráfico interno se confía por defecto. El trabajo de conectividad es reactivo, y solo se produce cuando un incidente lo impone.
  • Nivel 2, Desarrollar: Algunos equipos han adoptado prácticas básicas, pero son inconsistentes entre servicios. Hay tiempos de espera y reintentos simples en algunas partes, el TLS se cierra en un balanceador y los certificados están en su mayoría automatizados. Una CDN cubre el contenido estático y existe una segmentación de red básica, aunque el tráfico saliente está en gran parte abierto y cada equipo inventa su propio cliente. Lo que un equipo hace bien, otro aún no ha empezado.
  • Nivel 3, Estandarizar: La red resiliente está documentada y se ejecuta en toda la organización. Los tiempos de espera, la espera exponencial con jitter y los disyuntores son estándar a través de bibliotecas compartidas o una pasarela que cada equipo hereda. DNS y los certificados se monitorizan y automatizan como sistemas de producción, las VPC están segmentadas con control del tráfico entrante y saliente, la telemetría a nivel de conexión se recopila en todas partes, y los principios de confianza cero se adoptan como política y no como el experimento de un solo equipo.
  • Nivel 4, Gestionar: El límite de la red se mide y controla frente a líneas base, no solo se estandariza. La latencia de resolución, el tiempo de acuerdo TLS, las tasas de reenvío y de error de conexión, la latencia de cola (p99, no la media), el margen de caducidad de certificados y las violaciones de política de salida se rastrean en paneles con umbrales de alerta y presupuestos de error. Las decisiones de avance y de capacidad se toman con base en esos datos, las pruebas de fallo inducido de DNS y de dependencias se ejecutan con periodicidad y sus resultados se miden, y una regresión en cualquier señal se detecta y asume antes de que aparezca en la siguiente caída.
  • Nivel 5, Orquestar: La red resiliente es el valor predeterminado de la plataforma, en mejora continua, integrado en toda la organización y adaptable al cambio. El TLS mutuo y la autorización basada en identidad son uniformes, a menudo a través de una malla de servicios; la estrategia de borde y CDN se ajusta contra datos de latencia en vivo; el tráfico saliente está plenamente gobernado, y las decisiones de topología, proveedor y enrutamiento se reequilibran a medida que cambian el coste, el riesgo y el tráfico. Las decisiones de red se tejen en la planificación de capacidad, seguridad y negocio, y la organización razona explícitamente sobre los viajes de ida y vuelta, la latencia de cola y los modos de fallo del límite como cosa de cada día.

Ideas para la discusión

  1. Si su proveedor o resolvent de DNS principal se degradara durante una hora, ¿qué parte de su sistema seguiría funcionando y cómo lo sabría?
  2. ¿Cuáles de sus servicios aún envían tráfico sin cifrar una vez que está «dentro» de la red, y qué se necesitaría para cerrar esa brecha?
  3. ¿Dónde están las cadenas de llamadas síncronas más profundas de su arquitectura, y cuántos viajes de red incurre efectivamente una solicitud típica de usuario?
  4. ¿Se componen sus tiempos de espera a lo largo de la cadena de llamadas en un presupuesto coherente, o cada capa fija el suyo y espera?
  5. ¿A qué destinos de internet público pueden alcanzar ahora mismo sus cargas de trabajo, y quién aprobó cada uno de esos destinos salientes?
  6. ¿A partir de cuántos servicios la ejecución uniforme de una malla de servicios superaría su coste operativo para su organización, y a cuánto se encuentra?

Ideas clave

  • La red es una dependencia con sus propios modos de fallo; diseñe cada llamada remota para la lentitud, la pérdida y la finalización ambigua, no solo para el éxito o el fallo limpio.
  • La latencia la gobiernan los viajes de ida y vuelta y la distancia, por lo que reduzca los saltos, reutilice conexiones y acerque los datos a los usuarios con una CDN y el borde.
  • DNS y los certificados TLS fallan en silencio y derriban servicios completos; automatice y monitorice ambos como sistemas de producción.
  • Reparta la carga en la capa que corresponda al tráfico, y coloque las preocupaciones compartidas detrás de una pasarela L7 solo cuando el coste de disponibilidad y observabilidad se justifique.
  • Haga que el límite de la red sea resiliente por defecto con tiempos de espera, reintentos acotados con jitter y disyuntores, idealmente como valores predeterminados heredados de la plataforma.
  • Segmente su VPC, gobierne el tráfico saliente, planifique el IPv6 y adopte la confianza cero, de modo que estar «dentro de la red» no confiera confianza automática.

Referencias y lecturas adicionales

  • W. Richard Stevens, TCP/IP Illustrated, Volume 1: The Protocols
  • Ilya Grigorik, High Performance Browser Networking
  • Cricket Liu y Paul Albitz, DNS and BIND
  • Andrew S. Tanenbaum y David J. Wetherall, Computer Networks
  • Michael Nygard, Release It!: Design and Deploy Production-Ready Software
  • Evan Gilman y Doug Barth, Zero Trust Networks: Building Secure Systems in Untrusted Networks
  • Lee Calcote y Zack Butcher, Istio: Up and Running (conceptos de malla de servicios)
  • Internet Engineering Task Force, RFC 9110 (Semántica de HTTP) y RFC 9000 (QUIC)
  • Peter Deutsch y James Gosling, «The Eight Fallacies of Distributed Computing»
  • National Institute of Standards and Technology, Special Publication 800-207: Zero Trust Architecture