Skip to content
← Volver al blog DevOps

Despliegues Sin Tiempo de Inactividad Con Vercel y SvelteKit

Por Qué el Tiempo de Inactividad Es Inaceptable

Cada segundo de inactividad cuesta confianza. Para productos SaaS, cuesta ingresos. Para sitios de marketing, cuesta leads. El estándar de fiabilidad en despliegues ha pasado de “cinco nueves” a “no debería tener que pensar en ello.”

Con SvelteKit en Vercel, los despliegues sin tiempo de inactividad no son aspiracionales — son el comportamiento por defecto. Así es como lo hacemos funcionar en la práctica.

El Modelo de Despliegue de Vercel

El modelo de despliegue de Vercel es fundamentalmente diferente de los servidores tradicionales. Cada git push crea un despliegue inmutable — una captura completa de tu aplicación congelada en el tiempo. El tráfico no cambia hasta que el nuevo despliegue está completamente construido, probado y saludable.

Esto te da tres cosas de forma gratuita:

  • Despliegues atómicos — el cambio de viejo a nuevo es instantáneo
  • Rollback instantáneo — simplemente redirige el tráfico al despliegue anterior
  • URLs de vista previa — cada rama obtiene su propio despliegue para pruebas

Despliegues de Vista Previa como Puerta de Calidad

Nuestro flujo de trabajo usa despliegues de vista previa como primera línea de defensa:

  1. Push de rama de feature → Vercel crea despliegue de vista previa
  2. Ejecutar pruebas automatizadas contra la URL de vista previa
  3. QA manual en la vista previa (URL real, datos reales, red edge real)
  4. Merge a main → el despliegue de producción se activa automáticamente

El despliegue de vista previa es la misma infraestructura que producción — misma red edge, mismas funciones serverless, mismo entorno. Si funciona en vista previa, funciona en producción.

Variables de Entorno y Secretos

Un detalle importante: las variables de entorno deben configurarse por entorno en el panel de Vercel. Usamos tres alcances:

AlcancePropósitoEjemplo
ProductionSolo sitio en vivoDATABASE_URL, claves API
PreviewDespliegues de ramasMismas claves, base de datos de staging
Developmentvercel dev localSobreescrituras locales

Nunca hagas commit de secretos a git. Las variables de entorno encriptadas de Vercel son la única forma segura de manejar claves API, URLs de base de datos y secretos de autenticación.

Caché en el Edge para Contenido Estático

Las páginas pre-renderizadas de SvelteKit se sirven desde la red edge de Vercel — lo que significa que tu contenido estático carga desde el centro de datos más cercano al usuario. Sin necesidad de ir al servidor de origen.

Para páginas dinámicas, usamos encabezados Cache-Control para cachear en el edge con revalidación:

typescript
export const load: PageServerLoad = async () => {
  const posts = await fetchPosts();

  return {
    posts,
    headers: {
      'Cache-Control': 's-maxage=60, stale-while-revalidate=300'
    }
  };
};

Esto sirve contenido cacheado por 60 segundos, luego revalida en segundo plano mientras sigue sirviendo contenido obsoleto por hasta 5 minutos. Los usuarios nunca ven un spinner de carga.

Estrategia de Rollback

Las cosas salen mal. Cuando eso pasa, Vercel te permite promover instantáneamente cualquier despliegue anterior a producción. Sin reconstruir, sin redesplegar — solo un cambio de tráfico.

Nuestra lista de verificación para rollback:

  1. Identificar el problema (alertas de monitoreo, reportes de usuarios)
  2. Promover el último despliegue conocido como bueno (un clic en el panel, o vercel rollback vía CLI)
  3. Investigar en la URL de vista previa del despliegue roto (sigue siendo accesible)
  4. Corregir, hacer push y dejar que el pipeline normal de despliegue lo maneje

Todo el rollback toma menos de 30 segundos. Sin SSH, sin comandos de reinicio, sin rezos.

Lo Que Hemos Aprendido

Después de docenas de despliegues en producción con este stack, la mayor lección es: haz que los despliegues sean aburridos. Cuando enviar a producción es rutinario y reversible, envías con más frecuencia, en incrementos más pequeños, con menos riesgo.

Esa es la verdadera ganancia de los despliegues sin tiempo de inactividad — no el número de uptime, sino la confianza para moverse rápido.


¿Necesitas ayuda configurando un pipeline de despliegue fiable? Escríbenos — hemos hecho esto unas cuantas veces.

¿Te gustó este artículo?

Suscríbete a nuestro feed RSS o contáctanos para hablar de tu próximo proyecto.