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:
- Inicializa Git:
git init - Añade todos los archivos:
git add . - Realiza el primer commit:
git commit -m Initial commit - 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:
- Presiona New → Database → Postgres.
- Configura:
- Nombre: my-node-postgres
- Plan: Free (hasta 100 MB).
- Region: la más cercana a tu público.
- 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 Environment → Environment Variables → Add Environment Variable y añade cada clave y su valor.
6. Configuración de build y deploy
Para desplegar tu aplicación:
- Haz clic en New → Web Service.
- Selecciona tu repositorio (GitHub/GitLab).
- Configura:
- Haz clic en Create Web Service y espera a que Render realice el build y despliegue.
| Opción | Valor |
|---|---|
| Environment | Node |
| Branch | main |
| Build Command | npm install |
| Start Command | npm start |
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: 20o 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