¿Alguna vez has pensado cómo funciona Internet detrás de todo el hardware interconectado? Es un proceso complicado que no solo involucra hardware, sino también una variedad de sistemas y software.
Vamos a centrarnos en dos partes, el cliente y el servidor, que se comunican entre sí en Internet. En el nivel superior de este intercambio, un cliente (es decir, un dispositivo) realiza una solicitud de contenido en forma de datos, mientras que el servidor es responsable de proporcionar el contenido solicitado al cliente.
Cada solicitud debe completar un largo camino desde que sale de tu dispositivo, llega a los servidores y regresa con una respuesta. En este artículo, que forma parte de la serie que abarca algunos conceptos básicos de la edge computing, vamos a explicar más sobre esta jornada. También, te contaremos cómo la Plataforma de Edge de Azion hace que sea más rápida y eficiente que con otras soluciones.
Cómo se responde un solicitud en Internet: paso a paso
Para crear una red es necesario conectar dos o más dispositivos computacionales que, a su vez, pueden estar conectados con un dispositivo central como un servidor o con un sistema intermediario como un router. Esta red también puede crear conexiones con otras redes para transmitir información entre ellas. Por lo tanto, podemos considerar Internet como la mayor de las redes, en la que diferentes redes más pequeñas, proveedores de servicio y dispositivos se comunican entre sí para atender todas las necesidades de conectividad que existen actualmente.
Para poder crear una red interconectada de escala global y garantizar que funcione de manera eficiente ha sido necesario definir algunos modelos, conceptos y protocolos para estandarizar los servicios de Internet. Esto brinda un “lenguaje común” a todos los elementos involucrados en este proceso, para posibilitar su entendimiento y su funcionamiento de forma adecuada.
Modelo OSI
Uno de estos esfuerzos es el modelo OSI (Open System Interconnection, Interconexión del sistema abierto), que divide el funcionamiento de Internet en 7 capas:
De acuerdo con este modelo, la interacción entre los usuarios y los computadores se lleva a cabo en la capa 7 (también llamada capa de aplicación). Con esto en mente, comenzaremos a trazar el camino que recorren nuestras solicitudes.
La jornada simplificada
En resumen, esta es —de la forma más simplificada posible— la ruta que sigue una solicitud:
El inicio
El usuario envía una solicitud. Puede ser desde hacer una consulta en el buscador, enviar un e-mail o hacer una transferencia bancaria hasta reproducir el más reciente episodio de su serie favorita.
Siguiente parada: protocolos DNS y HTTP
De la misma forma que necesitas especificar los datos del destinatario para que una carta llegue a su destino, debes enviar una solicitud que contenga todos los datos necesarios para que sea resuelta correctamente y, de esta manera, se obtenga una respuesta adecuada en Internet.
En esta fase, intervienen dos protocolos. Uno de ellos es el protocolo DNS (Domain Name System, sistema de nombres de dominio). Digamos que las máquinas entienden mejor los números, así que cada sitio web, servidor o red está identificado con una dirección IP compuesta por una serie de números. Actualmente, las direcciones IP pueden tener dos formatos, de acuerdo con la versión que el sistema está usando:
- IPv4: la primera versión de las direcciones IP. Estas direcciones son un número de 32 bits, dividido en cuatro grupos de hasta tres números. Por ejemplo: 203.0.113.42.
- IPv6: en la versión más reciente, las direcciones IP son un número de 128 bits, compuesto por secciones de 16 bits, separadas por dos puntos (:) y que usa una notación hexadecimal. Por ejemplo: 2001:0002:14:5:1:bf35:2610.
Sin embargo, esto sería muy difícil de memorizar para los usuarios. Es por ello que se usan los dominios, con nombres y estructuras más sencillas, así como fáciles de recordar, por ejemplo, www.google.com o www.azion.com. Explicado de una forma simple, el protocolo DNS “traduce” la URL que escribiste a esa serie de números para que la máquina pueda entenderlo y así encaminar tu solicitud al destino adecuado.
El protocolo HTTP (Hypertext Transfer Protocol) es el otro protagonista aquí. Su función es facilitar la comunicación, ya que se rige por estándares y reglas predefinidos para poder realizar ese intercambio de información sin inconvenientes.
Lo primordial es saber “a dónde quieres ir” o qué quieres consultar y escribir la dirección del sitio web o URL (https://www.azion.com/, por ejemplo) en la barra del navegador. Para facilitar el proceso de comunicación entre ambas partes, el protocolo HTTP proporciona su lógica de solicitud-respuesta:
- Después de escribir la URL (que el DNS convertirá en una dirección IP para que la máquina la entienda), se envía la solicitud usando un encabezado que contiene informaciones como:
- el método: que indica lo que quieres hacer como obtener, enviar, actualizar o eliminar información;
- la ruta que debe seguir la solicitud, para llegar a una página o completar una tarea específica;
- la versión del protocolo HTTP que se está usando, así como
- el cuerpo y encabezados de la solicitud, que contienen información adicional como, por ejemplo, tu localización o preferencia de lenguaje para mostrarte contenido específico o personalizado.
- Cuando el servidor resuelve tu solicitud, te envía una respuesta mediante códigos de estatus. Por ejemplo, un código 200 cuando el proceso fue exitoso y ahora puedes ver el contenido solicitado; también podría mostrar un código 401 cuando tu solicitud no fue autorizada por el servidor, el archiconocido 404 cuando lo que estás solicitando no existe o un 501 cuando el servidor presenta un error interno.
Pero antes de llegar al servidor, hace falta completar un último paso…
Donde las conexiones suceden: BGP y Anycast
Cada una de esas redes más pequeñas que componen Internet, se puede considerar un sistema autónomo (Autonomous System, en inglés). Para que puedan comunicarse entre ellos (ya sea internamente entre diferentes AS del mismo proveedor o con otros AS de redes externas), se desarrolló el protocolo BGP (Border Gateway Protocol) . Este protocolo ayuda a definir cuál es el mejor camino que debe tomar la solicitud hasta llegar al servidor adecuado, de acuerdo con las políticas y reglas de interconexión que han sido configuradas por los administradores para el intercambio de información entre los AS.
Cuando envías una solicitud, tu dispositivo se conecta a una red y el BGP decide dinámicamente (es decir, mientras dirige la solicitud puede tomar decisiones) las rutas que seguirá esta solicitud, al mejor estilo de tu GPS. Con ayuda de los routers, que se encargan de transportar el paquete de datos con la solicitud, se crean conexiones entre los AS que están habilitados para comunicarse entre sí hasta llegar al servidor que tiene la información solicitada.
Para cumplir con esta tarea, el BGP puede usar diferentes métodos para enrutar la solicitud:
- unicast: existe solo una ruta y un destino;
- multicast: que puede elegir una ruta entre varios destinos, pero que son limitados y específicos, o
- anycast: que también dirige la solicitud a diferentes destinos, pero puede hacerlo usando otros criterios que permiten elegir una ruta más cercana y eficiente hacia el servidor que esté disponible, más saludable y más próximo de donde se generó la solicitud.
El contenido de un sitio web puede estar almacenado en varios servidores y, con el método anycast, el protocolo BGP elige una ruta que lleve al servidor que lo tenga y que esté más cercano al usuario. De esta manera, se resuelve la solicitud rápidamente, ya que los datos deben viajar una distancia más corta.
Así es como finalmente la solicitud llega al servidor, la resuelve y te envía una respuesta mediante los códigos de estatus de HTTP y el mismo proceso, pero en el sentido contrario. ¡Y todo esto sucede en milisegundos!
Más cerca del usuario, más rápido
En las primeras etapas de Internet, las solicitudes tenían que viajar hasta un servidor central donde se encontraba almacenada la información; esto implicaba demoras para recibir las respuestas, un proceso bastante tedioso y una comunicación casi nula entre redes. Con los años, surgieron soluciones para mejorar la interconectividad, así como nuevos y modernos equipos y dispositivos. También se extendió el uso de data centers y, posteriormente, nació la cloud computing, lo que permitió acelerar y virtualizar muchas tareas en Internet.
Sin embargo, la principal desventaja de estos modelos computacionales es que están centralizados, lo que los convierte en un punto único de falla. Es decir, si son afectados por algún problema, ataque o avería, se pierde la conexión y no se puede acceder a ellos. Además, aunque son capaces de almacenar y procesar grandes cantidades de datos, aún están alejados de los usuarios finales, lo que genera una alta latencia, así como un alto consumo de recursos y ancho de banda para responder a las solicitudes.
La introducción de las redes de distribución de contenido (content delivery network, CDN) a finales de los años 90 fue un gran paso para intentar subsanar algunos de esos problemas. Una CDN está formada por una red de puntos de presencia (PoP) distribuidos en diferentes localidades y que se encuentran ubicados estratégicamente más cerca de los usuarios, en comparación con los modelos tradicionales. Con los nodos o servidores más cerca de los usuarios, la solicitud debe completar viajes más cortos, por lo que la respuesta llega más rápido al usuario. Pero ¿te imaginas que esto pudiera ser más rápido y eficiente? Esa es la propuesta de la edge computing.
El principio de la edge computing es distribuir una gran cantidad de recursos computacionales más cerca de los usuarios para poder atender sus solicitudes con menor latencia, ya que los datos deben completar viajes más cortos para ser procesados. Para ello, la infraestructura de la edge computing es altamente descentralizada y está compuesta por edge locations ampliamente distribuidas geográficamente.
Gracias a este diseño, la red puede atender rápidamente a los usuarios y canalizar sus solicitudes automáticamente al nodo más cercano, pero también a uno más eficiente y saludable en caso de un pico en la demanda o si algún servidor no está disponible.
De esta manera, las solicitudes ya no deben ir hasta la nube o infraestructura de origen. Además, se facilita el procesamiento de datos en tiempo real, indispensable para aplicaciones time-sensitive (susceptibles al tiempo) y de misión crítica.
¿Cómo se resuelve una solicitud al estilo de Azion?
Uno de los puntos focales de la Plataforma de Edge de Azion es la optimización del suministro de contenido. Con esto, tus usuarios pueden conectarse a tus aplicaciones y sitios web para disfrutar de todo lo que brindas de forma rápida, segura y sin interrupciones, lo que brinda una excelente experiencia. Para ello, ponemos a disposición de nuestros clientes una serie de productos y herramientas que permiten implementar, controlar, monitorear, escalar y automatizar el funcionamiento de recursos en el edge, en tiempo real.
Infraestructura descentralizada y distribuida
Si quieres pedir tu plato favorito, pero el restaurante que lo prepara queda al otro lado de la ciudad, seguramente se tardará un montón en llegar hasta tu casa, lo que hará que estés hambriento y molesto. Lo mismo pasa en Internet cuando la solicitud de un usuario es respondida por un servidor que está ubicado bastante lejos: el usuario debe esperar para obtener su respuesta, lo que puede ocasionar fricciones e inclusive el abandono del sitio web. Nadie quiere esperar, menos hoy en día, que estamos tan acostumbrados a completar tareas en línea en un abrir y cerrar de ojos.
Ahora imagina que ese restaurante inaugura una red de filiales, distribuidas estratégicamente por toda la ciudad. Tu plato favorito está apenas a un par de cuadras de distancia, así que cuando lo pides a la sede en tu barrio, llega rapidísimo a tu puerta. Una de las principales ventajas de la edge computing es precisamente contar con una infraestructura ampliamente distribuida y descentralizada que permite estar más cerca del usuario. De esta manera, se pueden atender las solicitudes rápidamente, con baja latencia y menor consumo de ancho de banda.
La Edge Network de Azion cuenta con más de 65 edge locations distribuidas alrededor del mundo. No importa dónde estén tus usuarios, con nuestra red puedes suministrar contenido de manera eficiente, porque podrás atender sus solicitudes desde la edge location que esté más cerca, con mejor salud y disponible en todo momento.
En Azion también usamos Intelligent DNS, que aprovecha nuestra infraestructura global y el uso de anycast para establecer las rutas más eficientes a fin de encaminar la solicitud al mejor destino posible. Esto garantiza que, cuando inicia la jornada de una solicitud hecha por un usuario de cualquiera de nuestros clientes y llegan a nuestra red, la edge location más cercana a ese usuario se encargará de atenderlo.
Load Balancer de Azion
La jornada de una solicitud en Internet no es lineal. Una solicitud puede tomar atajos o hacer zig-zags entre múltiples subredes. Ya vimos que el BGP, junto con el anycast, se encarga de crear diferentes rutas para que sea atendida por el servidor más idóneo. No obstante, existen diversos factores que pueden afectar esa ruta, así como la rapidez con la que puede resolverse una solicitud. Podemos señalar dos situaciones clásicas que dan dolores de cabeza a los administradores de cualquier red: los picos de uso y cuando un servidor o cualquier otro componente de la red deja de funcionar.
Por ejemplo, fechas como Black Friday, Cyber Monday o Navidad pueden atraer un número exponencialmente mayor de visitantes a tus aplicaciones o sitios web. Esto puede generar una sobrecarga en el servidor, por lo que se demoraría más en atender a los clientes y, tal vez, podría “caerse” o dejar de funcionar al no ser capaz de manejar esa cantidad de trabajo. Ese escenario puede ser catastrófico para la reputación y para los ingresos de la marca, ya que esta experiencia puede dejar un mal sabor de boca a muchos clientes. Una de las formas de lidiar con esta situación y evitar cualquier problema es contar con un balanceador de carga (load balancer). Esta herramienta se encarga de distribuir las workloads (cargas de trabajo) entre los diferentes nodos de la red para no sobrecargar a ningún servidor.
El Load Balancer de Azion puede balancear el tráfico entre las edge locations más cercanas a los usuarios, al mismo tiempo que atiende las solicitudes en el edge, por lo que evita cualquier congestionamiento. Para ello, brinda múltiples algoritmos de distribución que te permiten elegir el mejor método para tus servidores. Así tus usuarios no tendrán que “hacer fila” y esperar para ser atendidos por un único servidor, sino que se distribuyen de una forma más inteligente por toda la red, sin afectar el desempeño del servicio.
Edge Cache de Azion
El caching (almacenamiento en caché) es otro método que puede ayudarte a acelerar la jornada de la solicitud. El caching consiste en almacenar copias de tu contenido y recursos a los que los usuarios acceden frecuentemente en locales de fácil acceso.
Tener una copia del contenido a la mano evita que la solicitud deba viajar hasta la nube o infraestructura de origen y tener que descargar los datos cada vez que la página o aplicación son visitadas. La Edge Network de Azion también te permite realizar este proceso mucho más cerca del usuario, en el propio edge.
Acelera tus aplicaciones
Vivimos en un mundo hiperconectado que se mueve cada vez más rápido. Ningún usuario está dispuesto a esperar para recibir una respuesta de cualquier marca, por lo que no dudará en irse con la competencia. Ahora que sabes cómo se da respuesta a una solicitud en Internet, sabes que no es una tarea fácil. Sin embargo, contar con aliados como Azion no solo te ayuda a atender a tus usuarios y sus solicitudes, sino que también pone a tu disposición una amplia gama de herramientas y productos que te ayudarán a hacer de esta jornada un proceso más rápido y eficiente. Conoce nuestros productos o conversa con nuestro equipo de expertos y comienza a crear el plan de servicios perfecto para las necesidades de tu empresa.