BLOG

¿Por qué las redes son importantes para la arquitectura de aplicaciones?

Miniatura de Lori MacVittie
Lori MacVittie
Publicado el 8 de mayo de 2017
Grupo 2965

He estado escribiendo mucho sobre el tema de la relación a veces tumultuosa entre las arquitecturas de aplicaciones y la red. En su mayor parte, estos se han centrado en cómo los cambios en la arquitectura de la aplicación afectan la red y los servicios de la aplicación utilizados para proporcionar velocidad, escala y seguridad . Hoy, sin embargo, vamos a dar un giro a esa relación y analizar cómo la red tiene un impacto bastante significativo en las aplicações y, a su vez, en la innovación.

Me acordé de eso en una publicación reciente sobre Alta Escalabilidad, en la que su autor ilustra por qué la red es importante y cómo ocurrió la evolución, hasta hoy con la tecnología sin servidor, y por qué es posible realmente considerar un mundo en el que Internet sea efectivamente la computadora. Es largo, pero una buena lectura, y te animo a que te tomes algún tiempo para leerlo. Resumiré aquí, pero hay muchos puntos que no menciono y que encontrará interesantes en el artículo original.

En los días del acceso telefónico a Internet, los sitios web eran en su mayoría texto con quizás una o dos imágenes (de baja calidad). Si querías algo interactivo, abrías Gopher o Telnet y utilizabas una terminal basada en texto. Simplemente no había forma de que la última milla por acceso telefónico permitiera algo más complejo.

A medida que aumentó la velocidad del acceso telefónico, que finalmente fue reemplazado por las primeras ofertas de "banda ancha", las aplicaciones comenzaron a mostrar más imágenes y a dividirse en varias páginas. Porque la red era lo suficientemente rápida para transmitir esa información sin que el consumidor se aburriera y saliera corriendo a jugar Diablo. Este patrón continuó hasta que la escala se convirtió en un problema. Ya no era la velocidad lo que frenaba el crecimiento de los sitios, sino la escala. El equilibrio de carga de repente se convirtió en una mina de oro.

Las velocidades de la red siguieron aumentando, y no solo en la última milla, sino también dentro del centro de datos y a lo largo de la columna vertebral de Internet. La Web 2.0 introdujo al mundo el concepto de aplicaciones web, brindándonos sitios web interactivos y responsivos que aprovechaban la capacidad de la red para garantizar la escala y la velocidad de los datos que se intercambiaban.

Las arquitecturas de aplicação cambiaron debido a los avances de la red. Sin velocidad y escala, el mundo de la Web 2.0 nunca habría nacido, porque simplemente no habría satisfecho la necesidad de velocidad que es innata en todo consumidor. Pero estas aplicaciones todavía seguían un modelo tradicional de tres niveles, compuesto por una capa de presentación, una capa lógica y una capa de datos. Simplemente se distribuyeron a través de Internet.

Poco después, las SOA (Arquitecturas Orientadas a Servicios para los jóvenes; por cierto, ¡salgan de mi jardín!) se pusieron de moda. Utilizando una combinación de estándares (SOAP, XML) y basándose en conceptos orientados a servicios existentes, los “servicios web” tomaron el control. Los servicios web y SOA introdujeron el concepto de descomponer las aplicações en servicios individuales. Si esto le suena familiar, debería ser así, porque hoy llamamos a ese concepto “microservicios”.

El problema para los servicios web era que XML es un formato voluminoso y analizarlo en el cliente (o servidor) llevaba tiempo. Debido a que XML estaba en el corazón de SOA, esto significaba que cada servicio consumía una cantidad X de tiempo para intercambiarse en la red y procesarse. Dado que hay una cantidad limitada de tiempo disponible para procesar una solicitud de un consumidor, esto necesariamente limita el número de servicios en los que una aplicação podría descomponerse razonablemente.  Dos o tres servicios era lo máximo que se podía esperar lograr.

Hoy en día, las redes son más rápidas y gordas de extremo a extremo. Las redes de centros de datos (y de la nube) se miden en gigabits por segundo, no en megabits por segundo, e incluso las conexiones de banda ancha avergonzarían las primeras velocidades de las redes corporativas. Esto significa transferencias más rápidas a través de la red. Combinado con aumentos increíbles en la velocidad de procesamiento y de E/S (porque la Ley de Moore es correcta), las aplicações han podido descomponerse en decenas e incluso cientos de servicios que pueden llamarse y ejecutarse dentro de los parámetros de respuesta esperados. A estos los llamamos microservicios.

Estos cambios en la red han hecho posible arquitecturas de aplicação y API modernas. Se fomentó el intercambio de información en tiempo real de una manera que nunca habría sido posible a principios de siglo. De la misma forma que hoy en día se considera que la tecnología es un componente clave de la estrategia empresarial en lugar de asumir su tradicional papel de apoyo, la red es cada vez más un componente clave de las aplicações. A medida que observamos la próxima ola de arquitecturas que aparecen (sin servidor), notaremos que sin una red integrada y de gran capacidad de respuesta y un nivel de servicio de aplicaciones que proporcione una respuesta casi instantánea a eventos de escala y seguridad, dichos modelos informáticos son inalcanzables.

Ahora se trata menos de la velocidad de la red (estamos llegando a los límites de la velocidad de la luz) y más de la velocidad de la red para responder a eventos como aumentar o reducir la escala, detener un ataque en curso o solucionar problemas en la red o la infraestructura de la aplicación. La próxima generación de redes está definida por software, impulsada por software y habilitada por software. También está migrando hacia un modelo de escalabilidad que adopta un enfoque justo a tiempo que requiere velocidades de reacción casi instantáneas de los servicios que brindan acceso, escala y seguridad a los servicios alojados en esos contenedores.

“La red”, como solemos llamarla, está compuesta de servicios que residen en una variedad de software y hardware . La capacidad de “la red” para responder y proporcionar servicios en un modelo justo a tiempo determinará, en parte, el éxito de estos modelos arquitectónicos de aplicação emergentes. 

“La red” nunca ha sido más importante que ahora.