Profile image
Arquitecturas Serverless: El Lasso de la Nube

Arquitecturas Serverless: El Lasso de la Nube

Mon Feb 03 2025
Desarrollo

¡Hola Chiquis!👋🏻 ¿Te acuerdas de cómo Ted Lasso, el entrenador de fútbol americano estadounidense, llegó a un equipo de fútbol inglés y, con su optimismo y enfoque en las relaciones humanas, logró unir al equipo y conseguir la victoria? Pues bien, imagina que las arquitecturas serverless son tu propio Ted Lasso en el mundo del desarrollo de software.

En el mundo del desarrollo de software, las arquitecturas serverless han ganado popularidad por su capacidad para simplificar la gestión de servidores y permitir a los desarrolladores centrarse en el código. 

¿Qué es una Arquitectura Serverless? En términos simples, una arquitectura serverless es una forma de construir aplicaciones sin tener que preocuparse por los servidores. Suena mágico, ¿verdad? Al igual que Ted Lasso se enfocaba en entrenar a los jugadores y no en gestionar el estadio, las arquitecturas serverless permiten a los desarrolladores concentrarse en la lógica de su aplicación y dejar que la nube se encargue del resto.

Los proveedores de servicios en la nube, como AWS Lambda, Azure Functions y Google Cloud Functions, se encargan de la infraestructura, escalado y mantenimiento. Esto permite a los desarrolladores centrarse en la lógica de la aplicación y mejorar la eficiencia.

Ventajas de las Arquitecturas Serverless

  • Escalabilidad Automática: Las aplicaciones serverless escalan automáticamente según la demanda, lo que garantiza un rendimiento óptimo sin intervención manual.
  • Costos Reducidos: Solo se paga por el tiempo de ejecución del código, lo que puede resultar en ahorros significativos.
  • Despliegue Rápido: Los desarrolladores pueden desplegar funciones individuales rápidamente, lo que acelera el ciclo de desarrollo.
  • Mantenimiento Simplificado: No es necesario gestionar servidores, lo que reduce la carga de mantenimiento.
  • Mayor escalabilidad: La nube se encarga de escalar tus aplicaciones automáticamente, lo que te permite manejar picos de tráfico sin problemas.
  • Mayor fiabilidad: La nube se encarga de la alta disponibilidad y la seguridad de tus aplicaciones.

¿Cómo funciona? Imagina que cada jugador del equipo de AFC Richmond es una función en tu aplicación. Cada función tiene una tarea específica: marcar un gol, hacer una parada, etc. En una arquitectura serverless, estas funciones se ejecutan en respuesta a eventos, como una solicitud HTTP o un cambio en una base de datos. La nube se encarga de escalar estas funciones automáticamente, es decir, si hay muchos usuarios haciendo una solicitud, se crean más instancias de la función para atenderlas.

lasso

Imaginemos que Ted Lasso es un desarrollador que quiere construir una aplicación serverless. Aquí hay algunos paralelismos entre su experiencia como entrenador y el desarrollo serverless:

Enfoque en la Estrategia (Lógica de la Aplicación) Ted se centra en motivar y entrenar a su equipo, dejando la gestión del estadio y el mantenimiento a otros. De manera similar, los desarrolladores pueden centrarse en la lógica de la aplicación sin preocuparse por la infraestructura.

Adaptabilidad (Escalabilidad Automática) Ted debe adaptarse a un nuevo deporte y cultura, al igual que las aplicaciones serverless se adaptan automáticamente a la demanda. No importa cuántos usuarios accedan a la aplicación, la infraestructura se ajusta automáticamente.

Trabajo en Equipo (Integración de Servicios) Ted trabaja con su equipo y personal de apoyo para lograr el éxito. En una arquitectura serverless, diferentes servicios en la nube trabajan juntos para proporcionar una solución completa. Por ejemplo, una función Lambda puede desencadenar una base de datos DynamoDB y enviar notificaciones a través de SNS.

Ejemplo A continuación, te muestro cómo crear una función serverless en AWS Lambda utilizando Node.js:

const AWS = require('aws-sdk');
const sns = new AWS.SNS();

exports.handler = async (event) => {
    const message = '¡Hola desde AWS Lambda!';
    const params = {
        Message: message,
        TopicArn: 'arn:aws:sns:us-east-1:123456789012:MiTema'
    };

    try {
        await sns.publish(params).promise();
        return {
            statusCode: 200,
            body: JSON.stringify({ message: 'Mensaje enviado con éxito' })
        };
    } catch (error) {
        return {
            statusCode: 500,
            body: JSON.stringify({ error: 'Error al enviar el mensaje' })
        };
    }
};

En este ejemplo, la función Lambda publica un mensaje en un tema de SNS. La infraestructura subyacente es gestionada por AWS, permitiendo al desarrollador centrarse en la lógica del código. También podemos comparar de la siguiente manera: 

  • El equipo es tu aplicación: Al igual que Ted Lasso tenía un equipo de jugadores con diferentes habilidades, tu aplicación tiene diferentes funciones que trabajan juntas.
  • El entrenador es la nube: La nube, al igual que Ted Lasso, se encarga de coordinar todo y asegurarse de que todo funcione de manera eficiente.
  • Los partidos son las solicitudes: Cada vez que alguien utiliza tu aplicación, es como si el equipo estuviera jugando un partido. La nube se asegura de que haya suficientes recursos para atender a todos los usuarios.

¿Cuándo utilizar arquitecturas serverless? Las arquitecturas serverless son ideales para:

  • Aplicaciones sin estado: Aquellas que no necesitan almacenar datos entre invocaciones.
  • Microservicios: Pequeños servicios independientes que se comunican entre sí.
  • Procesamiento de eventos: Aplicaciones que reaccionan a eventos en tiempo real.
  • Backends para aplicaciones móviles: Para proporcionar una backend escalable y sin mantenimiento.

Conclusión Al igual que Ted Lasso transformó al AFC Richmond, las arquitecturas serverless pueden transformar la forma en que desarrollas tus aplicaciones. Al permitirte concentrarte en lo que realmente importa, la lógica de tu aplicación, las arquitecturas serverless te ayudarán a construir aplicaciones más rápidas, escalables y rentables.

Las arquitecturas serverless ofrecen una forma eficiente y rentable de construir aplicaciones sin gestionar servidores. Con la escalabilidad automática, costos reducidos y despliegue rápido, las arquitecturas serverless son una opción atractiva para el desarrollo moderno.

¡Gracias por leer! 👇🏻 🚀 ¿Te ha gustado? Comparte tu opinión. Artículo completo, visita: https://community.aws/@orlidun https://lnkd.in/ewtCN2Mn https://lnkd.in/eAjM_Smy 👩💻 https://lnkd.in/eKvu-BHe https://dev.to/orlidev https://lnkd.in/ecHHabTD https://pin.it/2BuZ9N4n8 https://linktr.ee/orlidevs ¡No te lo pierdas!

Referencias: Imágenes creadas con: Copilot ( microsoft.com )

#PorUnMillóndeAmigos #MakeYourselfVisible

img203