Qué son las arquitecturas sin servidor (Serverless Computing) en la nube y por qué deberían interesarte

04/12/2017Artículo original

Quizás ya hayas oído hablar de la nueva palabra de moda en la industria del software y la programación: la computación sin servidor o serverless computing.

¿Cómo funciona? ¿Por qué es importante? ¿Es una nueva moda pasajera o una tendencia real?

Los pilares de la informática sin servidor

Aunque no significa verdaderamente que no haya servidores por debajo (que los hay), el nombre de esta tecnología hace referencia al hecho de que, desde el punto de vista del desarrollo y mantenimiento de la aplicación, es como si no los hubiese. Enseguida lo veremos…

1.- Olvídate de servidores, sistema operativo, instancias…

La informática serverless está totalmente gestionada. Es decir, nunca tienes que reservar explícitamente instancias de servidor como sí pasa en IaaS (plataforma como servicio, como por ejemplo Azure Web Apps, Google App Engine o AWS Elastic Beanstalk) o por supuesto en PaaS (máquinas virtuales). Esto se gestiona de manera automática desde la plataforma. Cada ejecución de una función podría ejecutarse en una instancia de computación diferente, siendo completamente transparente para tu código.

La evolución ha sido pasar de los servidores físicos en un Data Center, a servidores virtuales en ese mismo Data Center, a servidores virtuales en la nube, a contenedores dentro de servidores virtuales, y ahora serverless computing.

Gracias a la informática sin servidor nos podemos olvidar de:

  • Aprovisionar servidores
  • Mantenerlos y gestionarlos
  • Escalar la aplicación (va en automático: ver punto siguiente)
  • Preocuparnos de la disponibilidad y la tolerancia a fallos

2.- Escalabilidad impulsada por eventos

La informática sin servidor encaja muy bien para cargas de trabajo que responden a eventos entrantes. Los eventos incluyen:

  • Temporizadores, por ejemplo ejecutar esta función todos los días a las 10 de la mañana
  • Llamadas HTTP para escenarios API y WebHook
  • Colas: por ejemplo, procesamiento de pedidos
  • Y mucho más…
  30 cursos gratis que puedes comenzar en noviembre para aprender una nueva habilidad este otoño

La idea con funciones serverlesss es que, en lugar de programar una aplicación completa, escribes una “función”, que contiene tanto código (lo que va a hacer) como metadatos (sus desencadenadores o triggers y los enlaces con otros sistemas). La plataforma programa automáticamente la ejecución de tu función y escala el número de instancias de cálculo en función de la tasa de eventos entrantes. Los desencadenadores definen cómo se invoca una función.

Los enlaces de entrada y salida proporcionan una forma declarativa de conectarse a los servicios desde tu código.

Por ejemplo (y este es un ejemplo sacado de la documentación de Microsoft), supón que quieres crear un archivo nuevo en el servicio de almacenamiento Azure Blob Storage cada cinco minutos. Para ello en Azure Functions utilizarías un desencadenador de tipo temporizador y un enlace de salida blob:

3.- Micro facturación.

Con la arquitectura sin servidor pagas únicamente cuando se está ejecutando tu código. Si no hay ejecuciones de funciones activas, no se te cobra. Por ejemplo, si tu código se ejecuta una vez al día durante 2 minutos, se te facturará 1 unidad de ejecución y 2 minutos de cómputo.

¿Por qué es importante la arquitectura sin servidor?

Los desarrolladores hace ya años que están incorporando a sus desarrollos la arquitectura de microservicios, una forma de arquitectura SOA (Service Oriented Architecture). Las aplicaciones basadas en microservicios dividen la funcionalidad en servicios especializados, muy desacoplados, que se comunican entre ellos y colaboran a través de APIs. Cada microservicio se ejecuta independientemente de los demás en su propio proceso, máquina virtual o contenedor. La ventaja principal de esto es la separación de responsabilidades, que hace que las aplicaciones sean más fácil de desarrollar, mantener y escalar.

  Programación para Juegos - Lección 1.2

La contrapartida de los microservicios es que aumenta el trabajo de gestión y mantenimiento de infraestructura, así como la orquestación del conjunto, la integración y el versionamiento. Normalmente solo compensan a empresas grandes con aplicaciones grandes. De hecho empresas influyentes como Basecamp hablan de las ventajas de las aplicaciones monolíticas en las empresas pequeñas debido precisamente a la complejidad de la gestión entre otros factores.

Sin embargo la computación sin servidor va un paso más allá de los microservicios, llevándolos al extremo: como desarrolladores lo único que nos importa es definir cada funcionalidad y cada lógica de negocio, dejando que del resto se encargue el proveedor Cloud.

En conjunto, estas funciones te permiten centrarte en tus aplicaciones, y no en los servidores. Esto significa que habrás reducido la necesidad de gestionar servidores y sistemas y tendrás un entorno informático más productivo. Con ella algunos proyectos se pueden completar en días o semanas, en lugar de meses, reduciendo además el coste.

¿Moda o tendencia de futuro?

La informática sin servidor no es un nuevo concepto de moda pasajero, representa un cambio dramático en la forma en que los desarrolladores piensan en las aplicaciones en la nube, ya que sólo necesitan preocuparse por el código y cómo se desencadena su funcionamiento. La plataforma se encarga del resto.

Aunque lo serverless todavía está en su infancia, todos los grandes operadores de Cloud Computing ofrecen también servicios de funciones “sin servidor”:

  FRIKADAS: Convierte la pantalla de tu MacBook en táctil por menos de 1 euro

Como ves no se trata de una tecnología “rara” de un proveedor especializado, sino que están en todas partes y han venido para quedarse, así que deberías empezar a investigarlas ya.

Para evitar estar atado a un proveedor una vez que crees una solución serverless, existen bibliotecas intermedias que se encargan de unificar los diferentes modelos de distintos proveedores de modo que puedas crear funciones que luego puedan ejecutarse en las nubes más populares. La más conocida de estas bibliotecas es, probablemente, Serverless, que además es Open Souce.

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Contiene enlaces a sitios web de terceros con políticas de privacidad ajenas que podrás aceptar o no cuando accedas a ellos. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad