Tutorial de despliegue de un backend Node.js con Postgres en Render

·

·

Tutorial de despliegue de un backend Node.js con Postgres en Render

En este artículo encontrarás una guía completa y detallada para desplegar una aplicación backend con Node.js y una base de datos Postgres utilizando la plataforma Render. Aprenderás desde los requisitos previos hasta las mejores prácticas de monitorización y escalado.

Índice de contenidos

  • Requisitos e instalación local
  • Configuración del repositorio Git
  • Introducción a Render
  • Provisionar la base de datos Postgres
  • Configurar variables de entorno
  • Configuración de build y deploy
  • Pruebas y validación
  • Monitorización y logs
  • Escalado y optimización
  • Solución de problemas comunes
  • Conclusiones y recomendaciones

1. Requisitos e instalación local

Antes de desplegar tu aplicación, asegúrate de contar con las siguientes herramientas instaladas en tu equipo:

  • Node.js (v14 o superior): npm o yarn para gestionar dependencias.
  • Git: para versionar el código y conectarlo con Render.
  • Editor de código: Visual Studio Code, WebStorm u otro de tu preferencia.
  • Cuenta en Render: regístrate en render.com.

En tu proyecto Node.js, crea un package.json con los scripts básicos:

scripts: {
nbspnbspstart: node index.js,
nbspnbspdev: nodemon index.js
}

2. Configuración del repositorio Git

Crea un repositorio local y sube tu código a GitHub o GitLab:

  1. Inicializa Git: git init
  2. Añade todos los archivos: git add .
  3. Realiza el primer commit: git commit -m Initial commit
  4. Conecta con remoto y push:
    git remote add origin lttu-repo-urlgt
    git push -u origin main

3. Introducción a Render

Render es una plataforma PaaS que facilita el despliegue de aplicaciones web, ligeras y bases de datos. Sus características más destacadas:

  • Despliegue automático al hacer push en tu repositorio.
  • Configuración sencilla de variables de entorno y addons.
  • HTTPS gratuito y escalado automático (según plan).

4. Provisionar la base de datos Postgres

Una vez en tu dashboard de Render:

  1. Presiona NewDatabasePostgres.
  2. Configura:
    • Nombre: my-node-postgres
    • Plan: Free (hasta 100 MB).
    • Region: la más cercana a tu público.
  3. Haz clic en Create Database.

En pocos segundos tendrás tu base de datos disponible. Render provee la DATABASE_URL que usarás en tu aplicación.

5. Configurar variables de entorno

Para que Node.js se conecte a Postgres, necesitas definir variables de entorno en Render:

  • DATABASE_URL: URL que Render mostrará en la página de tu base de datos.
  • NODE_ENV: ‘production’
  • Otras según tu app (JWT_SECRET, API_KEYS, etc.).

En tu dashboard de servicio web, ve a EnvironmentEnvironment VariablesAdd Environment Variable y añade cada clave y su valor.

6. Configuración de build y deploy

Para desplegar tu aplicación:

  1. Haz clic en NewWeb Service.
  2. Selecciona tu repositorio (GitHub/GitLab).
  3. Configura:
  4. Opción Valor
    Environment Node
    Branch main
    Build Command npm install
    Start Command npm start
  5. Haz clic en Create Web Service y espera a que Render realice el build y despliegue.

7. Pruebas y validación

Una vez desplegado:

  • Visita la URL pública que Render te asigna.
  • Prueba tus endpoints con Postman o curl:
curl -X GET https://your-service.onrender.com/api/users

Verifica que tu aplicación responde correctamente y que las operaciones CRUD funcionan en la base de datos Postgres.

8. Monitorización y logs

Render ofrece un sencillo sistema de logs y métricas:

  • En tu servicio, pestaña Logs: revisa salida de consola y errores.
  • Pestaña Metrics: seguimiento de CPU, memoria y latencia.

Configura alertas integrándote con PagerDuty o enviando logs a LogDNA, según tu plan.

9. Escalado y optimización

Para mejorar rendimiento y disponibilidad:

  • Aumenta instancias: en el apartado Scale, define el número de réplicas.
  • Cache: añade Redis como servicio adicional para reducir carga en Postgres.
  • Pool de conexiones: usa pg-pool en tu código para reutilizar conexiones.
  • Worker Processes: separa tareas intensivas en background con Bull o Agenda.

10. Solución de problemas comunes

Error 500 tras deploy

  • Verifica que todas las variables de entorno estén definidas.
  • Confirma la versión de Node coincide con package.json.
  • Revisa los logs para detalles de excepción.

Timeout en base de datos

  • Asegúrate de cerrar conexiones tras cada consulta.
  • Configura un pool con max: 20 o ajusta según carga.

11. Conclusiones y recomendaciones

Desplegar un backend Node.js con Postgres en Render es un proceso directo que te ahorra tiempo de administración de infraestructura. Con esta guía has aprendido a:

  • Configurar tu proyecto y repositorio Git.
  • Provisionar servicios en Render.
  • Definir variables de entorno y comandos de build.
  • Monitorizar, escalar y optimizar tu aplicación.

Consejo final: mantén siempre tu código y dependencias actualizados, revisa periódicamente los logs y ajusta el escalado según el uso real de tu aplicación.



Leave a Reply

Your email address will not be published. Required fields are marked *