Saltar al contenido principal

¿Qué es Hibernation?

La Hibernation (suspensión automática) de Laravel Cloud es una funcionalidad antigua que transiciona un entorno a estado suspendido cuando no hay peticiones HTTP durante un tiempo determinado. En la nueva Flex Compute actual, se utiliza como sucesor el Scale to Zero, más rápido. La Hibernation de Legacy Flex permite detener la facturación de compute durante la suspensión, pero la reactivación tras recibir una petición HTTP suele tardar entre 5 y 20 segundos. En el nuevo Scale to Zero, el arranque se ha reducido a menos de 500 ms, y además, incluso durante la suspensión, el entorno se arranca automáticamente para tareas programadas y procesamiento de colas.
Si vas a usar Laravel Cloud por primera vez, lo seguro es partir de Scale to Zero en lugar de Hibernation. Consulta Laravel Cloud — Todo sobre el PaaS específico para Laravel para una visión general incluyendo Managed Queues y los nuevos planes de precios.

Lo que ha cambiado con Scale to Zero

En el Scale to Zero de la nueva Flex Compute, se han resuelto en gran medida los puntos problemáticos de la Hibernation anterior.
ElementoHibernation antiguoNuevo Scale to Zero
Reactivación por petición HTTP5–20 sMenos de 500 ms
Scheduled TasksNo se ejecutan durante la suspensiónSe arrancan automáticamente y se ejecutan incluso durante el sleep
Procesamiento de colaNo funciona durante la suspensiónSe arranca automáticamente incluso durante el sleep. Se recomienda usar Managed Queues
Uso recomendadoOperación de ahorro para el antiguo entorno FlexConfiguración estándar actual
En la Hibernation anterior había el problema de que las tareas programadas y las colas no funcionaban durante la suspensión. En Scale to Zero este problema se ha resuelto, y en particular, el procesamiento de colas puede continuar de forma segura aunque el App cluster esté dormido si se usa Managed Queues.

Pasos para activar la Hibernation antigua

1

Abre el App compute cluster

En el dashboard del lienzo de infraestructura del entorno, haz clic en App compute cluster.
2

Activa Hibernation

Activa el toggle Hibernation.
3

Guarda y vuelve a desplegar

Haz clic en Save and Redeploy para aplicar los cambios.
No se activa con solo cambiar la configuración. Siempre se requiere Save and Redeploy.
Si vas a activarlo por primera vez en el entorno actual, utiliza el toggle Scale to Zero del App compute cluster. Las siguientes limitaciones son una explicación centrada principalmente en la Hibernation antigua / Legacy Flex.

Limitaciones durante la suspensión de la Hibernation antigua

Mientras Hibernation está activa y el entorno está suspendido, no funcionan las siguientes funciones.
FunciónComportamiento durante la suspensión
Procesamiento de peticiones HTTPDetenido (se procesa tras la reactivación)
Task SchedulerNo se ejecuta
Queue WorkerNo se ejecuta
Procesos en segundo plano personalizadosNo se ejecutan
Cuando se reactiva desde la suspensión, estos procesamientos se reanudan automáticamente. Sin embargo, los jobs programados que “deberían haberse ejecutado” durante la suspensión no se ejecutan retroactivamente.
Además, Hibernation tiene las siguientes limitaciones.
  • La suspensión solo es posible en Flex Compute. En Pro Compute no se puede activar Hibernation.
  • La suspensión se realiza por entorno. Cuando el App cluster se suspende, todos los Worker cluster del mismo entorno también se suspenden.

Causas de reactivación innecesaria

Si hay una petición HTTP, el entorno se reactiva automáticamente, pero también se producen reactivaciones por peticiones no intencionadas.
  • Bots y crawlers: motores de búsqueda o escáneres de seguridad rastrean páginas automáticamente
  • Previsualizaciones de enlaces en Slack o Teams: apps de mensajería acceden para obtener miniaturas de los enlaces
  • Escaneos de WordPress: escaneos automáticos que buscan entornos de WordPress acceden a /wp-admin y similares
  • Ataques que buscan archivos .php: escaneos automáticos que apuntan directamente a archivos PHP
