¿Qué es la computación Sin Servidor (Serverless)?

Definición, casos de uso y patrones de diseños de Serverless

¿Qué es la computación Sin Servidor (Serverless)?

La manera de cómo ejecutamos aplicaciones se han estado modernizando desde la llegada de la computación en la nube. "Serverless" traducido al castellano Sin Servidor, es uno de los tipos de servicios que los proveedores de la computación en la nube ofrece a sus clientes bajo demanda.

"Serverless" es un servicio bajo demanda en la nube para desplegar y ejecutar código con recursos dinámicos.

Para este servicio, el proveedor aprovisiona y gestiona los recursos como: CPU, GPU, memoria RAM, etc., de esta forma se reduce gastos en administración y mejora la seguridad para el cliente.

Definición

Existen diferentes definiciones del "Serverless" (Sin servidor) pero presento la más utilizada:

Serverless computing es un modelo de ejecución de computación en la nube en el que el proveedor de los servicios en la nube destina por demanda recursos de las máquinas virtuales, cuidando de los servidores por sus clientes.

Wikipedia. (2023, 9 octubre). Serverless computing. Wikipedia, la enciclopedia libre. es.wikipedia.org/wiki/Serverless_computing

La computación sin servidor o "Serverless" ofrece Backend como servicio (BaaS) y función como servicio(FaaS).

"Backend as a Service(BaaS)" es un paradigma donde el cliente desarrolla, ejecuta y administra funcionalidades de aplicativos sin tener que mantener y administrar la infraestructura donde se ejecuta.

"Function as a Service (FaaS)" es un servicio online que gestiona actividades específicas dentro de un aplicativo como notificaciones, autenticación o gestión de usuarios.

Características del Serverless

  • Estable y altamente confiable.

  • Reducción de costos

  • Eliminación de administración de servidores.

  • Entorno de ejecución con recursos dinámicos (CPU, RAM, GPU, etc.).

  • Normalmente, el costo del servicio es por tiempo de ejecución del código que se concluye a un reto para los desarrolladores de software el poder crear algoritmos de alto rendimiento.

  • Escalamiento elástico por la forma dinámica de aprovisionar recursos.

  • Es una arquitectura orientada a eventos, que se ejecuta el algoritmo del programa ante un evento.

Casos de Uso de Serverless

  • Aplicaciones Web

  • Procesamiento de Datos en tiempo real

  • Aprendizaje Automático (Inteligencia Artificial)

  • Transcodificación de vídeo

  • Servicio de Autenticación

  • Internet de las Cosas

  • Chatbots

  • Backend para Aplicaciones Móviles

Nombres de servicios FaaS

  • AWS Lambda

  • Google Cloud Functions

  • IBM Cloud Functions

  • Azure Functions

  • Huawei Cloud Functions

  • Alibaba Cloud Function Compute

  • OpenShift Serverless Functions

Patrones de Diseño que se adaptan a Serverless

En el desarrollo de software recurrimos a patrones de diseño para la solución de un cierto tipo de problemas, así que en una arquitectura basada en "serverless" cambia la forma de cómo desarrollamos software.

No todos los patrones de diseño más comunes se adaptan a "Serverless", para eso un desarrollador o un arquitecto de software debe tener la capacidad de elegir el mejor patrón de diseño para la arquitectura de un proyecto.

Estos son los patrones de diseño que se pueden adaptar a la arquitectura Serverless:

  • Event-driven

  • Command

  • Pub/Sub

  • Event workflows

  • Strangler

Conclusión

He presentado la definición más aceptada y aspectos generales importantes del "serverless"; sin embargo, existen numerosas investigaciones que hace que siga modernizándose y nosotros como desarrolladores o tomadores de decisión en tecnologías, debemos adaptarnos en la forma vanguardista de cómo desarrollamos software. Esto es un paradigma, así que nos invita a comprender más del tema para desarrollar algoritmos que puedan funcionar y tener alto rendimiento.


Me interesa conocer tu opinión, suscríbete y deja tus comentarios.

¡Muchas Gracias! 🚀

Did you find this article valuable?

Support Víctor Santiz by becoming a sponsor. Any amount is appreciated!