Publicación, despliegue y mantenimiento de sitios web
Se evalúa el paso del código local a un entorno accesible: build, hosting, DNS, HTTPS, variables de entorno, automatización, caché, respaldos y monitoreo. Las preguntas suelen describir un fallo de despliegue y pedir la causa probable.
Entornos y build
- Separar desarrollo, pruebas y producción evita validar cambios directamente en usuarios reales.
- Un sitio estático genera archivos con un build (
npm run build) y se sirve desde CDN u hosting estático. Un sitio dinámico necesita servidor de aplicación y base de datos. - Las variables de entorno configuran URLs, credenciales y modo de ejecución. No se versionan en Git; se definen en la plataforma.
- CI/CD automatiza pruebas, build y despliegue. Un pipeline debe fallar si las pruebas no pasan.
DNS, HTTPS y caché
- Registros DNS:
Aapunta a IPv4,AAAAa IPv6 yCNAMEa otro nombre. La propagación puede tardar por TTL. - Un certificado TLS se obtiene y renueva automáticamente, por ejemplo con Let's Encrypt. Mezclar HTTP y HTTPS genera contenido mixto y bloqueos.
- Los assets con hash en el nombre se cachean mucho tiempo; el HTML se sirve con caché corta para reflejar cambios.
- Respaldos probados y monitoreo con logs y alertas permiten recuperar y detectar fallos.
Ejemplo trabajado
Publicas una SPA estática. El build genera dist/; subes esa carpeta al hosting; configuras un CNAME del dominio hacia el host; activas HTTPS; defines VITE_API_URL en el entorno de build; sirves index.html con caché corta y los archivos con hash con caché larga. Razonamiento: el HTML cambia con cada release y debe revalidarse; los assets con hash son inmutables. La URL de API se inyecta en build, no se escribe en el código. Si el dominio no resuelve, se revisa DNS y TTL.
Errores que cuestan puntos
Subir .env; probar solo en producción; olvidar el meta viewport; dejar contenido mixto; no renovar el certificado; cachear index.html durante meses; no tener respaldos; desplegar sin plan de reversión; confundir propagación DNS con un error de código.