Articulos
Contacto

Serverless. ¿ Qué es ?.

Conoce la arquitectura serverless. Sus ventajas y desventajas

Publicado el: 09 de Marzo 2019 por Victor de Andrés Archivado en:
@angular\elementswebcomponents
Photo by Brunno Tozzo on Unsplash

Tal vez hayas oído hablar de la arquitectura Serverless o Fass ( functions as a service ). En este post explicaré brevemente en qué consiste esta arquitectura.

¿Qué es?.

Comencemos por el principio. ¿Qué es la arquitectura Serverless o Fass?. Cuando lees serverless lo primero que puedes pensar es que es una arquitectura sin servidores. Efectivamente es una arquitectura sin servidores, aunque no en el sentido de no disponer de servidores físicos o dockerizados, en algún servidor deberemos ejecutar nuestros programas. En esta arquitectura los servidores son elementos anónimos que se encuentran alojados en una nube. Son contenedores efímeros y sin estado que sólo se crearán en el momento de ejecutar una función. Es por esto que se denomina arquitectura serverless o Fass.

Ventajas.

Cuando desarrollemos con la arquitectura serverless tendremos algunas de las siguientes ventajas:

  • Posee un alto nivel de desacoplamiento entre los distintos servicios, lo que favorece el desarrollo de arquitecturas basadas en microservicios. Facilitando de esta forma la continua mejora y despliegue de nuestros servicios.

  • El proveedor se encargará de proporcionar todos los servicios necesarios: hardware, soporte, actualizaciones de los servidores, ect… para poder ofrecernos el servicio. Por lo que nosotros nos desentendemos de una parte importante a la hora de hacer nuestros despliegues. Simplifica los ciclos de desarrollo, además de facilitarnos una escalabilidad horizontal de nuestra aplicación en caso de necesidad.

  • Reducción de los gastos. Sólo pagaremos cuando se realicen peticiones a nuestras funciones con ello disminuiremos el gasto de hardware.

  • Esta arquitectura es agnóstica a los proveedores. Tenemos una flexibilidad total para elegir nuestros proveedores a la hora de hacer el despliegue. Podremos utilizar esta arquitectura haciendo un mix de proveedores, no siendo esclavo de ninguno de ellos, o trabajar con un único proveedor.

  • Nuestras funciones se pueden integrar fácilmente con servicios de terceros lo que disminuye el tiempo de desarrollo de nuestra aplicación.

Desventajas.

Pero por supuesto todo tiene un lado positivo y un lado negativo. Siendo algunas de las desventajas de utilizar la arquitectura serverless las siguientes:

  • Los recursos de programación ( lenguajes, librerías, ect ) se encuentran definidos por el proveedor del servicio. Debemos adaptarnos a los requisitos del proveedor seleccionado, aunque también podremos optar por nuestros propios contenedores.

  • Es un servicio sin estado. Cualquier operación que necesite datos anteriores deberá utilizar otros servicios para almacenar los datos.

  • Latencia inicial. Dado que el contenedor se crea en el momento de hacer la petición es posible que la ejecución sufra latencias en su arranque, aunque existen técnicas para disminuir este tiempo de latencia.

Mi opinión.

Creo que la tecnología serverless o fass tiene un futuro prometedor debido a su flexibilidad. Tiene una curva de aprendizaje muy suave que facilita mucho la introducción en esta arquitectura. Promoverá la reutilización de los servicios propios como de terceros lo que hará disminuir el tiempo medio del desarrollo de las aplicaciones. Nos facilita el desarrollo de las aplicaciones así como la rápida adopción a los cambios necesarios en la lógica de las mismas.

Si quieres comenzar a trabajar o profundizar en esta arquitectura a continuación te adjunto una lista tanto de proveedores que ofrecen este servicio, como herramientas que posibilitan crear tu cloud privada para hacer el despliegue de esta arquitectura, y una serie de servicios de terceros que utilizan esta arquitectura que podrías integrar en tus aplicaciones.

Proveedores.

Los proveedores más importantes en la actualidad que nos ofertan este servicio son los siguientes:

Aunque también podemos optar por soluciones privadas como:

Servicios de terceros.

Por su puesto además de nuestros servicios podemos utilizar servicios de terceros lo cual nos facilitará el desarrollo de nuestras aplicaciones no teniendo que desarrollar ciertas partes:

Comentarios
Escribe tu comentario