Compartir en Twitter
Go to Homepage

GUÍA COMPLETA PARA DESPLEGAR APLICACIONES EN HEROKU

December 4, 2025

Introducción al Despliegue en Heroku

Heroku es una plataforma como servicio (PaaS) que permite a los desarrolladores desplegar, gestionar y escalar aplicaciones web de manera sencilla y eficiente. Su enfoque en la simplicidad y la automatización lo convierte en una opción ideal para proyectos de programación y sitios web de noticias tecnológicas, donde la rapidez en el despliegue y la escalabilidad son esenciales. Esta guía proporciona un tutorial detallado para desplegar una aplicación en Heroku, utilizando un flujo de trabajo basado en Git y la interfaz de línea de comandos (CLI) de Heroku. A lo largo del documento, se explicarán los pasos necesarios, desde la creación de una cuenta hasta la configuración de variables de entorno, con ejemplos de código para mayor claridad.

Para comenzar, es fundamental entender que Heroku utiliza contenedores ligeros llamados dynos para ejecutar aplicaciones. Estos dynos permiten escalar aplicaciones horizontal y verticalmente según la demanda, lo que es especialmente útil para sitios web que experimentan picos de tráfico, como portales de noticias tecnológicas. Además, Heroku soporta múltiples lenguajes de programación, como Python, Node.js, Ruby, Java, PHP, Go y Scala, lo que lo hace versátil para diversos proyectos de desarrollo.

Requisitos Previos

Antes de desplegar una aplicación en Heroku, es necesario cumplir con ciertos requisitos previos. Estos aseguran que el proceso sea fluido y que la aplicación esté correctamente configurada para su ejecución en la nube.

Primero, se debe tener una cuenta en Heroku. El registro es gratuito y permite acceder a un nivel básico de dynos, suficiente para pruebas y proyectos pequeños. Para crear una cuenta, visita el sitio oficial de Heroku y completa el formulario de registro.

Segundo, es necesario instalar la Heroku CLI, una herramienta de línea de comandos que facilita la gestión de aplicaciones. La CLI está disponible para Windows, macOS y Linux. Para instalarla en un sistema basado en Ubuntu, por ejemplo, ejecuta los siguientes comandos:

sudo snap install --classic heroku

Para verificar la instalación, ejecuta:

heroku --version

La salida debería ser similar a:

heroku/8.7.1 linux-x64 node-v20.12.0

Tercero, se requiere tener Git instalado, ya que Heroku utiliza este sistema de control de versiones para gestionar el código fuente. Para instalar Git en Ubuntu, usa:

sudo apt update
sudo apt install git

Finalmente, asegúrate de tener instalado el entorno de desarrollo para el lenguaje de programación de tu aplicación. Por ejemplo, si usas Python, necesitarás Python y pip instalados. Para Node.js, asegúrate de tener Node.js y npm.

Configuración del Proyecto

Una vez cumplidos los requisitos previos, el siguiente paso es preparar el proyecto para su despliegue en Heroku. Para este tutorial, usaremos una aplicación simple en Python con Flask, aunque los pasos son aplicables a otros lenguajes soportados por Heroku.

Crea un directorio para tu proyecto y navega a él:

mkdir mi-aplicacion
cd mi-aplicacion

Inicializa un repositorio Git:

git init

Crea un entorno virtual para Python e instala Flask:

python3 -m venv venv
source venv/bin/activate
pip install flask gunicorn

Guarda las dependencias en un archivo requirements.txt:

pip freeze > requirements.txt

Crea un archivo app.py con una aplicación Flask básica:

from flask import Flask
app = Flask(__name__)

@app.route('/')
def home():
    return '¡Hola, Heroku!'

if __name__ == '__main__':
    app.run()

Heroku requiere un archivo Procfile para especificar cómo ejecutar la aplicación. Crea un archivo llamado Procfile (sin extensión) con el siguiente contenido:

web: gunicorn app:app

Este archivo indica que la aplicación se ejecutará como un proceso web usando Gunicorn, un servidor WSGI para Python.

Además, Heroku necesita un archivo runtime.txt para especificar la versión de Python. Crea este archivo con el siguiente contenido:

python-3.12.3

La estructura de directorios debería verse así:

mi-aplicacion/
├── app.py
├── Procfile
├── requirements.txt
├── runtime.txt
└── venv/

Creación de la Aplicación en Heroku

Con el proyecto configurado, el siguiente paso es crear una aplicación en Heroku. Inicia sesión en la CLI de Heroku:

heroku login

Esto abrirá un navegador para autenticarte. Una vez autenticado, crea una nueva aplicación:

heroku create mi-aplicacion-tech

Heroku asignará un nombre único si no especificas uno. La salida será similar a:

Creating ⬢ mi-aplicacion-tech... done
https://mi-aplicacion-tech-1234.herokuapp.com/ | https://git.heroku.com/mi-aplicacion-tech-1234.git

El comando también configura un repositorio Git remoto llamado heroku. Verifica los remotos con:

git remote -v

La salida debería incluir:

heroku  https://git.heroku.com/mi-aplicacion-tech-1234.git (fetch)
heroku  https://git.heroku.com/mi-aplicacion-tech-1234.git (push)

Despliegue de la Aplicación

Con la aplicación creada en Heroku, es hora de desplegar el código. Asegúrate de que todos los archivos necesarios estén en el repositorio Git. Agrega los archivos al área de staging:

git add .

Realiza un commit con un mensaje descriptivo:

git commit -m "Primer commit de la aplicación Flask"

Despliega la aplicación a Heroku enviando el código al remoto heroku:

git push heroku main

Heroku detectará automáticamente el lenguaje de programación (Python, en este caso) y usará el paquete de compilación correspondiente. Durante el proceso, verás una salida similar a:

remote: Compressing source files... done.
remote: Building source:
remote: -----> Python app detected
remote: -----> Installing python-3.12.3
remote: -----> Installing pip
remote: -----> Installing requirements with pip
remote:        Collecting flask
remote:        Installing collected packages: flask, gunicorn
remote: -----> Discovering process types
remote:        Procfile declares types -> web
remote: -----> Compressing...
remote:        Done: 18.2M
remote: -----> Launching...
remote:        Released v1
remote:        https://mi-aplicacion-tech-1234.herokuapp.com/ deployed to Heroku

Una vez completado, abre la aplicación en el navegador:

heroku open

Esto abrirá la URL de la aplicación, que debería mostrar “¡Hola, Heroku!”.

Configuración de Variables de Entorno

Las variables de entorno son esenciales para gestionar configuraciones sensibles, como claves API o configuraciones específicas del entorno. En un sitio web de noticias tecnológicas, por ejemplo, podrías necesitar una variable para conectar con una API de noticias.

Para establecer una variable de entorno en Heroku, usa el comando config:set:

heroku config:set API_KEY=tu_clave_secreta

Verifica las variables configuradas:

heroku config

La salida será similar a:

=== mi-aplicacion-tech Config Vars
API_KEY: tu_clave_secreta

En tu aplicación Flask, accede a la variable con:

import os
api_key = os.getenv('API_KEY')

Modifica app.py para usar la variable:

from flask import Flask
import os

app = Flask(__name__)

@app.route('/')
def home():
    api_key = os.getenv('API_KEY', 'No configurada')
    return f'¡Hola, Heroku! API Key: {api_key}'

if __name__ == '__main__':
    app.run()

Realiza un nuevo commit y despliega los cambios:

git add app.py
git commit -m "Agregar uso de variable de entorno"
git push heroku main

Escalado de Dynos

Heroku utiliza dynos para ejecutar la aplicación. Por defecto, la aplicación se ejecuta en un dyno gratuito, que entra en modo “sleep” tras 30 minutos de inactividad. Para sitios web de programación con tráfico constante, es recomendable escalar los dynos.

Verifica los dynos activos:

heroku ps

La salida podría ser:

Free dyno hours quota remaining this month: 550h
=== web (Free): gunicorn app:app (1)
web.1: up 2025/12/03 22:00:00 +0000 (~ 10m ago)

Para escalar a dos dynos (requiere un plan pago):

heroku ps:scale web=2

Esto asegura que la aplicación pueda manejar más tráfico, ideal para un sitio de noticias tecnológicas durante eventos importantes.

Configuración de un Dominio Personalizado

Para un sitio web profesional, es recomendable usar un dominio personalizado en lugar de la URL predeterminada de Heroku. Supongamos que tienes el dominio www.miapptech.com.

Primero, agrega el dominio a Heroku:

heroku domains:add www.miapptech.com

La salida será similar a:

Adding www.miapptech.com to ⬢ mi-aplicacion-tech... done

Configura los registros DNS en tu proveedor de dominio. Agrega un registro CNAME que apunte a la URL proporcionada por Heroku (por ejemplo, mi-aplicacion-tech-1234.herokuapp.com).

Verifica los dominios configurados:

heroku domains

La salida mostrará:

