<strong>Bienvenido a la Supernube: diseñada para escalar y rendir</strong> 

Bienvenido a la Supernube: diseñada para escalar y rendir 

John Graham-Cumming, CTO, Cloudflare, explica cómo la nube no fue diseñada para lo que debe ser. Nos presenta el concepto de ‘Supernube’: una red global que está en todas partes, unida por un software que convierte el mundo en una sola nube que es eficiente, escalable, disponible, privada y rentable. 

John Graham-Cumming, CTO, Cloudflare

En el documento S-1 de Cloudflare hay una sección que comienza: «Internet no se construyó para lo que se ha convertido». 

Esa oración expresa la idea de que Internet, que comenzó como un experimento, se ha convertido en algo en lo que todos debemos confiar para nuestra vida y trabajo diarios. Y que se necesita más que Internet tal como fue diseñado; necesitaba seguridad, rendimiento y privacidad. 

Algo similar puede decirse de la nube: la nube no fue diseñada para lo que debe ser. 

La introducción de servicios como Amazon EC2 fue, sin duda, una gran mejora con respecto a la antigua forma de comprar e instalar bastidores y bastidores de servidores y sistemas de almacenamiento, y luego mantenerlos. 

Pero por su naturaleza, la nube era una virtualización de la infraestructura más antigua del mundo real y no un replanteamiento radical de cómo debería ser la informática para satisfacer las demandas de las empresas a escala de Internet. Es como si las locomotoras de vapor fueran reemplazadas por motores eléctricos eficientes, pero aún requirieran una chimenea en la parte superior y se detuvieran para cargar agua cada 200 millas. 

La nube reemplazó los rituales de comprar servidores e instalar sistemas operativos con rituales nuevos y ahora familiares de elegir regiones, aprovisionar máquinas virtuales y mantener el código artificialmente cálido. 

Pero en el camino se ven destellos de luz a través de la nube en forma de lambdas, o bordes, o funciones, o sin servidor. Todos están tratando de dar un nombre a un modelo de computación en la nube que promete hacer que los desarrolladores sean altamente productivos al escalar de uno a escala de Internet. Es un modelo que en lugar de virtualizar máquinas o discos o envolver cosas en contenedores dice: «escribe el código, lo ejecutaremos, no te preocupes por los detalles como el escalado o la ubicación». 

Lo llamamos la Supernube. Los fundamentos de la supernube son los servicios informáticos y de datos que hacen que la ejecución de aplicaciones de cualquier tamaño sea eficiente e infinitamente escalable sin el equipaje de la nube tal como existe hoy. 

Los fundamentos de la Supernube 

Hace algunos años, un movimiento llamado NoSQL desarrolló nuevas formas de almacenar y procesar datos que no dependían de bases de datos. Los almacenes de valores clave y los almacenes de documentos florecieron porque en lugar de pensar en los datos en la granularidad de las bases de datos o tablas o incluso filas, hicieron una conexión directa entre el código y los datos a un nivel simple. 

Puede pensar en NoSQL como un impulso hacia la granularidad. Y funcionó. Abundan las tiendas NoSQL, KV, tiendas de objetos (como R2). El auge de MapReduce para el procesamiento de datos también tiene que ver con la granularidad; al dividir el procesamiento de datos en partes fácilmente escalables (el mapa y la reducción), fue posible manejar grandes cantidades de datos de manera eficiente y escalar hacia arriba y hacia abajo según sea necesario. 

Lo mismo sucede con el código de la nube. Así como los programadores no siempre querían pensar en fragmentos del tamaño de una base de datos, no deberían tener que pensar en fragmentos del tamaño de una máquina virtual o un contenedor. Es ineficiente y no tiene nada que ver con el trabajo real de escribir código para crear un servicio. Es un trabajo innecesario que distrae del valor real de programar algo para que exista. 

En la teoría de la programación distribuida, la granularidad existe desde hace mucho tiempo. El modelo CSP es de pequeños procesos que realizan tareas y pasan datos (ayudó a inspirar el lenguaje Go); el modelo Actor tiene mensajes que se transmiten entre multitudes de actores que cambian de estado interno; incluso el cálculo lambda se trata de funciones discretas que actúan sobre los datos. 

La programación orientada a objetos hace que los desarrolladores razonen sobre objetos (no sobre máquinas virtuales o discos). Y en CORBA, y sistemas similares, existe el concepto de un agente de solicitud de objetos que permite que los objetos se ejecuten y se acceda a ellos de forma remota en un sistema distribuido sin conocer los detalles de dónde o cómo se ejecuta el objeto. 

La teoría de la computación se aleja de las máquinas dedicadas (virtuales o reales) y se dirige al código y los datos que se ejecutan en la Supernube que maneja los detalles de la ejecución del código y la ubicación de los datos de manera automática y eficiente. 

La ventaja de la supernube 

Supercloud facilita el escalado porque nadie tiene que pensar en cuántas máquinas virtuales aprovisionar, nadie tiene que mantener las máquinas virtuales en modo de espera en caso de que haya una avalancha de visitantes. Así como MapReduce (que tiene su origen en el cálculo lambda) escala hacia arriba y hacia abajo, también debería hacerlo la computación de propósito general. 

Y no se trata solo de escalar. En la Supernube, tanto el código como los datos son móviles y se mueven por la red. Adjunte datos al código (como withDurable Objects; hello Actor model) y tendrá una base para aplicaciones que pueden escalar a cualquier tamaño y acercarse a los usuarios según sea necesario para brindar el mejor rendimiento. 

Alternativamente, si sus datos son inamovibles, movemos su código más cerca de ellos, sin importar cuántas veces necesite acceder a ellos. 

No solo eso, sino que trabajar a este nivel de flexibilidad significa que el código que hace cumplir una ley de privacidad de datos o residencia de datos sobre dónde se pueden procesar o almacenar los datos puede operar a nivel de usuarios u objetos individuales. El mismo código puede comportarse de manera diferente e incluso ejecutarse en un país completamente diferente según el lugar donde se almacenen sus datos asociados. 

Una Supernube tiene dos efectos interesantes sobre el costo de ejecutar un programa. En primer lugar, lo hace más económico porque solo ejecuta lo que necesita. Nunca hay necesidad de máquinas virtuales comprometidas esperando trabajo, o máquinas inactivas que está pagando por si acaso. El código se ejecuta o no. Se escala hacia arriba y hacia abajo según sea necesario. Solo pagas exactamente por lo que necesitas. 

En segundo lugar, crea una plataforma informática más eficiente que es mejor para todos. Obliga a la plataforma informática (por ejemplo, nosotros) a ser lo más eficiente posible. Tenemos que ser capaces de iniciar el código rápidamente por motivos de rendimiento y ampliación. Necesitamos usar las CPU de manera eficiente porque ningún cliente nos paga para mantener las CPU inactivas. Y es mejor para el medio ambiente porque las máquinas en la nube funcionan a niveles muy altos de utilización. Este nivel de eficiencia es lo que permite que nuestra plataforma alcance los 10 millones de solicitudes que Cloudflare Workers procesó en el tiempo que le tomó leer la última palabra de esta oración. 

Y esta plataforma informática se escala mucho más allá de una máquina, un centro de datos o un país. Con el software adecuado (que hemos creado), se adapta al tamaño de Internet. El software asigna recursos automáticamente en todo el mundo, moviendo conexiones, datos y procesamiento para lograr una alta eficiencia y una experiencia óptima para el usuario final. 

Cómputo y almacenamiento eficientes, una red global que está en todas partes, unida por un software que convierte el mundo en una sola nube. La Supernube. 

Haga clic a continuación para compartir este artículo

Explore nuestro
último número

LATAM Spanish

Ver archivo de revistas