Nombre: | Tutorial #7 - Heroku |
Duración: | 90 minutos |
Profesor responsable | Harold Castro, Mario Villamizar |
Pre-Requisitos: | Git, Comandos de Shell |
Al finalizar el taller el estudiante estará en capacidad de:
En particular se verán los siguientes temas:
Ingrese a la página web www.heroku.com
Haga clic en el botón SING UP FOR FREE. Complete el formulario para la creación de la cuenta.
Después de haber creado la cuenta estará en el dashboard. Este es el tablero en el que podrá controlar todas las aplicaciones que despliegue en Heroku.
Abra la consola de comandos en su máquina local y clone el repositorio utilizando el comando:
git clone
https://github.com/WeimarG/taller-api-flask.git
Cree un nuevo ambiente virtual:
python -m venv mi_nuevo_ambiente
Diríjase a la ruta donde se encuentra el activador y active el ambiente:
cd c:\ruta_repositorio_local\taller-api-flask\mi_nuevo_ambiente\Scriptsactivate.bat
Regrese a la carpeta raíz del repositorio
cd c:\ruta_repositorio_local\taller-api-flask
Instale todas las dependencias necesarias, en este caso son las siguientes:
pip install flask
pip install flask-sqlalchemy
pip install flask-restful
pip install flask-marshmallow
pip install gunicorn
Cree el archivo requirements.txt con el comando:
pip freeze > requirements.txt
Cree el archivo Procfile y dentro de él agregue la siguiente línea:
web: gunicorn app:app
Cree la Base de datos; desde la consola de comandos ejecute la instrucción:
$ python
>>> from app import db
>>> db.create_all()
>>> exit()
Cree un nuevo repositorio en GitHub y suba la aplicación a este.
Si lo desea puede realizar una copia completa del repositorio con la aplicación de prueba
Toda la aplicación de prueba la puede encontrar en el siguiente repositorio de GitHub. https://github.com/WeimarG/heroku-flask.git
Haga clic en el botón Fork. Seleccione la cuenta en la cual será agregado el proyecto.
Vaya de nuevo a su perfil en GitHub. En su cuenta debe aparecer el repositorio del proyecto heroku-flask.
Regrese al dashboard de Heroku. Seleccione la opción New/Create new app.
Asigne un nombre a su aplicación. Por ejemplo, heroku-flask-cloud. Heroku le indicará inmediatamente si ese nombre está disponible.
Haga clic en el botón Create app. La aplicación aparece en la lista de aplicaciones personales del usuario.
Para realizar el despliegue hay varias opciones disponibles. En este taller se utilizará la conexión a GitHub.
Haga clic en el botón GitHub.
Aparece el perfil del usuario que tiene abierta la sesión. Haga clic en el botón Search.
Aparece un listado de los proyectos del usuario. Haga clic en el botón Connect asociado al proyecto heroku-flask.
Estando en el dashboard de la aplicación, en la pestaña Deploy, seleccione la rama del repositorio que será empleada en el despliegue automático.
Haga clic en el botón Enable Automatic Deploy para indicarle a Heroku que despliegue nuevamente la aplicación cada vez que se haga push en la rama seleccionada.
Para desplegar el código en este instante oprima el botón Deploy Branch que está en la sección Manual deploy. Esta operación puede tardar unos segundos.
Cuando se haga un push en la rama seleccionada de su proyecto en GitHub, Heroku desplegará automáticamente la nueva versión de la aplicación. En Heroku se puede verificar el proceso de despliegue en la pestaña Activity.
En el navegador, abra una pestaña con el url de la aplicación. En este caso, https://heroku-flask-cloud.herokuapp.com/publicaciones
Si lo prefiere, haga clic en el botón Open app.
En el navegador aparece la aplicación en ejecución.
Para complementar el despliegue de una aplicación, Heroku pone a disposición los Add-ons. Estos son servicios manejados para logging, bases de datos, colas, etc. que pueden ser fácilmente aprovisionados. Estando en la pestaña Resources haga clic en el botón Find More add-ons.
Suponga que se requiere agregar un servicio de caché.
En la barra de búsquedas ubicada en la parte superior de la ventana, escriba cache para buscar los add-ons relacionados, disponibles en Heroku.
Haga clic en el botón MemCachier.
Por lo general, los add-ons tienen varias categorías de cobro en las que proveen una capa para developer. En la misma ventana se pueden ver los planes en la parte inferior.
En la parte inferior de la página de cada add-on aparecerá la documentación para implementarlo dependiendo del lenguaje de programación que use su aplicación. Verifique que el add-on sea compatible con su proyecto.
Haga clic en el botón Login to Install, si es necesario. Luego haga clic en el botón Install MemCachier y asociarlo con su proyecto. Posteriormente, el add-on aparecerá en la pestaña Resources de su aplicación.
Independiente del lenguaje de programación que se utilice en un proyecto, Heroku siempre solicita que se cree el archivo Procfile en la raíz del proyecto. Este archivo contiene el comando que Heroku ejecutará al recibir el código para iniciar la aplicación.
Ejemplo de Procfile para Ruby
web: bundle exec puma -C config/puma.rb
Ejemplo de Procfile para Python / Django
web: gunicorn gettingstarted.wsgi --log-file -
Ejemplo de Procfile para Java
web: java $JAVA_OPTS -cp target/classes:target/dependency/* Main
Ejemplo de Procfile para Node.js
web: node index.js