Serverless
La computación serverless es un modelo de ejecución en la nube donde el proveedor gestiona la infraestructura de servidores, asignando recursos y escalando automáticamente según la demanda, lo que permite a los desarrolladores enfocarse en el código en lugar de la gestión de la infraestructura.
Comprendiendo Serverless
En las arquitecturas serverless, los desarrolladores implementan funciones individuales en lugar de servidores. El proveedor en la nube se encarga de todo lo demás: aprovisionamiento del hardware, escalado durante picos de tráfico, reducción a cero en períodos de inactividad y gestión de la disponibilidad. Este modelo de pago por invocación significa que solo pagas por el cómputo real utilizado, sin coste durante la inactividad. Plataformas de Funciones como Servicio (FaaS) como AWS Lambda, Google Cloud Functions y Azure Functions implementan este modelo. Serverless funciona bien para cargas de trabajo orientadas a eventos, tareas programadas y patrones de tráfico impredecibles, pero presenta desafíos con los "arranques en frío", tareas de larga duración y operaciones con estado.
Cómo GAIA usa Serverless
El procesamiento de tareas en segundo plano de GAIA con los trabajadores ARQ sigue principios similares a serverless: los trabajadores se inician para procesar eventos de la cola y se escalan según la carga de trabajo. La implementación autogestionada ejecuta servicios en contenedores, mientras que los despliegues en la nube pueden aprovechar funciones serverless para los controladores de eventos y el procesamiento de webhooks. Los principios serverless orientan cómo GAIA maneja picos de eventos provenientes de numerosas integraciones de herramientas.
Conceptos relacionados
Arquitectura orientada a eventos
La arquitectura orientada a eventos (EDA, por sus siglas en inglés) es un patrón de diseño de software donde los componentes del sistema se comunican a través de eventos — notificaciones discretas de que algo ha sucedido — permitiendo un acoplamiento flexible, capacidad de respuesta en tiempo real y sistemas reactivos escalables.
Microservicios
Los microservicios son un patrón arquitectónico que estructura una aplicación como un conjunto de servicios pequeños, desplegables de manera independiente, cada uno responsable de una función empresarial específica y que se comunica mediante APIs bien definidas.
API Gateway
Un API Gateway (puerta de enlace de API) es la puerta de entrada única a las APIs de una aplicación: recibe todas las peticiones de los clientes (web, móvil u otros sistemas), comprueba quién llama y si tiene permiso, aplica límites de uso y envía cada petición al servicio de backend que le corresponde, para luego devolver la respuesta al cliente.
Trabajo cron
Un cron job (trabajo cron) es un comando o script que se ejecuta solo según un horario que se repite, por ejemplo todas las noches a las 2:00 o cada lunes a las 9:00. El horario se escribe como una expresión cron de cinco campos (minuto, hora, día del mes, mes y día de la semana), y el programador cron de Linux, macOS y otros sistemas Unix la revisa cada minuto y lanza la tarea cuando la hora coincide.
