Arquitectura sin servidor para la escalabilidad

julio 3, 2025

Compartir:

Facebook
Twitter
LinkedIn

Las organizaciones y los desarrolladores tienen varias opciones a la hora de decidir sobre la capa de computación y cómo se desarrolla e implementa la infraestructura. Estas opciones no solo desbloquean la flexibilidad en los precios, sino que también permiten a los desarrolladores diseñar sus aplicaciones para que se escalen con el crecimiento sin necesidad de refactorizarlas. Atrás quedaron los días en que los desarrolladores tenían que comprar hardware, cargar sistemas operativos, configurar servicios y middleware antes de lanzar su aplicación. Las plataformas en la nube ofrecen una amplia gama de servicios que le permiten diseñar una arquitectura robusta, escalable y rentable para sus aplicaciones.
En este artículo, nos centraremos en la arquitectura sin servidor.

Hay muchas definiciones de «sin servidor» disponibles en Internet, pero para nosotros, sin servidor significa:

  • No hay servidores que aprovisionar ni administrar
  • Se escala con el uso
  • Nunca pague por el tiempo de inactividad
  • Disponibilidad y tolerancia a fallos integradas

A continuación, se indican las áreas que debe tener en cuenta al crear una carga de trabajo sin servidor. Hemos esbozado las opciones de servicio disponibles en AWS para cada una de estas áreas.

Capa de computación

La capa de computación para la arquitectura sin servidor ejecuta el algoritmo/código sin aprovisionar ningún recurso de hardware ni máquinas virtuales. La plataforma debe proporcionar el entorno de ejecución necesario para ejecutar el código. El código que se ejecuta en un entorno sin servidor se activa mediante un evento (solicitud HTTP recibida por la puerta de enlace de la API, archivo cargado en el almacenamiento en la nube, actualización de datos en la base de datos, etc.) y está destinado a ser de corta duración y sin estado. AWS proporciona una serie de servicios para la computación sin servidor.

Hay muchas definiciones de «sin servidor» disponibles en Internet, pero para nosotros, sin servidor significa:

  • AWS Lambda le permite ejecutar código sin aprovisionar ni administrar ningún servidor o tiempo de ejecución utilizando un modelo de precios de pago por uso. Se le cobra en función del número de solicitudes para sus funciones y la duración, el tiempo (redondeado al milisegundo más cercano) que tarda su código en ejecutarse. AWS Lambda es compatible con la mayoría de los lenguajes de programación y entornos de ejecución populares, pero también proporciona flexibilidad y control para traer su propio entorno de ejecución. AWS Lambda tiene integración con más de 200 servicios de AWS y hay un número de eventos que pueden iniciar Lambda.
  • Amazon API Gateway le permite ejecutar una API REST totalmente gestionada que se integra con Lambda para ejecutar su lógica de negocio e incluye la gestión del tráfico, la autorización y el control de acceso, la supervisión y el control de versiones de la API.
  • AWS Step Functions le permite coordinar una serie de funciones de AWS Lambda en un orden específico. Puede invocar varias funciones Lambda secuencialmente, pasando la salida de una a otra, y/o en paralelo, y Step Functions mantendrá el estado durante las ejecuciones. Esto le permite definir un flujo de trabajo sin servidor y habilitar ejecuciones de larga duración no admitidas dentro de los límites de ejecución de Lambda.

Capa de datos

La capa de datos proporciona un almacenamiento persistente seguro y escalable para sus aplicaciones. La capa de datos puede ser estructurada o no estructurada, e incluye bases de datos, almacenamiento de archivos/objetos, almacenamiento de clave-valor. El servicio ideal para la arquitectura sin servidor debe proporcionar un mecanismo para activarse en respuesta al cambio de datos.

  • Amazon S3 se puede utilizar para el almacenamiento persistente de activos estáticos (paquete de aplicaciones de una sola página (SPA)) y servirlos a los usuarios finales. Puede utilizar Amazon CloudFront con S3 para proporcionar acceso global de baja latencia y alta velocidad.
  • Amazon DynamoDB es un servicio de base de datos persistente no relacional rápido y flexible para cualquier escala. Es un servicio completamente gestionado, por lo que los usuarios no tienen que preocuparse por el aprovisionamiento de hardware, la configuración, la planificación de la capacidad de rendimiento, la replicación, la aplicación de parches de software o el escalado de clústeres. DynamoDB proporciona una función llamada Streams, que es como un registro de cambios para la tabla DynamoDB. Cada vez que se crea, actualiza o elimina un elemento, se escribe un registro en el flujo de DynamoDB. Esto abre una serie de casos de uso interesantes, incluyendo la activación de una función Lambda cuando se crea un evento en el flujo de DynamoDB.
  • Amazon Elasticsearch Service (Amazon ES) es un servicio de Elasticsearch gestionado, seguro y escalable que proporciona un motor de búsqueda y análisis. Puede utilizar este servicio para casos de uso como el análisis de registros, la supervisión de aplicaciones en tiempo real y el análisis de clickstreams.
  • AWS AppSync es un servicio GraphQL gestionado con capacidades en tiempo real y sin conexión, así como controles de seguridad de nivel empresarial que facilitan el desarrollo de aplicaciones. AWS AppSync proporciona una API basada en datos y un lenguaje de programación coherente para que las aplicaciones y los dispositivos se conecten a servicios como DynamoDB, Amazon ES y Amazon S3.

