La mayoría de nosotros hemos soñado con poder volar; y resulta que la evolución también lo ha hecho. Se ha demostrado repetidamente que la capacidad de volar (ya sea para evadir depredadores, buscar alimento de manera más eficiente o migrar largas distancias) es de gran utilidad para una amplia variedad de animales. Tanto y con tanta frecuencia, de hecho, que la evolución sigue encontrando algún camino para lograr el objetivo del vuelo. Hoy en día, vemos tres grupos distintos de animales que han desarrollado independientemente la capacidad de volar: insectos, aves y mamíferos (murciélagos). Cada uno de estos tres grupos ha seguido diferentes caminos evolutivos que condujeron al vuelo, y la forma actual de vuelo refleja sus formas ancestrales anteriores al vuelo. Pensemos en los insectos: los insectos ancestrales tenían exoesqueletos externos, que tienen la propiedad de ser de baja densidad y laminados, lo que resulta en diferentes resistencias a la tracción a lo largo de diferentes dimensiones. Como consecuencia de ello, la evolución de los insectos hacia el vuelo impulsó el uso de alas deformables, un enfoque que aprovechó el componente básico de baja densidad y resistencia a la tracción variable disponible. Las aves, por otro lado, tuvieron el desarrollo de las plumas como la "tecnología" crucial en su viaje hacia el vuelo; en este caso, las plumas fueron una feliz coincidencia, impulsada por las necesidades de un conjunto de dinosaurios de sangre caliente que requerían un material similar al pelaje para retener el calor. Sólo más tarde se descubrió que las plumas eran una "tecnología" fortuita que permitía el vuelo. Por último, los murciélagos, el grupo más reciente en desarrollar el vuelo, utilizan un enfoque basado en la evolución incremental a partir de los mamíferos planeadores, pero aún no tienen el beneficio de eones de adaptación evolutiva.
Un complemento interesante y digno de mención a esta historia es la observación de que, cuando los humanos finalmente lograron el vuelo práctico, utilizando máquinas, aplicaron un conjunto de enfoques completamente diferentes: ya sean más livianos que el transporte aéreo o perfiles aerodinámicos de movimiento rápido propulsados por motores a gasolina.
Desde una perspectiva de pensamiento evolutivo, los caminos que ha tomado la entrega de aplicação en los últimos 20 años también son una historia de evolución convergente. Más específicamente, estos años han visto el desarrollo de múltiples tecnologías de distribución que, cuando se las mira en retrospectiva, todas han sido esos pasos evolutivos iniciales y nacientes hacia lo que se está convirtiendo en el borde de la aplicação .
Los precursores de muchas de estas tecnologías ancestrales fueron las redes de distribución de contenido (CDN). Esta tecnología fue motivada (su "nicho evolutivo", por así decirlo) por la necesidad de entregar una gran cantidad de datos bastante estáticos, típicamente imágenes grandes y transmisión de audio y video, a una comunidad considerable de clientes consumidores. La solución fue colocar copias en caché de los archivos de datos grandes en múltiples ubicaciones geográficamente dispersas, más cerca de los dispositivos cliente. Este enfoque permitió que la carga de trabajo de entrega se distribuyera desde un único centro de datos central, tanto en términos de cómputo como de ancho de banda, al tiempo que proporcionaba una latencia más baja y más predecible.
Hoy en día, a medida que las aplicações han avanzado y se han integrado estrechamente a nuestras rutinas cotidianas, la necesidad de mejorar la experiencia de las aplicação del cliente continúa impulsando la necesidad de reducir la latencia y proporcionar ancho de banda adicional. Sin embargo, las reglas básicas han cambiado y evolucionado. Así como el clima y la geografía impulsan continuamente la adaptación en la naturaleza, los cambios en los requisitos de entrega de aplicação impulsan cambios en las soluciones requeridas. Las necesidades de entrega de aplicação más modernas se extienden mucho más allá del escenario CDN básico. Los casos de uso más sofisticados de la actualidad requieren hacer más que entregar únicamente contenido estático simple; también tienen requisitos en las áreas de computación e interactividad. Ejemplos de aplicações con necesidades más avanzadas son la videoconferencia y el comercio electrónico. En términos más generales, la tendencia general hacia un paradigma de aplicação de página única (SPA), en el que una aplicação se compone de la agregación de varios servicios web dispares, requiere un conjunto más sólido de recursos distribuidos que el mero almacenamiento estático para mantener una experiencia de usuario enriquecida. A medida que el entorno ha "evolucionado" hacia estos nuevos casos de uso, vemos la convergencia correspondiente de múltiples soluciones del mercado actual que se adaptan para encajar mejor en este nuevo y lucrativo "nicho evolutivo", el análogo tecnológico del concepto de "evolución convergente".
La primera de estas soluciones preexistentes son las CDN antes mencionadas. Su "fortaleza" evolutiva reside en su importante infraestructura existente de gran cantidad de nodos CDN existentes; su camino "evolutivo" es mejorar los nodos existentes para que dejen de estar centrados exclusivamente en un almacenamiento tipo caché y avancen hacia una combinación más equilibrada de múltiples tecnologías de almacenamiento (archivos, bases de datos, almacenes de objetos) acopladas a recursos informáticos que puedan operar en ese almacenamiento.
La segunda de las soluciones existentes en el mercado son los proveedores de nube pública. Su área de “fortaleza” es el sólido ecosistema de recursos de cómputo, almacenamiento y ancho de banda, así como los correspondientes modelos de consumo flexibles para esos recursos. Por ejemplo, AWS ofrece múltiples formas de tecnología de base de datos, hace que el cómputo esté disponible usando un modelo basado en servidor o sin servidor, tiene un amplio conjunto de tecnologías para manejar identidades y autenticación, y brinda un conjunto diverso de servicios auxiliares como registro/informes, visualización, modelado de datos, etc. Sin embargo, su "brecha evolutiva" es que no tienen tantos puntos de presencia como los proveedores de CDN actuales, por lo que no disfrutan de la misma amplitud de distribución.
En el otro extremo de la escala de puntos de presencia se encuentran los proveedores de servicios móviles (MSP), especialmente a medida que implementan sus infraestructuras 5G. Los grandes MSP planean tener decenas de miles de puntos de acceso móviles, cada uno de los cuales es un punto de entrada a la red principal. Además de la “fuerza” de la distribución y la escala, cuentan con capacidad computacional y de almacenamiento limitada en estos puntos de acceso; sin embargo, hasta hace poco, el alcance del cómputo y del almacenamiento ha sido limitado para centrarse en las propias necesidades de infraestructura de los MSP. Por lo tanto, la "brecha" que necesitan abordar es migrar a un paradigma informático que exponga la infraestructura informática a aplicações externas y la aumente con capacidades de almacenamiento adicionales.
El viaje que acabamos de delinear en los mapas es un proceso evolutivo incremental natural. Sin embargo, a veces hay "cambios de juego " evolutivos [1]: algo que altera la evolución y provoca una reevaluación de la progresión lineal. Para los humanos que desarrollaron el vuelo, el desarrollo de sistemas que pueden entregar rápidamente una gran cantidad de energía (por ejemplo, motores a gasolina) acoplados a materiales y tecnologías de ingeniería que podrían fabricar aleaciones ligeras y fuertes nos permitió a los humanos reimaginar cómo se podría abordar el desafío del vuelo, "cambiando el juego" con respecto a cómo la naturaleza desarrolló el vuelo.
Relacionando esta historia con el concepto de borde, la narrativa de entrega de aplicação hasta ahora se ha centrado en descargar el trabajo del lado del "servidor", es decir, la parte de la cadena de entrega que comienza con el servidor que recibe una solicitud. En concreto, debido a la "predisposición evolutiva" de las soluciones preexistentes (en la que el valor provenía de aligerar la carga del servidor de aplicação ), el foco ha estado implícitamente en la descarga y distribución de la computación y la entrega de contenido que responde a la solicitud de un "cliente".
Sin embargo, pensemos ahora en lo que ocurre cuando pensamos en estos puntos de presencia dispersos geográficamente no sólo como nodos de cómputo y cachés para descargar el servidor ("proxies de aplicação "), sino también como puntos de control que prestan la misma atención a las solicitudes entrantes de los clientes y asignan esas solicitudes a la infraestructura y a los nodos de cómputo/caché adecuados a los requisitos de la aplicación. Por ejemplo, una aplicação tolerante a la latencia pero de alto ancho de banda, como una copia de seguridad de archivos en la nube, podría enrutarse de manera diferente que una aplicação de bajo ancho de banda y sensible a la latencia, como los juegos en línea. Las aplicações bancarias que necesitan un centro de intercambio de datos central podrían dirigirse a un centro de datos central. Este concepto, que considero como un "orquestador de aplicação ", surge naturalmente una vez que piensas en el borde no como algo que simplemente descarga el servidor, sino como un elemento cuya función es ser la rampa de acceso al entorno generalizado de servidor/nodo de acceso.
Así como los humanos finalmente lograron el vuelo práctico no mediante el uso de un enfoque mecanizado similar al de un pájaro (el famoso "Ornitóptero" de Da Vinci), sino pensando en cómo aprovechar mejor las tecnologías más apropiadas a mano (perfiles aerodinámicos acoplados a motores a gasolina), deberíamos pensar en cómo se puede reimaginar la infraestructura de aplicaciones con el advenimiento de un borde generalizado, distribuido y rico en servicios. A medida que el poder de esta capacidad emergente se haga más evidente y más utilizable, los propietarios y operadores de aplicação comenzarán el siguiente paso en el viaje de evolución de las aplicação . El evento "que cambiará el juego" resultante —la evolución disruptiva del edge desde ser meramente un proxy para el servidor de aplicação o un caché de aplicação con esteroides a ser un orquestador de aplicação en toda regla— abrirá el ecosistema de aplicação a una explosión de nuevas posibilidades, que serán el tema de futuros artículos.
Al anticipar ese camino por delante, tengo la intención de compartir una visión de cómo la adopción del rol del borde como orquestador de aplicação permitirá una especificación más declarativa e impulsada por la intención del comportamiento previsto de cada aplicación, impulsando optimizaciones tanto de la infraestructura de la aplicación como también de la experiencia del cliente de la aplicação. Por ejemplo, una aplicação, tal vez una que enfatice la tecnología de realidad aumentada, podría especificar una política que priorice la latencia y el ancho de banda, mientras que una aplicação financiera puede priorizar la confiabilidad o la centralización y, sin embargo, alguna otra aplicação de IoT para el consumidor podría enfocarse en la gestión de OpEx. En términos más generales, adoptar una mentalidad que amplíe el rol del borde y lo aproveche como orquestador de aplicação también posiciona al borde como la ubicación lógica para implementar políticas de seguridad y visibilidad, cumpliendo otro sueño de muchos propietarios de aplicação : el objetivo de controles de aplicação independientes de la infraestructura.
[1] El desarrollo del metabolismo basado en el oxígeno es un buen ejemplo, pero tendré que guardar esa historia para otra ocasión.