Qué es Serverless

¿Quieres desplegar una aplicación de forma ágil, con bajo costo y gran escalabilidad? Si estás buscando esto para tus proyectos, la arquitectura serverless es para ti.

Serverless también conocida como FasS (Funtions as a Services), permite la ejecución de un fragmento de código (funciones) mediante contenedores efímeros y sin estado, estos son creados en el momento en el que se produce un evento que dispare dicha aplicación, generando un cobro solamente por la cantidad de recursos utilizados para ejecutar el código. Existe una gran variedad de eventos que pueden disparar la ejecución, los cuales pueden ser solicitudes HTTP, eventos de base de datos, servicios de colas, alertas de monitoreo, carga de archivos, eventos programados, etc.

Serverless no significa “sin servidor”, sino que éstos se usan como un elemento anónimo más de la infraestructura. Generando un modelo en el cual el proveedor se encarga de los recursos de forma transparente, de escalarlos automáticamente si crece la demanda y de liberarlos cuando no son utilizados.

Arquitectura

En cuestión de arquitectura el proveedor del servicio define cuales son los lenguajes y versiones soportadas, para que tu te preocupes en escribir el código en dichos lenguajes. Tu código deberá tener un único punto de entrada que ejecuta una única acción, es decir una sola función.

Cuando un request HTTP u otro evento es invocado, tu función se ejecuta, el ambiente de ejecución es iniciado, el código se ejecuta e inmediatamente el ambiente desaparece.

Mientras más rápido termine su función, menor es el costo que paga. Por lo cual, se necesita que la función sea pequeña y con un único propósito. 

Consideraciones

  • Microservicios: el cambio más grande al que te enfrentaras al querer utilizar serverless es que debes de diseñar tu aplicación en forma de funciones, estos va a ser un poco difícil porque posiblemente estés más familiarizado con un sola aplicación monolítica, pero en FaaS se requiere que se adopte una arquitectura basada en microservicios.
  • Funciones sin estado: las funciones normalmente se ejecutan dentro de contenedores seguros sin estado. Debido a que no se tiene control acerca de cuando los ambientes de ejecución son creados o destruidos, no se puede asumir que al guardar un dato en la memoria de la función, este se mantenga allí cuando la función sea nuevamente invocada.
  • Arranques en frío: Dado que tus funciones se ejecutan en un contenedor que se activa bajo demanda para responder a un evento, existe una cierta latencia asociada a él. Esto se conoce como un arranque en frío. Es posible que tu contenedor se mantenga por un tiempo después de que la función haya finalizado su ejecución. Si se desencadena otro evento durante este tiempo, responde mucho más rápido y esto generalmente se conoce como un arranque en caliente

Ventajas del Serverless

  • No tienes que preocuparte por darle mantenimiento. Tampoco tienes que instalar software, gestionar puertos de acceso y estar al pendiente de las actualizaciones. Cero administración de la infraestructura.
  • Escalamiento, los servicios serverless te permiten escalar tu aplicación en base a lo que necesite.
  • Reducir gastos en infraestructura, dedibo a que pagas únicamente cuando se ejecuta la petición.
  • Favorece el desarrollo de arquitecturas basadas en microservicios, facilitando el ciclo de vida y los despliegues continuos.
  • Integración con el resto de servicios de las plataformas
  • Reducción del time-to-market.

Servicios Serverless

AWS Lambda

Es el más conocido y usado del mercado. Te permite colocar aplicaciones con Python, Go, Java, PowerShell, Ruby,C# o Node.js. Cuenta con integración con los servicios de AWS, como DynamoDB, SNS, RDS. Este servicio cuenta con una capa gratuita de 1 millones de ejecuciones al mes.

Azure Funtions

Está desarrollado por Microsoft y puedes utilizar aplicaciones como Powershell, Java, Python, C#, F# o Javascript. Tiene la posibilidad de poder utilizar muchos de los servicios de Microsoft como Cortana. Este servicio cuenta con una capa gratuita de 1 millones de ejecuciones al mes.

Google Cloud Functions

Lo puedes encontrar en la plataforma de Google y actualmente soporta Javascript, Python 3, Go y Java. Se integra con el resto de servicios de la compañía como son Firebase, Pub/Sub, Storage o Spanner. Lo puedes monitorizar con Stackdriver. Este servicio cuenta con una capa gratuita de 2 millones de ejecuciones al mes.

Los servicios serverless te permite tener una nueva fomar de trabajar y desplegar aplicaciones, sin necesidad de que compres o rentes un servidor completo y olvidándote por completo de este. Que opinas de esta forma de desplegar aplicaciones, cuéntame en mis redes sociales si has utilizado alguna de estas plataformas o cual es la que mas te gusta.

Publicado por Marco Elizalde

Full-stack developer / Node.JS / Angular / MongoDB / Google Cloud Platform

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

A %d blogueros les gusta esto: