Despliegue de aplicaciones JavaScript en PythonLib: VPS, Docker y Cloud

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Cómo dejar de tener miedo y empezar a desplegar: su primer entorno de producción

\n\n

Ha escrito una aplicación JavaScript genial. Funciona localmente, las pruebas pasan y en la consola no hay ni un solo error. Pero cuando surge la pregunta «¿cómo ejecuto esto en un servidor real?», muchos entran en pánico. VPS, Docker, plataformas en la nube: suena a algo del ámbito de DevOps, no de frontend o backend con Node.js.

\n\n

En realidad, es más fácil de lo que parece. En este artículo, analizaremos tres enfoques principales para el despliegue de aplicaciones JavaScript: en VPS, en Docker y en la nube. Le mostraré ejemplos de código reales, explicaré los pros y los contras de cada método, y podrá elegir el que mejor se adapte a su proyecto.

\n\n

¿Qué es el despliegue y por qué es necesario?

\n\n

El despliegue (deploy) es el proceso de implementar su aplicación en un servidor donde estará disponible para los usuarios las 24 horas del día, los 7 días de la semana. El desarrollo local es solo el primer paso. Sin el despliegue, su proyecto sigue siendo solo un conjunto de archivos en su computadora.

\n\n

Para los desarrolladores de JavaScript, tres escenarios son especialmente relevantes:

\n\n
    \n
  • Despliegue en VPS — control total sobre el servidor.
  • \n
  • Despliegue en Docker — aislamiento y reproducibilidad del entorno.
  • \n
  • Despliegue en plataformas en la nube — mínima molestia con la infraestructura.
  • \n
\n\n

Analicemos cada opción en detalle.

\n\n

Despliegue en VPS: gestión manual y control total

\n\n

VPS (Virtual Private Server) es un servidor virtual en el que puede instalar cualquier sistema operativo y configurar todo manualmente. Es un clásico que ofrece la máxima flexibilidad.

\n\n

Paso 1: Selección y configuración del servidor

\n\n

Para empezar, alquilamos un VPS (por ejemplo, en DigitalOcean, Hetzner o Timeweb). La configuración mínima para Node.js es 1 vCPU y 1 GB de RAM. Elegimos Ubuntu 22.04 LTS.

\n\n

Después de obtener acceso por SSH, realizamos la configuración básica:

\n\n
ssh root@su_IP_del_servidor\n\n# Actualización de paquetes\napt update && apt upgrade -y\n\n# Instalación de Node.js 20.x\ncurl -fsSL https://deb.nodesource.com/setup_20.x | bash -\napt-get install -y nodejs\n\n# Verificación\nnode -v\nnpm -v
\n\n

Paso 2: Clonación del repositorio e instalación de dependencias

\n\n

Supongamos que su aplicación está en GitHub. La clonamos en el servidor:

\n\n
git clone https://github.com/su_usuario/su_repositorio.git\ncd su_repositorio\nnpm install --production
\n\n

Paso 3: Configuración de variables de entorno

\n\n

Nunca guarde secretos en el código. Cree un archivo .env:

\n\n
nano .env\n\n# Ejemplo de contenido\nPORT=3000\nDATABASE_URL=mongodb://localhost:27017/miapp\nJWT_SECRET=su_súper_secreto
\n\n

Paso 4: Ejecución con PM2

\n\n

PM2 es un gestor de procesos para Node.js. Reinicia automáticamente la aplicación si falla y mantiene su funcionamiento:

\n\n
npm install -g pm2\npm2 start app.js --name "mi-app"\npm2 save\npm2 startup
\n\n

¡Listo! Su aplicación se ejecuta en el puerto 3000. Para hacerla accesible en el puerto 80, use Nginx como proxy inverso.

\n\n
apt install nginx -y\nnano /etc/nginx/sites-available/default
\n\n

Dentro del archivo, escriba:

\n\n
server {\n    listen 80;\n    server_name su_dominio.com;\n\n    location / {\n        proxy_pass http://localhost:3000;\n        proxy_http_version 1.1;\n        proxy_set_header Upgrade $http_upgrade;\n        proxy_set_header Connection 'upgrade';\n        proxy_set_header Host $host;\n        proxy_cache_bypass $http_upgrade;\n    }\n}
\n\n

Reinicie Nginx:

\n\n
nginx -t\nsystemctl restart nginx
\n\n

Ventajas del VPS: control total, se puede configurar cualquier cosa, bajo costo.

\n

Desventajas: debe encargarse usted mismo de la seguridad, las copias de seguridad y las actualizaciones.

\n\n

Despliegue en Docker: contenerización para la reproducibilidad

\n\n

D

Blogs

Book Recommendations