=== mi-aplicacion-tech Custom Domains
Domain Name          DNS Target
www.miapptech.com    mi-aplicacion-tech-1234.herokuapp.com

Monitoreo y Mantenimiento

Heroku ofrece herramientas para monitorear el rendimiento de la aplicación, lo cual es crucial para sitios web de tecnología que necesitan alta disponibilidad. Usa el comando logs para ver los registros en tiempo real:

heroku logs --tail

La salida podría incluir:

2025-12-03T22:15:00.000000+00:00 app[web.1]: 10.0.0.1 - - [03/Dec/2025:22:15:00 +0000] "GET / HTTP/1.1" 200 -

Para reiniciar la aplicación en caso de problemas:

heroku restart

Si necesitas ejecutar comandos en el entorno de la aplicación, usa:

heroku run bash

Esto abre una sesión interactiva donde puedes ejecutar comandos como:

ls
python --version

Actualización de la Aplicación

A medida que desarrollas tu sitio web, necesitarás actualizar el código desplegado. Por ejemplo, agrega una nueva ruta a app.py:

from flask import Flask
import os

app = Flask(__name__)

@app.route('/')
def home():
    api_key = os.getenv('API_KEY', 'No configurada')
    return f'¡Hola, Heroku! API Key: {api_key}'

@app.route('/noticias')
def noticias():
    return 'Últimas noticias tecnológicas'

if __name__ == '__main__':
    app.run()

Realiza un commit y despliega los cambios:

git add app.py
git commit -m "Agregar ruta de noticias"
git push heroku main

Accede a la nueva ruta:

heroku open noticias

Esto mostrará “Últimas noticias tecnológicas”.

Gestión de Bases de Datos

Para un sitio web de noticias, una base de datos es esencial para almacenar artículos o comentarios. Heroku ofrece complementos como Heroku Postgres. Agrega una base de datos gratuita:

heroku addons:create heroku-postgresql:hobby-dev

La salida será similar a:

Creating heroku-postgresql:hobby-dev on ⬢ mi-aplicacion-tech... free
Database has been created and is available
 ! This database is empty. If upgrading, you can transfer
 ! data from another database with pg:copy
Created postgresql-cubic-12345 as DATABASE_URL

Heroku configura automáticamente la variable de entorno DATABASE_URL. En Flask, usa un paquete como psycopg2 para conectar con la base de datos. Instala la dependencia:

pip install psycopg2-binary
pip freeze > requirements.txt

Modifica app.py para conectar con la base de datos:

from flask import Flask
import os
import psycopg2

app = Flask(__name__)

def get_db_connection():
    conn = psycopg2.connect(os.getenv('DATABASE_URL'))
    return conn

@app.route('/')
def home():
    api_key = os.getenv('API_KEY', 'No configurada')
    return f'¡Hola, Heroku! API Key: {api_key}'

@app.route('/noticias')
def noticias():
    conn = get_db_connection()
    cur = conn.cursor()
    cur.execute('CREATE TABLE IF NOT EXISTS noticias (id SERIAL PRIMARY KEY, titulo VARCHAR(100));')
    cur.execute('INSERT INTO noticias (titulo) VALUES (%s) RETURNING id;', ('Noticia de prueba',))
    noticia_id = cur.fetchone()[0]
    conn.commit()
    cur.close()
    conn.close()
    return f'Noticia creada con ID: {noticia_id}'

if __name__ == '__main__':
    app.run()

Realiza un commit y despliega:

git add app.py requirements.txt
git commit -m "Agregar soporte para base de datos"
git push heroku main

Accede a la ruta /noticias para crear una tabla y agregar una noticia.

Conclusiones

Desplegar una aplicación en Heroku es un proceso accesible y eficiente, especialmente para desarrolladores que trabajan en sitios web de programación y noticias tecnológicas. Desde la configuración inicial del proyecto hasta la gestión de bases de datos y dominios personalizados, Heroku simplifica tareas complejas mediante su CLI y su sistema de dynos. Esta guía ha cubierto los pasos esenciales, incluyendo la preparación del entorno, el despliegue del código, la configuración de variables de entorno, el escalado de recursos y el monitoreo. Con los ejemplos de código proporcionados, los desarrolladores pueden adaptar estos pasos a sus propios proyectos, asegurando un despliegue rápido y confiable. Heroku sigue siendo una herramienta poderosa para llevar aplicaciones al mercado de manera ágil, permitiendo a los equipos centrarse en el desarrollo en lugar de la gestión de infraestructura.