¿Qué es Serverless? Principales Usos en Proyectos Reales

¿Qué es Serverless? Principales Usos en Proyectos Reales

¿Qué es Serverless?

Nelson Djalo en LinkedIn: #apigateway #microservices #serverless  #apimanagement #apis… | 49 comentarios

Serverless es un modelo de computación en la nube que permite a los desarrolladores construir y ejecutar aplicaciones sin preocuparse por la gestión de servidores. En lugar de aprovisionar, escalar y administrar infraestructura, las aplicaciones se ejecutan en servicios gestionados por el proveedor en respuesta a eventos específicos.

Aunque el término sugiere «sin servidores», los servidores están presentes, pero son gestionados por el proveedor de la nube, como AWS, Azure o Google Cloud.

¿Cómo Funciona el Modelo Serverless?

  1. Basado en Eventos:

    • El código (conocido como «función») se ejecuta solo cuando se desencadena un evento, como una solicitud HTTP, una carga en un bucket S3 o un cambio en una base de datos.
  2. Escalabilidad Automática:

    • El proveedor ajusta los recursos según la demanda, asegurando que la aplicación funcione sin interrupciones.
  3. Pago por Uso:

    • Solo se paga por el tiempo en que la función está en ejecución, reduciendo costos significativamente.

Principales Ventajas de Serverless

  • Reducción de Costos: Se paga solo por lo que se usa.
  • Desarrollo Ágil: Permite a los desarrolladores centrarse en el código sin preocuparse por la infraestructura.
  • Escalabilidad Automática: Maneja aumentos y disminuciones de tráfico de forma eficiente.
  • Integración Sencilla: Compatible con servicios gestionados como bases de datos, almacenamiento y APIs.

Principales Usos de Serverless en Proyectos Reales

  1. Creación de APIs RESTful y GraphQL:

    • Ejemplo: Usar AWS API Gateway con funciones Lambda para manejar solicitudes HTTP y responder con datos.
  2. Procesamiento de Archivos y Datos:

    • Ejemplo: Procesar imágenes subidas a S3, como redimensionarlas o aplicar filtros.
  3. Automatización de Tareas:

    • Ejemplo: Enviar correos electrónicos automáticos tras una compra o evento en una aplicación.
  4. Aplicaciones Backend sin Servidor:

    • Ejemplo: Gestionar la lógica de negocios de una aplicación móvil.
  5. IoT (Internet de las Cosas):

    • Ejemplo: Procesar datos en tiempo real de sensores conectados.
  6. Machine Learning:

    • Ejemplo: Ejecutar inferencias rápidas en modelos ML sin necesitar infraestructura dedicada.

Ejemplo Práctico: API para Gestión de Tareas

Objetivo:

Crear una API RESTful para gestionar tareas (CRUD) utilizando el enfoque serverless con AWS Lambda y DynamoDB.

Arquitectura:

  • API Gateway: Maneja las solicitudes HTTP y las redirige a Lambda.
  • AWS Lambda: Contiene las funciones para crear, leer, actualizar y eliminar tareas.
  • DynamoDB: Almacena las tareas de forma rápida y escalable.

Paso 1: Configurar DynamoDB

  1. Accede a la consola de AWS y crea una tabla llamada Tareas.
  2. Define un campo clave primaria llamado id.

Paso 2: Crear Funciones Lambda

Ejemplo de Función para Crear una Tarea:

				
					const AWS = require('aws-sdk');
const uuid = require('uuid');

const dynamoDB = new AWS.DynamoDB.DocumentClient();

exports.handler = async (event) => {
  const { titulo, descripcion } = JSON.parse(event.body);

  const nuevaTarea = {
    id: uuid.v4(),
    titulo,
    descripcion,
    creadaEn: new Date().toISOString(),
  };

  const params = {
    TableName: 'Tareas',
    Item: nuevaTarea,
  };

  try {
    await dynamoDB.put(params).promise();
    return {
      statusCode: 201,
      body: JSON.stringify({ mensaje: 'Tarea creada exitosamente', tarea: nuevaTarea }),
    };
  } catch (error) {
    return {
      statusCode: 500,
      body: JSON.stringify({ error: 'Error al crear tarea' }),
    };
  }
};

				
			

Paso 3: Configurar API Gateway

  1. Crea una nueva API en API Gateway.
  2. Define métodos HTTP para cada operación:
    • POST: Crear tarea.
    • GET: Listar tareas.
    • PUT: Actualizar tarea.
    • DELETE: Eliminar tarea.
  3. Conecta cada método con su respectiva función Lambda.

Paso 4: Probar la API

Usa herramientas como Postman o cURL para enviar solicitudes a la API y verificar el correcto funcionamiento de las funciones.

Conclusión

Serverless ha revolucionado la forma en que se desarrollan y gestionan aplicaciones. Su capacidad para reducir costos, escalar automáticamente y simplificar el desarrollo lo hace ideal para muchos proyectos reales, como APIs, automatización de tareas y procesamiento de datos.

Referencias:

Facebook
X
LinkedIn
Reddit
Pinterest
Threads

Post relacionados

Post recientes

Search