Lanzar una aplicación con Heroku

Lanzar una app con Heroku


En el hilo anterior desplegamos una aplicación con Apache, ahora aquí me gustaría enseñaros a hacer lo mismo con Heroku.
He de decir que no me ha sido un trabajo fácil, posiblemente por mi desconocimiento sobre como hacerlo, he hecho cuatro intentos antes de poder conseguir desplegarlo, así que mi consejo, no os frustréis y si no os sale a la primera, paciencia y después del uno el dos, esto ya es algo más avanzado.

Requisitos


Heroku es una plataforma de tipo PaaS, la cual le permite a los desarrolladores, a crear, ejecutar y operar sus apps en la nube, es decir, permite desplegar nuestras aplicaciones de forma fácil y en poco tiempo, sin necesidad de tocar la configuración del servidor y esto debido a que el server que viene por defecto, viene lo suficientemente optimizado y configurado para lanzar nuestro sistema.

Requisitos

  • Python
  • Postgres
  • Heroku CLI
  • Cuenta de Heroku
  • Git Bash
Instalar python es muy sencillo, en Ubuntu sería de la siguiente forma:
sudo apt update
sudo apt install python3.6
En caso de tener otro sistema operativo, aquí tenéis este enlace donde explica como hacerlo.
Para instalar Postgres deberemos usar los comandos:
sudo apt-get install postgresql postgresql-contrib
El siguiente paso es instalar Heroku CLI:
sudo snap install --classic heroku
Al igual que antes, esto es para sistemas Ubuntu versión 16 o superiores, aquí tenéis la documentación que explica otros sistemas operativos.
Necesitaremos tener una cuenta en Heroku
Y por último necesitaremos tener instalado Git, aquí os dejo como hacerlo si aun no sabeis y si no lo habies usado y quereís aprender más sobre el, tengo una serie de tutoriales de git.

Primeros pasos


Una vez cansado de intentar desplegar mis aplicaciones en Heroku y que me diese error, decidí seguir el tutorial de Heroku de como desplegar una apliación Django y una vez lo tuve, analicé los archivos y vi que tenia diferente, con respecto a mi aplicación, así que mi primer consejo es que intentéis desplegar la aplicación modelo que os dan ellos en el siguiente enlace.
Una vez tenemos todos los prerequisitos entraremos en nuestra cuenta de Heroku a través de su plataforma web
Vamos a configurar el proyecto, así que le damos a "Create a new app".
Ahora tendremos delante un formulario con la información que debemos rellenar, lo primero es poner el nombre del proyecto y la region donde vamos a trabajar.
Una vez hecho confirmamos y nos debe salir una pantalla similar a esta:
Hay otra forma de hacer esto que sería mediante los comandos:
heroku login
heroku create
El primer comando es para loguearnos en la aplicación, se nos abrirá el navegador ponemos nuestras credenciales y en la consola apreceremos logueados. Y el segundo es para crear la aplicación.
Este comando deberemos ejecutarlo dentro del directorio que queramos desplegar.

Configurar el despliegue


Ahora vamos a pasar a su despliegue, hay diversas formas de hacerlo, en este tutorial vamos a hacerlo mediante Heroku-Git.
Deberemos dirigirnos al directorio donde vamos a colocar nuestro proyecto.
cd Escritorio/Tutorial
Ahora inicializamos el repositorio git.
git init
Esto no es necesario en caso de tenerlo ya en git.
Ahora enlazamos el directorio local con el repositorio remoto que hemos creado previamente en Heroku.
heroku git::remote -a django-project
Tened en cuenta que donde yo he puesto "django-project" vosotros tendreis que sustituirlo por el nombre de vuestra App que habeis creado en Heroku.
Ahora para lanzar la aplicación deberemos usar los comandos:
git add .
git commit -m 'First commit'
git push heroku master
Una vez hecho el push, Heroku automaticamente instalará todas las dependencias que tenga nuestro proyecto y hará el despliegue.
¿Que bonito y que fácil no? Para nada, a ver si me habéis hecho caso y habéis desplegado el getting started de django y usais el comando:
heroku open
Recordad siempre dentro del repositorio.
Debería apareceros una imagen tal que así.
En caso de no haber hecho ese muy posiblemente nos aparecerá la siguiente imagen.

Gunicorn


Si te sale la pantalla del error, lo siguiente es lo que he hecho en mi caso para solucionarlo.
Deberemos instalar gunicorn, que es un servidor WSGI HTTP. Gunicorn nos permite administrar las peticiones simultaneas que nuestra aplicación reciba y el número de peticiones simultáneas que se pueden utilizar se indica mediante el atributo workers.
Para instalarlo solo necesitaremos usar el comando:
pip install gunicorn
Lo siguiente que deberemos hacer es crear dos archivos en el directorio raíz del proyecto, uno denominado "Procfile" y el otro "Procfile.window".
En estos archivos escribiremos lo siguiente:
Procfile:
web: gunicorn conduit.wsgi -- log-file-
Lo único que deberéis poner diferente aquí es donde yo he puesto "conduit", lo tendreis que modificar por el nombre del directorio que contiene vuestro archivo "wsgi".
Prodfile.window
web: python manage.py runserver
En este no deberéis modificar nada.
Recordad añadir el archivo "requeriments.txt", el paquete de gunicorn.
Una vez hecho esto, deberemos hacer un commit y un push con git y una vez realizado, ya debería haberse solucionado el error de la aplicación, en mi caso cuando pongo la ruta que me da Heroku, no me sale nada, pero porque a mis peticiones debo añadirle a la URL "/api" y este es el resultado.
Se ve un poco mal, pero es porque no me carga bien los archivos CSS, debo seguir investigando para ello, pero bueno hemos dado un gran paso, he de decir que no ha sido tarea facil y que ha requerido de mucho tiempo, mucho esfuerzo y cuatro intentos para conseguirlo, para ello os voy a compartir la webgrafía que he tenido que usar para poder sacar algo en claro.

Webgrafía


Comentarios

Entradas populares