En este módulo, aprenderás cómo desplegar una aplicación Node.js en Heroku, una plataforma como servicio (PaaS) que permite a los desarrolladores construir, ejecutar y operar aplicaciones completamente en la nube. Heroku es conocido por su simplicidad y facilidad de uso, lo que lo convierte en una excelente opción para desplegar aplicaciones Node.js.

Contenido

Introducción a Heroku

Heroku es una plataforma en la nube que permite a los desarrolladores desplegar, gestionar y escalar aplicaciones sin preocuparse por la infraestructura subyacente. Heroku soporta múltiples lenguajes de programación, incluyendo Node.js.

Ventajas de Usar Heroku

  • Despliegue Rápido: Puedes desplegar tu aplicación con unos pocos comandos.
  • Escalabilidad: Escala tu aplicación fácilmente añadiendo más dynos (unidades de computación).
  • Add-ons: Amplía las capacidades de tu aplicación con servicios adicionales como bases de datos, monitoreo, etc.
  • Integración Continua: Soporte para CI/CD para un flujo de trabajo de desarrollo más eficiente.

Preparación de la Aplicación

Antes de desplegar tu aplicación en Heroku, asegúrate de que tu aplicación Node.js esté lista para producción. Aquí hay algunos pasos que debes seguir:

  1. Estructura del Proyecto: Asegúrate de que tu proyecto tenga una estructura clara y organizada. Un ejemplo básico de estructura de proyecto podría ser:

    my-app/
    ├── node_modules/
    ├── public/
    ├── src/
    │   ├── index.js
    │   └── ...
    ├── .gitignore
    ├── package.json
    └── README.md
    
  2. Archivo package.json: Asegúrate de que tu archivo package.json tenga un script de inicio definido. Heroku usará este script para arrancar tu aplicación.

    {
      "name": "my-app",
      "version": "1.0.0",
      "main": "src/index.js",
      "scripts": {
        "start": "node src/index.js"
      },
      "dependencies": {
        "express": "^4.17.1"
      }
    }
    
  3. Archivo .gitignore: Asegúrate de tener un archivo .gitignore para excluir archivos y directorios innecesarios del control de versiones.

    node_modules/
    .env
    

Configuración de Heroku CLI

Para interactuar con Heroku desde la línea de comandos, necesitas instalar y configurar Heroku CLI.

Instalación de Heroku CLI

Sigue las instrucciones en la documentación oficial de Heroku para instalar Heroku CLI en tu sistema operativo.

Inicio de Sesión en Heroku

Una vez instalado, abre tu terminal y ejecuta el siguiente comando para iniciar sesión en tu cuenta de Heroku:

heroku login

Esto abrirá una ventana del navegador donde podrás ingresar tus credenciales de Heroku.

Despliegue de la Aplicación

Inicializar un Repositorio Git

Heroku utiliza Git para gestionar el despliegue de aplicaciones. Si aún no has inicializado un repositorio Git en tu proyecto, hazlo ahora:

git init
git add .
git commit -m "Initial commit"

Crear una Aplicación en Heroku

Crea una nueva aplicación en Heroku con el siguiente comando:

heroku create my-app-name

Heroku asignará un nombre único a tu aplicación si no proporcionas uno.

Desplegar la Aplicación

Para desplegar tu aplicación, simplemente empuja tu código al repositorio remoto de Heroku:

git push heroku main

Heroku detectará automáticamente que tu aplicación es una aplicación Node.js y ejecutará los pasos necesarios para desplegarla.

Manejo de Variables de Entorno

Las variables de entorno son esenciales para configurar tu aplicación en diferentes entornos (desarrollo, producción, etc.). Puedes configurar variables de entorno en Heroku usando el siguiente comando:

heroku config:set MY_VARIABLE=my_value

Para ver todas las variables de entorno configuradas, usa:

heroku config

Escalado de la Aplicación

Heroku permite escalar tu aplicación añadiendo más dynos. Para escalar tu aplicación, usa el siguiente comando:

heroku ps:scale web=2

Esto añadirá un segundo dyno a tu aplicación, permitiendo manejar más tráfico.

Monitoreo y Logs

Heroku proporciona herramientas para monitorear y ver los logs de tu aplicación. Para ver los logs en tiempo real, usa:

heroku logs --tail

Para acceder al panel de monitoreo, visita el dashboard de Heroku y selecciona tu aplicación.

Ejercicio Práctico

Objetivo

Desplegar una aplicación Node.js simple en Heroku.

Pasos

  1. Crear una Aplicación Node.js Simple:

    // src/index.js
    const express = require('express');
    const app = express();
    const PORT = process.env.PORT || 3000;
    
    app.get('/', (req, res) => {
      res.send('Hello, Heroku!');
    });
    
    app.listen(PORT, () => {
      console.log(`Server is running on port ${PORT}`);
    });
    
  2. Inicializar un Repositorio Git:

    git init
    git add .
    git commit -m "Initial commit"
    
  3. Crear una Aplicación en Heroku:

    heroku create my-simple-app
    
  4. Desplegar la Aplicación:

    git push heroku main
    
  5. Verificar el Despliegue:

    Abre el navegador y visita https://my-simple-app.herokuapp.com. Deberías ver el mensaje "Hello, Heroku!".

Solución

Si has seguido todos los pasos correctamente, tu aplicación debería estar desplegada y accesible en Heroku.

Conclusión

En este módulo, has aprendido cómo desplegar una aplicación Node.js en Heroku. Has cubierto desde la preparación de la aplicación hasta el manejo de variables de entorno, escalado y monitoreo. Ahora estás listo para desplegar tus propias aplicaciones en la nube usando Heroku. En el próximo módulo, exploraremos la integración y el despliegue continuos (CI/CD) para automatizar el proceso de despliegue.

Curso de Node.js

Módulo 1: Introducción a Node.js

Módulo 2: Conceptos Básicos

Módulo 3: Sistema de Archivos y E/S

Módulo 4: HTTP y Servidores Web

Módulo 5: NPM y Gestión de Paquetes

Módulo 6: Framework Express.js

Módulo 7: Bases de Datos y ORMs

Módulo 8: Autenticación y Autorización

Módulo 9: Pruebas y Depuración

Módulo 10: Temas Avanzados

Módulo 11: Despliegue y DevOps

Módulo 12: Proyectos del Mundo Real

© Copyright 2024. Todos los derechos reservados