A los dominios *.laravel.cloud de Laravel Cloud se les añade la cabecera X-Robots-Tag: noindex, nofollow para que no sean indexados por los motores de búsqueda, pero si el dominio se descubre, no se puede evitar del todo. En los dominios personalizados no se añade la cabecera noindex.
Usar nombres de dominio lo más complejos posible reduce el riesgo de que los bots descubran el vanity domain.

Prevenir reactivaciones innecesarias con Path Blocking

Path Blocking es una funcionalidad que bloquea, sin procesar, las peticiones a determinadas extensiones o rutas mientras el entorno está suspendido. Previene reactivaciones innecesarias causadas por escaneos de WordPress o ataques que apuntan a archivos PHP. Las extensiones y rutas bloqueadas por defecto son las siguientes. Extensiones bloqueadas:
.php, .php3, .php4, .php5, .php6, .php7, .php8,
.phtml, .pht, .phps, .env, .git
Rutas bloqueadas:
/wp-admin, /wp-content, /wp-includes, /wp-json
Estas peticiones se responden sin reactivar la app aunque el entorno esté suspendido.
Como el enrutamiento normal de Laravel no usa peticiones con extensión .php, bloquearlas no afecta al funcionamiento de la aplicación.

Usos adecuados e inadecuados para la Hibernation antigua

Usos adecuados

  • Entornos de staging y desarrollo: no requieren estar siempre en marcha, por lo que se puede reducir mucho el coste
  • Blogs personales o portafolios: usos con poco tráfico
  • Apps de demo o prueba: es suficiente con reactivarse solo cuando se necesita
  • Herramientas internas de baja frecuencia: horas de uso limitadas

Usos inadecuados

  • Usos que emplean tareas programadas: schedule:run no se ejecuta durante la suspensión
  • Usos que requieren jobs de cola periódicos: la cola también se detiene durante la suspensión
  • Entornos de producción que no admiten latencia de arranque: la reactivación tarda 5–20 s
  • Apps que usan WebSocket: la conexión no se mantiene y la suspensión puede retrasarse
Si quieres ejecutar procesos periódicos con el task scheduler (envío de emails, agregaciones de datos, etc.), al activar Hibernation esos procesos no se ejecutarán. Para estos usos hay que desactivar Hibernation o diseñar el sistema para mantener despierto el entorno enviándole peticiones desde un scheduler externo (por ejemplo, GitHub Actions).
En el nuevo Scale to Zero esta restricción se ha relajado. Las Scheduled Tasks se ejecutan automáticamente incluso durante el sleep, y el procesamiento de colas, si se usa Managed Queues, no se ve afectado por la suspensión del App cluster.

Conclusión

En Legacy Flex la Hibernation todavía sirve para reducir costes, pero actualmente Scale to Zero es más práctico.
  • En Legacy Flex se factura solo por el tiempo activo. Suspensión automática tras el timeout.
  • El tiempo de reactivación de la Hibernation antigua es de 5 a 20 s.
  • El nuevo Scale to Zero arranca en menos de 500 ms.
  • En Scale to Zero, las Scheduled Tasks y las Managed Queues funcionan incluso durante el sleep.
  • Con Path Blocking se previenen reactivaciones innecesarias por bots.
  • Solo compatible con Flex Compute.

Páginas relacionadas

Programación

Consulta la configuración del Task Scheduler y su funcionamiento en Laravel Cloud.

Colas

Consulta la configuración del Queue Worker y cómo operarlo en Laravel Cloud.

Visión general de Laravel Cloud

Repasa Managed Queues, Scale to Zero y los nuevos planes de precios en conjunto.
Última modificación el 13 de julio de 2026