Introducción
Heroku es un servicio en la nube la cual nos ofrece una plataforma para hacer hosting de código. Es de gran utilidad ya que nos permite hacer pruebas de las aplicaciones que estamos desarrollando, y esto de una manera gratuita, aunque también podemos pagar para obtener mas servicios.
Los lenguajes que soporta Heroku son los siguientes:
- Ruby
- Java
- Node.js
- Scala
- Clojure
- Python
- PHP
- GO
Primeros Pasos
Lo primero que tenemos que hacer para poder utilizar Heroku es hacer una cuenta de Heroku, el link a la pagina para poder crear una cuenta es esta.
Ya que tenemos la cuenta creada procederemos a crear la aplicación, es decir, el espacio en el servidor de Heroku para hacer el deployeo y también inicializa un repositorio de Git vació que es el que se utilizara para hacer deployeos automáticamente de GitHub. Para explicar como se hace el deployeo utilizaremos el siguiente repositorio de GitHub.
Teniendo la cuenta de Heroku creamos una cuenta nueva. Esto lo hacemos dando clic en new.
Le daremos el nombre de test-cucei a la aplicación. Sera necesario que le den un nombre diferente ya que este estará ocupado.
Hay dos principales métodos que para hacer deployeo a Heroku.
Deploy con GitHub
Para hacer el deployeo de GitHub es necesario conectarte con tus credenciales dentro de Heroku. Ya que estas conectado tienes que escoger el repositorio que quieres deployar. En este caso estaremos deployando el repositorio del link. Es necesario copiar este repositorio en alguno de tu cuenta.
Ya que buscamos el repositorio tenemos que conectarnos.
Ya que esta hecha la conexión, tenemos dos opciones para deployar:
- Manual
- Automático
Deploy Manual
Nos permite deployar el código que se encuentra en master dando clic en un botón cuando lo queramos hacer. Este método es mas tardado en la practica, ya que tenemos que loguearnos a Heroku y dar clic.
De ser necesario podemos escoger una rama aparte de master, esto por lo general se hace cuando queremos hacer pruebas.
Deploy Automático
Con este método de deployar hacemos que automáticamente al hacer un Push a una rama especificada. Es necesario mantener esta rama deployable, es decir, tiene que estar sin errores para que pueda ejecutarse en el servidor. Por esta razón se recomienda escoger como rama master.
Como utilizar método manual
Procederemos a utilizar el método manual para observar como funciona. Damos clic en Deploy Branch y escogemos la rama de master. Tardara un rato en hacer el Deploy, ya que tiene que instalar todas las dependencias de Node que se encuentran en package.json.
Si todo salio sin errores deberemos de ver algo así en Heroku.
Damos clic en View para poder ver la aplicación ya montado en el servidor.
Como utilizar método automático
Para utilizar el método automático para deployar, damos clic en Enable Automatic Deploy. Si todo funciono correctamente deberíamos de observar algo así:
Con esto cada vez que hagamos Push en la rama de master al repositorio GitHub de la aplicación, este sera deployado automáticamente.
Por ejemplo si comiteamos lo siguiente a master.
Estos cambios se verán reflejados en la aplicación que tenemos montada en el servidor. Es por esta razón que debemos de tener en cuenta que la rama que esta configurada para realizar los deploys automáticos deberá de ser deployable, para evitar errores.
Procfile
Para que la aplicación funcione de una manera correcta es necesario definir el procfile, este archivo le indica al servidor que comando ejecutar primero.
En este caso es necesario definir un archivo con el nombre Procfile, sin extensión con el siguiente texto.
1 |
node app.js |
Esto le indica al servidor que el archivo de app.js deberá de ejecutarse con node, con este arrancamos el programa en el servidor.
Variables de entorno
Si queremos utilizar variables de entorno para nuestra aplicación es necesario configurar las en la parte de settings en Heroku.
Por ejemplo, si queremos conectarnos a una base de datos de la siguiente manera.
1 2 3 4 5 6 7 8 |
constructor() { this.connection = mysql.createConnection({ host: process.env.DB_HOST, user: process.env.DB_USER, password: process.env.DB_PASS, database: process.env.DB_NAME, }); } |
Podemos definir las variables dentro de Heroku para poderlas utilizar.
ClearDB
ClearDB es un recurso el cual nos proporciona 5MB de almacenamiento en una base de datos MySQL. También hay mas opciones en cuanto a almacenamiento, en esta aplicación utilizaremos la versión gratuita. Cabe mencionar que para utilizar recursos de Heroku es necesario proporcionar una tarjeta de crédito, aunque no se utilicen recursos de paga.
Nos vamos a la parte de Resources y aquí ingresamos ClearDB para agregar el recurso.
Escogemos la versión Free que es la gratuita, es precisamente esta la cual nos proporciona 5MB de almacenamiento.
Accedemos a la pagina de ClearDB, la cual se encuentra en Resources y de aquí obtenemos las credenciales para podernos conectar a la base de datos.
Conclusiones
En pocas palabras para deployar de GitHub a Heroku es necesario seguir los siguientes pasos:
- Crear una nueva aplicación en Heroku
- Conectarte a tu cuenta de GitHub en Heroku
- Escoger el repositorio para la aplicación
- Deployar de manera automática o manual