El mayor avance en la computación fue la invención de las computadoras de uso general en 1945. Antes de esto, la computación se realizaba mediante el cableado físico de componentes electrónicos para realizar cálculos. No hace falta decir que esto era manual, lento, costoso y propenso a errores. Lo que este concepto hizo por encima de todo fue introducir la idea de programación como una forma formal de describir los cálculos: abstrajo la vista lógica de un cálculo de lo físico de una manera que proporcionó grandes mejoras a la productividad y el rendimiento computacional.

El inventor principal, John Von Neumann, entendió claramente el asombroso poder de este concepto, pero es probable que ni siquiera él previera los increíbles avances que se desatarían en los 75 años siguientes: un aumento en la potencia computacional total disponible para el mundo de alrededor de quince decimales.

Órdenes de magnitud mayor

Este aumento fue impulsado por la demanda insaciable de computación y provino de una combinación de mejoras en la arquitectura de computadoras de propósito general y avances en la tecnología de silicio. A principios de la década de 2000, ambas fuentes de mejora se habían ralentizado lo suficiente como para que la industria recurriera a las "arquitecturas de escalamiento horizontal".

A lo largo de la evolución de la informática, la industria se ha esforzado por mejorar su agilidad , definida como la velocidad con la que se pueden implementar nuevas aplicaciones en el hardware existente y, al mismo tiempo, aumentar su rendimiento en tiempo de ejecución . Desafortunadamente, parece haber un compromiso inevitable entre agilidad y rendimiento: mejorar la agilidad tiene un costo en el rendimiento y, a la inversa, mejorar el rendimiento implica comprometer la agilidad.

En esencia, la arquitectura de un sistema informático consiste en hacer dos elecciones distintas: una elección de la funcionalidad implementada por bloques de construcción elementales y una elección de cómo interconectarlos. La funcionalidad de los bloques de construcción elementales (CPU de uso general, GPU especializadas, DRAM, SSD, HDD) y, en particular, la forma en que se ensamblan en un servidor no ha cambiado significativamente en décadas, aunque su rendimiento individual ha logrado grandes mejoras.

La situación de la interconexión de servidores a escala de centro de datos es similar: la arquitectura de las redes se ha estancado incluso cuando el rendimiento de los componentes básicos de la red ha mejorado drásticamente. En consecuencia, los centros de datos en general enfrentan desafíos severos: los hyperscalers tienen enormes facturas de energía, necesitan docenas de SKU de servidor para cubrir la gama de cómputos que necesitan para soportar y encuentran problemas de seguridad y confiabilidad que son cada vez más difíciles de resolver. En el otro extremo de la escala, los centros de datos empresariales tienen una utilización abismalmente baja (por debajo del 8%), no pueden implementar nuevas aplicaciones rápidamente y también enfrentan una multitud de desafíos de seguridad y confiabilidad.

Es en este contexto que Fungible formuló algunas preguntas clave: ¿había un nuevo bloque de construcción elemental que (a) mejoraría drásticamente los centros de datos de escalamiento horizontal en dimensiones relevantes? (b) cuyo uso sería lo suficientemente generalizado como para justificar la construcción de silicio; y (c) ¿facilitaría el despliegue de infraestructura como código? Se propuso una Unidad de Procesamiento de Datos (DPU) para resolver los tres problemas principales en los centros de datos:

  • Los cálculos centrados en datos son omnipresentes, pero las CPU de propósito general los realizan de manera deficiente porque están fundamentalmente en desacuerdo con las técnicas utilizadas para proporcionar un alto rendimiento para las aplicaciones de usuario. Las interacciones entre servidores en un centro de datos son muy ineficientes.
  • La utilización de la red es baja (normalmente menos del 30 por ciento); la latencia y la fluctuación son inaceptablemente altas; y las CPU desperdician una fracción significativa de sus recursos en el envío de paquetes. Los centros de datos se enfrentan a una elección difícil: o tienen que pagar por interacciones ineficientes si quieren la agrupación de recursos, o tienen que renunciar por completo a la agrupación de recursos.
  • Las interfaces de configuración, control y telemetría para los servidores son inconsistentes y ad-hoc (esto es cierto para Enterprise, menos para hiperescala). Esto resulta en una gran complejidad para los operadores de centros de datos y es una barrera significativa para la agilidad, confiabilidad y seguridad.

El concepto de DPU proporciona soluciones integrales y limpias para los tres problemas: realiza cálculos centrados en datos de alto rendimiento al menos 20 veces más eficiente que las CPU de uso general, lo que permite que estos cálculos se descarguen de las CPU y las libere para ejecutar aplicaciones de manera más eficiente. Implementa TrueFabric sobre IP / Ethernet estándar para permitir la desagregación y agrupación eficiente de prácticamente todos los recursos del centro de datos. Y proporciona API estandarizadas al software de orquestación para controlar la configuración y la telemetría. La DPU fungible también mejora significativamente la confiabilidad y seguridad de los centros de datos. Finalmente, y quizás lo más significativo, la DPU es completamente programable en un lenguaje de alto nivel para brindar agilidad.

Para complementar la desagregación de recursos habilitada por la DPU, proponemos un Composer de centro de datos para ensamblar centros de datos completos virtualizados "bare-metal" en minutos a partir de una infraestructura subyacente construida con servidores alimentados por DPU conectados a través de una red IP / Ethernet estándar de alto rendimiento.

Presentamos un centro de datos fungible como un centro de datos construido con tres piezas complementarias:

  • Una red IP / Ethernet estándar de alto rendimiento
  • Instancias de servidor con tecnología DPU elegidas de un pequeño conjunto de tipos de servidores.
  • Un Composer de centro de datos lógicamente centralizado implementado en servidores x86 estándar

Composer hace un uso completo de las interfaces de configuración, control y telemetría compatibles con la DPU. Trata todo un centro de datos virtualizado como código. La ejecución de este código da como resultado la creación de una nueva instancia de un centro de datos virtualizado implícito en el código. Tratar un centro de datos virtual de esta manera da como resultado un proceso altamente ágil y confiable para crear un centro de datos listo para usar, una y otra vez; también permite la creación de plantillas de temas que ocurren comúnmente para que la creación de un nuevo centro de datos similar a uno anterior sea sencillo. De hecho, todos los aprendizajes del desarrollo de software ágil a escala son aplicables directamente a la entrega de infraestructura como servicio.

Finalmente, la capacidad de crear y destruir centros de datos virtuales en minutos abre la puerta a maximizar la utilización de los recursos subyacentes multiplexándolos en múltiples inquilinos.


Por Pradeep Sindhu, director ejecutivo de Fungible y fundador y director ejecutivo de Juniper Networks.