Capa de mensajería

La capa de mensajería es fundamental en los sistemas nativos de la nube que implementan una arquitectura basada en microservicios con muchos servicios pequeños y aislados que se ejecutan dentro de los contenedores o como funciones Lamba. Hay varias formas en que estos microservicios pueden comunicarse entre sí y es una de las decisiones clave al desarrollar aplicaciones nativas de la nube. AWS también proporciona una serie de servicios de streaming que pueden ingerir mensajes en tiempo real para el análisis y el consumo por parte de la capa de computación.
  • Amazon SNS es un servicio de publicación-suscripción que ofrece una capacidad altamente escalable, flexible y rentable para publicar mensajes desde una aplicación y entregarlos inmediatamente a los suscriptores u otras aplicaciones. Puede entregar las notificaciones a los clientes (consumidores) utilizando un mecanismo de «push» que elimina la necesidad de comprobar o «sondear» periódicamente para obtener nueva información y actualizaciones.
  • Amazon Kinesis le permite recopilar, procesar y analizar datos de streaming en tiempo real a escala. Con Amazon Kinesis Data Analytics, puede ejecutar SQL estándar o crear aplicaciones de streaming completas utilizando SQL. Amazon Kinesis Data Firehose puede capturar, transformar y entregar datos de streaming a Amazon S3, Amazon Redshift, Amazon Elasticsearch Service, puntos finales HTTP genéricos y servicios de terceros.

Capa de autenticación y autorización

La autenticación y la autorización en las aplicaciones nativas de la nube pueden adoptar varias formas. Los usuarios pueden registrarse en el back-end de la aplicación, utilizar un directorio empresarial como Active Directory, utilizar proveedores de identidad de terceros como Facebook, Google o Amazon. Los desarrolladores tienen que realizar un gran esfuerzo para crear un flujo de trabajo de autenticación óptimo y una capa de autorización que siga las mejores prácticas.

Amazon Cognito proporciona una solución completa y lista para usar para la autenticación y autorización de usuarios que funciona a la perfección con los servicios de AWS. Puede añadir fácilmente el registro, el inicio de sesión y la sincronización de datos de los usuarios a las aplicaciones sin servidor. También puede habilitar otros proveedores de identidad como Google, Facebook, Oauth, SAML con los grupos de identidad de usuario de Cognitor.

Capa de supervisión

La capa de supervisión proporciona información importante sobre el estado y el rendimiento de las aplicaciones. Permite a los desarrolladores obtener visibilidad de su aplicación en cuanto a lo que ocurre durante cada ejecución y evento, ayuda a depurar el código y ver cómo fluye la solicitud/respuesta de un microservicio a otro.

  • Amazon CloudWatch le permite acceder a las métricas del sistema en todos los servicios de AWS utilizados por la aplicación/carga de trabajo, consolidar los registros del sistema y de nivel de aplicación, y crear indicadores clave de rendimiento (KPI) empresariales como métricas personalizadas para sus necesidades específicas. Proporciona paneles de control y alertas que pueden activar acciones automatizadas en la plataforma.
  • AWS X-Ray le permite analizar y depurar aplicaciones sin servidor proporcionando rastreo distribuido y mapas de servicio para identificar fácilmente los cuellos de botella del rendimiento visualizando una solicitud de extremo a extremo.

admin

Avahi tackles real-world challenges by engineering innovative solutions with AI. As an AWS Premier Tier Services Partner, we deliver cutting-edge AI that drives rapid growth.

Blog relacionado