Hosting

¿Qué es la arquitectura serverless?

La administración y mantenimiento de un servidor, es una tarea que ocupa mucho tiempo y recursos. Esta arquitectura nos permite despreocuparnos de todas las tareas de gestión del servidor y además nos ofrece muchas ventajas. En este artículo hablaremos sobre arquitectura serverless y de cómo funciona, además veremos los servicios más populares. ¡Comenzamos!

¿Qué es la arquitectura serverless?

Aunque serverless signifique “sin servidor”, a lo que se refiere con esto es a que es una arquitectura en la que no debemos preocuparnos por él, puesto que el proveedor en la nube es quien se encarga de su administración.

Serverless es una solución que nos permite crear y ejecutar aplicaciones más rápido y de forma más barata, ya que solo pagas por lo que consumes. En las aplicaciones centradas en servidor, tenemos procesos continuamente activos que atienden peticiones. 

En las centradas en servidor, el programa se activa cuando recibe una petición, después la procesa y se apaga. El ciclo de vida es mucho menos en el caso de las serverless, tienden a ser un solo ciclo de petición y respuesta. Estas estructuras se conocen como Functions as a Service (FaaS), y las más populares son AWS Lambda, Azure Function y Google Cloud Functions. Después veremos estas FaaS y analizaremos qué diferencias tienen, pero primero vamos a ver que ventajas nos ofrece la arquitectura serverless.

Ventajas de la arquitectura serverless

  • No hay necesidad de administrar infraestructura: No hace falta administrar los servidores, ni mantenerlos. Todo esto será responsabilidad del proveedor de nube.
  • Escalabilidad: Los servicios en la nube son fácilmente escalables bajo demanda, se adapta fácilmente a nuestras necesidades.
  • Ahorro de costes: En esta arquitectura se paga por lo que se usa, es decir, en vez de pagar por la instancia, pagas por el tiempo de uso.
  • Alta disponibilidad y tolerancia a fallos: Estos servicios ofrecen alta disponibilidad y tolerancia a fallos de manera predeterminada.
  • Automatización: Al ejecutarse por eventos se automatizan las tareas para ejecutarse cuando sea necesario.

FaaS más usados

AWS Lambda

¿Cómo funciona?

Cada función lambda es desencadenada por un evento. Este evento puede ser invocado por otro servicio AWS como Amazon API Gateway, creando un endpoint HTTP(s) o manualmente desde la consola de Lambda. Cuando recibe este evento, ejecuta el código asociado. El código se escribe en la página de funciones de AWS, aquí crearemos la función, le daremos un nombre y elegiremos el runtime, que puede ser Node.js 20.x o Python 3.12. Ahora ya podremos escribir nuestro propio código y probarlo. Aquí dejo un ejemplo de una función simple hecha en Python.

import json

def lambda_handler(event, context):
    return {
        'statusCode': 200,
        'body': json.dumps('Hola! Esto es una prueba de Lambda')
    }

Desde la vista de diseño, podremos añadir los eventos que queremos que invoquen la función. Aunque podrás probar su funcionamiento pulsando «Test».

Para monitorear todo lo relacionado con esta función y acceder a sus logs, tenemos Amazon CloudWatch. Este nos mostrará un registro por cada vez que se llama a la función y sus posibles errores.

Ventajas

Su principal ventaja es su capacidad de integración. AWS ofrece muchos servicios que pueden integrarse con Lambda, como Amazon Lex, RDS, Alexa, Kinesis o DynamoDB.

Google Cloud Functions

¿Cómo funciona?

Lo primero que necesitamos para escribir nuestra primera función serverless en Google Cloud Functions es el código. Una vez tenemos el código guardado en un archivo, por ejemplo, index.js, podremos desplegar la función con gcloudCLI.

Este es un ejemplo para saludar en Google Cloud Functions.

exports.saludar= (req, res) => {
  let message = req.query.message || req.body.message || 'Hola! Esta es una prueba en Google Cloud';
  res.status(200).send(message);
};

gcloud functions deploy saludar--runtime nodejs16 --trigger-topic saludar

En este caso, para probar la función, tendremos que hacerlo mediante la consola y comprobar el resultado en Google Cloud Console logs.

Ventajas

Cuenta con la ventaja de poder integrarse con todos los servicios de Google Cloud, como Storage o Spanner.

Azure Functions

¿Cómo funciona?

Para crear nuestra primera función en Azure, tendremos que crear una Function app en Azure Marketplace y configurarla, para ello definimos el grupo de recursos, el nombre, suscripción, runtime y hosting. Una vez hemos generado la Function app, podremos empezar a diseñar una función serverless. Primero definiremos un evento para invocar la función y después escribiremos el código. Este es un ejemplo de una función serverless en Azure Functions:

func new --name saludar --template "HTTP trigger" --authlevel "anonymous"
def main(req):
    return f'Hola! Esto es una prueba en Azure'

Ventajas

Al igual que AWS, Azure también tiene una gran capacidad de integración, pudiendo conectarse con numerosos servicios de Azure o con Cortana, por ejemplo. Sin embargo, esta no es su mayor ventaja. Azure Functions es capaz de usar los principales lenguajes de programación de Microsoft, es decir, podrás programar en .Net, C#, PowerShell, JavaScript o Python.

Conclusión

En conclusión, la arquitectura serverless nos ofrece muchos avances y ventajas, ya que no solo acelera el proceso de desarrollo, sino que también permite una mayor agilidad y capacidad de respuesta, haciendo que sea una opción aún más atractiva.

Y tú, ¿te animas a meterte en el mundo de la arquitectura sin servidor? ¡Cuéntanos en comentarios!

Irune Guinea

Compartir
Publicado por
Irune Guinea

Entradas recientes

Estrategias para mejorar el EEAT de tu web

En esta ocasión queremos compartir contigo 5 formas de mejorar el EEAT en tu proyecto… Leer más

5 días hace

Adobe Premiere Rush vs Pro: ¿Qué diferencia hay entre ellas?

Aunque los dos sean programas para editar videos, cada una es más adecuada según que… Leer más

2 semanas hace

Expresiones en After Effects

Aprende a utilizar las expresiones en after effects para realizar videos de forma más rápida… Leer más

2 semanas hace

Tipos de bases de datos: Cuáles existen, cuándo usarlos y ejemplos

¿Vas a empezar un proyecto y no sabes que base de datos elegir? Entra y… Leer más

3 semanas hace

Qué es la autoridad de dominio

¿Qué es la autoridad de un dominio y como puedo mejorar mi calificación? En este… Leer más

3 semanas hace

JWT: JSON Web Token, qué son y cómo usarlos

¿Quieres establecer una autenticación para tu página web? Aquí te hablaremos de una de las… Leer más

4 semanas hace