Serverless: las TIC más accesibles que nunca

Manuel García Gil  15 marzo, 2019
Serveless

En 2016 ya publicábamos en este blog un post titulado “Serverless, la computación sin servidores: la nueva tendencia cloud, pero como esta tendencia se está poniendo realmente de moda he querido retomar el tema. ¿A qué nos referimos realmente cuando hablamos de arquitecturas sin servidor en la nube?

Aprovecho para aclarar que a veces se utiliza como sinónimo del témino serverless el de FaaS (Function as a Service). Sirve como aproximación pero no es exactamente lo mismo, ya que FaaS se refiere más bien a la ejecución de una sola función y serverless es más genérico y puede englobar la ejecución de aplicaciones completas.

Por simplificar, serverless consiste al fin y al cabo en no tener que mantener ni preocuparse por la infraestructura IT que necesitan las aplicaciones de negocio y no pagar por ningún recurso innecesario, sino estrictamente por lo que a uno le hace falta. Todo ello con una alta disponibilidad, escalabilidad y tolerancia a fallos, que es algo que suele costar bastante si tiene que montarlo uno mismo con calidad “enterprise”. Ejemplos de este tipo de servicio son Lambda o Functions de algunos proveedores de nube pública.

Pero si resulta tan interesante, la pregunta es: “¿por qué no lo hemos inventado antes?”.

Bueno, en parte sí que se había inventado, pero faltaban algunas piezas todavía para que este concepto tan maravilloso explotase. PaaS (plataformas como servicio) llega en 2007 con Heroku, DBaaS (Data Base as a Service), bases de datos como servicio en cloud es de 2011 y Docker con sus contenedores aparece en 2013. De alguna forma, todos ellos son piezas que forman parte de Lambda de AWS y servicios semejantes.

Fundamentalmente serverless sirve para no tener que preocuparse de la infraestructura y poder centrarse, así, en el desarrollo de las aplicaciones. Es decir, permite al cliente enfocarse en lo que realmente le interesa porque, aunque la parte de gestión, provisión y mantenimiento de TI es algo necesario, al cliente le resulta una carga con la que prefiere no lidiar y tener simplemente disponible para su uso. Es el paradigma de cloud llevado a un nuevo extremo: se pasa, en un primer momento, de no tener que comprar servidores ni switching, los cuales se utilizan bajo demanda, a no tener que administrarlos ni a saber nada de ellos en absoluto.

El ejemplo más famoso es el de convertir imágenes de un formato a otro. El origen y el destino de las imágenes está en almacenamiento S3, y después hay una aplicación (código en suma) desarrollada por uno. Bien, pues ese código, como función completa o como secuencia de funciones, es lo que se ejecutará en Lambda. Mientras se están subiendo las imágenes se paga solo por el almacenamiento en S3, que es económico y -aquí viene la magia- cuando terminan de subirse las imágenes se produce un “evento”, que no es más que un aviso de que la carga se ha completado y se empieza a ejecutar la aplicación que se ha subido en los servidores desplegados al efecto. ¿En cuáles? No lo sabemos ni es relevante. ¿Con qué tipo de instancias? Idéntica respuesta. ¿Qué clase de almacenamiento intermedio usan? Lo mismo. E igual en lo relativo a licencias de sistemas operativos y demás. El almacenamiento original puede incluso desaparecer. Lo único seguro es que dispondremos de las fotos y usaremos y pagaremos por el uso de la infraestructura desplegada necesaria para que se ejecute dicha aplicación. Nada más.

Una consecuencia de esta nueva forma de hacer las cosas es que, al eliminar aún más barreras de entrada TI, sirve de impulso para empresas innovadoras y, de hecho, están apareciendo algunas basadas en o alrededor de serverless, como Serverless Inc, Dashbird.io, IO Pipe o Severless Ops.

Esto crea un ecosistema totalmente novedoso y también un nuevo modelo de relaciones: ya no nos enfocamos en la infraestructura, sino en la aplicación y en los flujos internos de esa aplicación, dicho de otra forma, nuestra aplicación se puede componer de una serie de trozos de código, que intercambian información entre ellas. Las funciones serverless son esos trozos de aplicación ejecutados en una secuencia concreta. De hecho, un servicio como Step Functions permite orquestar diferentes Lambdas y añadir también instancias normales (o no), según se necesite en cada momento.

Obviamente, con esta nueva forma de uso y consumo de cloud, se abren asimismo necesidades de monitorización y de seguridad que antes no existían.

Las nubes se mueven sobre nuestras cabezas y cloud, más. ¿Qué creéis que será lo próximo que veamos en este dinámico entorno?

Imagen: geralt

Comentarios

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *