¿Está su almacenamiento preparado para la informática sin servidor?

La informática sin servidor promete marcar el comienzo de una era de escalado automático, un diseño de software de pago por uso que se alinea perfectamente con los modelos comerciales de SaaS. Si bien aún quedan obstáculos importantes para las plataformas informáticas sin servidor, creemos que los patrones de diseño de aplicaciones sin servidor se volverán comunes en los próximos años.

Después de las principales innovaciones en la computación, los avances en la tecnología de almacenamiento suelen seguir poco después. El cambio a patrones de diseño de software sin servidor no es diferente, y el almacenamiento debe estar listo para lo que sigue.

Las promesas de la computación sin servidor.

El término computación “sin servidor” es claramente un oxímoron; La computación no puede ocurrir sin servidores. Sin embargo, el hardware se puede abstraer tan lejos de los desarrolladores que sienten que su código simplemente se implementa "automágicamente" en la nube, sin tener que volver a pensar en la infraestructura.

Para hacer esto, los desarrolladores deben dividir sus aplicaciones en una serie de funciones independientes y sin estado que luego se ejecutan en función de un disparador definido por el desarrollador. Hoy en día, cada proveedor de la nube ofrece disparadores fáciles de integrar para la mayoría de sus servicios en la nube. Por ejemplo, en AWS, los desarrolladores pueden configurar una función para que se ejecute cuando un el objeto se carga en un depósito S3. La capacidad de las aplicaciones de terceros para activar funciones también está disponible a través de AWS SDK o API. Esto también se aplica a las otras nubes públicas.

Donde serverless (actualmente) se queda corto

Irónicamente, las grandes ventajas de las plataformas informáticas sin servidor, como la capacidad de escalar automáticamente las funciones sin estado de pago por uso, también son la base de por qué la informática sin servidor aún no ha despegado. Básicamente, la mayoría de los clientes todavía están ocupados virtualizando o contenedorizando aplicaciones, y mucho menos haciendo reescrituras completas para “funcionalizarlas”.

Diagrama que muestra la adopción empresarial de la tecnología de nube, como parte de una discusión sobre el almacenamiento de datos sin servidor.Arriba: Adopción empresarial de tecnología en la nube.

Sin embargo, cuando se producen reescrituras de aplicaciones, o cuando comienza el desarrollo de nuevas aplicaciones, los desarrolladores a menudo descubren que es mucho más difícil implementar sistemas paralelos masivos compuestos por funciones sin estado de lo que podrían pensar inicialmente. Al igual que el término "sin servidor", la computación "sin estado" también es un oxímoron. Con las funciones, es posible que el estado no se almacene en la función en sí, pero se almacena en algún lugar. Por lo general, eso está en almacenamiento compartido como Amazon S3.

El problema es que el almacenamiento compartido es lento, por lo que las empresas tienen que pagar por el tiempo que lleva ejecutar la función así como el tiempo que lleva almacenar y recuperar datos del almacenamiento compartido.

Esto se vuelve más doloroso cuando una función se activa por primera vez y necesita cargar todas las bibliotecas a las que hace referencia el código. Hoy en día, las principales plataformas de función como servicio (FaaS) deben cargar todo el código base de una biblioteca en lugar de solo las partes que usa la función, lo que resulta en arranques en frío que descargan cientos de megabytes de bibliotecas de dependencia.

Los desarrolladores a menudo intentan superar las limitaciones de rendimiento del almacenamiento compartido lento implementando uno de dos anti-patrones. O crean cachés en sus funciones que necesitan acceso rápido a los datos, lo que da como resultado un anti-patrón de sistemas de gran distribución con cachés en todas partes, o caen en un anti-patrón de "enviar datos al código" donde se obtienen muchos datos grandes pasó de función en función. Mover muchos datos a la computación puede ser ineficiente y hace que las funciones dependan en gran medida unas de otras, lo que rompe la promesa de un sistema altamente desacoplado.

Se necesita innovación de almacenamiento

Si bien existen otros problemas con las plataformas FaaS, las limitaciones del almacenamiento compartido lento es un problema común con el diseño de aplicaciones sin servidor en la práctica. Para permitir la adopción generalizada de computación sin servidor, se debe construir un almacenamiento de próxima generación con las siguientes características:

  1. Disponible al instante - Esto significa que el almacenamiento de aprovisionamiento se realiza en milisegundos.
  2. Elásticamente escalable - Cada función no debería tener que aprovisionar su propio almacenamiento. En cambio, a medida que aumentan las solicitudes y se crean nuevas funciones, un repositorio de datos central debería poder crecer para satisfacer la demanda.
  3. Cerca de computar - Los clientes no quieren pagar por el tiempo dedicado a consultar o almacenar datos, por lo que el almacenamiento debe estar lo más cerca posible de la computación.
  4. Económico para cargas de trabajo estalladas - Idealmente, el almacenamiento debería ser antifrágil desde la perspectiva de los costos. Cuanto mayor sea la demanda de un dato, más rápido será entregarlo a los usuarios.
  5. Fácil acceso a través de aplicaciones - Una de las razones Amazon S3 despegó cuando se diseñó para aplicaciones web y se lanzó con API y SDK increíbles. El almacenamiento utilizado en la computación sin servidor debe ser fácil de acceder de manera segura por medio de funciones a través de un SDK y API para desarrolladores fáciles de usar.

Será interesante ver cómo el almacenamiento satisfará estas necesidades. Lo que no está claro es si las plataformas existentes pueden evolucionar lo suficientemente rápido o si será necesario crear productos de almacenamiento completamente nuevos para permitir la computación sin servidor. De cualquier manera, la industria del almacenamiento está a punto de experimentar una disrupción masiva una vez más.

Comparta este artículo