Tutoriales

Como mejorar los tiempos de respuesta de Laravel Vapor con precalentamiento

Como mejorar los tiempos de respuesta de Laravel Vapor con precalentamiento

Flowsery Team
Flowsery Team
2 min de lectura

TL;DR — Respuesta rápida

2 min de lectura

El precalentamiento de Laravel Vapor mantiene los contenedores Lambda listos por aproximadamente $0.13/mes para 40 contenedores, eliminando la latencia de arranque en frio que puede anadir hasta 2 segundos a los tiempos de respuesta.

El precalentamiento en Laravel Vapor reduce los arranques en frio, lo cual es critico para las aplicaciones serverless. Cuando despliegas, ningun contenedor Lambda esta caliente y listo para manejar peticiones por defecto. Esto lleva a arranques en frio garantizados que pueden anadir hasta 2 segundos a los tiempos de respuesta. El precalentamiento envia peticiones a un numero especificado de contenedores en el despliegue y continua haciendo ping cada 5 minutos para mantenerlos calientes.

Cuanto precalentamiento necesitas?

Considera un droplet de DigitalOcean de $5/mes con 1GB de memoria. Si cada peticion de Laravel usa aproximadamente 25MB, el droplet puede manejar teoricamente unas 40 peticiones concurrentes (asumiendo que toda la memoria se asigna a PHP).

Para igualar esa concurrencia en Vapor, necesitarias 40 contenedores Lambda calientes. La buena noticia: esto no es caro.

Comparacion de costos

Precios de AWS Lambda en US East (N. Virginia):

  • Costo por duracion: $0.0000166667 por GB-segundo
  • Costo por peticion: $0.20 por millon de peticiones

Para una funcion Lambda con 1024MB de memoria:

  • Un ping de precalentamiento se ejecuta aproximadamente cada 5 minutos
  • 40 contenedores x 12 pings/hora x 24 horas = 11,520 peticiones por dia
  • Mensual: ~345,600 peticiones
  • Costo por peticiones: aproximadamente $0.07/mes
  • Costo por duracion (asumiendo 100ms por ping): aproximadamente $0.06/mes

Costo total de precalentamiento para 40 contenedores: aproximadamente $0.13/mes -- dramaticamente mas barato que incluso el VPS mas basico.

Configurar el precalentamiento en Vapor

En tu configuracion de vapor.yml, establece el valor warm para cada entorno:

environments:
  production:
    warm: 40

Esto le dice a Vapor que mantenga 40 contenedores calientes en todo momento.

Cuando aumentar el precalentamiento

Monitorea los patrones de concurrencia de tu aplicacion. Si notas arranques en frio durante los periodos de trafico pico, aumenta el valor de warm. Los desencadenantes comunes incluyen:

  • Campanas de marketing que generan picos repentinos de trafico
  • Envios masivos de correo electronico que envian muchos usuarios a tu sitio simultaneamente
  • Patrones de trafico basados en zonas horarias donde las horas pico requieren mas capacidad

Precalentamiento vs. Concurrencia Aprovisionada

AWS tambien ofrece Concurrencia Aprovisionada como alternativa al precalentamiento. Esto mantiene las funciones Lambda inicializadas y listas para responder en milisegundos de dos digitos. Sin embargo, la Concurrencia Aprovisionada es significativamente mas cara que el enfoque de precalentamiento de Vapor y tipicamente solo es necesaria para aplicaciones criticas en latencia donde incluso los arranques en frio ocasionales son inaceptables.

Mejores practicas

  1. Siempre precalienta los entornos de produccion. No hay una buena razon para omitir el precalentamiento dado el costo insignificante.
  2. Establece los valores de warm basandote en el uso concurrente tipico, no en el trafico pico. El autoescalado maneja el trafico de rafaga; el precalentamiento maneja la carga base.
  3. Monitorea las tasas de arranque en frio a traves de las metricas de CloudWatch para ajustar tu valor de warm con el tiempo.
  4. Considera despliegues separados para diferentes cargas de trabajo (peticiones web vs. workers de cola) con configuraciones de precalentamiento independientes.

El precalentamiento es una de las optimizaciones mas simples y baratas que puedes hacer para una aplicacion Laravel serverless. Por centavos al mes, eliminas la queja mas comun sobre las arquitecturas serverless: la latencia de arranque en frio.

¿Te resultó útil este artículo?

¡Cuéntanos qué opinas!

Antes de irte...

Flowsery

Flowsery

Analítica orientada a ingresos para tu sitio web

Rastrea cada visitante, fuente y conversión en tiempo real. Simple, potente y totalmente conforme con el RGPD.

Flowsery

Panel en tiempo real

Seguimiento de objetivos

Rastreo sin cookies

Artículos relacionados