Diferencia entre revisiones de «Despliegue (Heroku)»

De Wiki de EGC
Saltar a: navegación, buscar
(Página creada con «En esta práctica vamos a adaptar nuestra app a un entorno de desarrollo basado en Heroku. Heroku -------------- Heroku es una empresa que ofrece "Plataformas como servic...»)
 
Línea 10: Línea 10:
 
La comunicación con heroku se realiza principalmente desde la terminal o desde la web, para ello ofrecen clientes de terminal para los sistemas operativos más usados. Asimismo, delega en un sistema de recetas el despliegue de las aplicaciones que deseemos.  
 
La comunicación con heroku se realiza principalmente desde la terminal o desde la web, para ello ofrecen clientes de terminal para los sistemas operativos más usados. Asimismo, delega en un sistema de recetas el despliegue de las aplicaciones que deseemos.  
  
 +
Para crear nuevas aplicaciones en heroku usaremos:
 
<source lang="bash">
 
<source lang="bash">
heroku create  
+
heroku create "app name"
 
</source>
 
</source>
  
Nos permite crear aplicaciones para desplegar desde un repositorio git o desde un docker.
+
Añadiendo un nuevo remote para nuestra app:
 +
<source lang="bash">
 +
heroku git:remote -a "app name"
 +
</source>
 +
 
 +
Heroku Procfile
 +
------------------
 +
Las aplicaciones Heroku incluyen un archivo Procfile en su raiz, al estilo de lo que hacíamos en la práctica anterior. Este archivo de recetas se ejecuta por una app en el arranque de la misma. En el Procfile se puede describir entre otros:
 +
 
 +
* El servidor web de tu aplicación
 +
* Distintos procesos de "workers"
 +
* Un  proceso singleton (e.g. relog, semaforos, ...)
 +
* Tareas a ejecutar antes de lanzar el despliegue.
 +
 
 +
Entonces, podremos resumir que los pasos para hacer release de decide en el procfile a crear:
 +
<source lang="bash">
 +
% prepara el repositorio para su despliegue.
 +
release: sh -c 'cd decide && python manage.py migrate'
 +
% especifica el comando para lanzar Decide
 +
web: sh -c 'cd decide && gunicorn decide.wsgi --log-file -'
 +
</source>

Revisión del 17:29 10 dic 2018

En esta práctica vamos a adaptar nuestra app a un entorno de desarrollo basado en Heroku.

Heroku


Heroku es una empresa que ofrece "Plataformas como servicios" y nos permite despreocuparnos de tareas de mantenimiento de infraestructura (por ejemplo aprovisionamiento y administración de servidores) de las soluciones que ofrecen "Infraestructura como Servicio" (Amazon EC2).

Heroku CLI


La comunicación con heroku se realiza principalmente desde la terminal o desde la web, para ello ofrecen clientes de terminal para los sistemas operativos más usados. Asimismo, delega en un sistema de recetas el despliegue de las aplicaciones que deseemos.

Para crear nuevas aplicaciones en heroku usaremos:

heroku create "app name"

Añadiendo un nuevo remote para nuestra app:

heroku git:remote -a "app name"

Heroku Procfile


Las aplicaciones Heroku incluyen un archivo Procfile en su raiz, al estilo de lo que hacíamos en la práctica anterior. Este archivo de recetas se ejecuta por una app en el arranque de la misma. En el Procfile se puede describir entre otros:

  • El servidor web de tu aplicación
  • Distintos procesos de "workers"
  • Un proceso singleton (e.g. relog, semaforos, ...)
  • Tareas a ejecutar antes de lanzar el despliegue.

Entonces, podremos resumir que los pasos para hacer release de decide en el procfile a crear:

% prepara el repositorio para su despliegue. 
release: sh -c 'cd decide && python manage.py migrate'
% especifica el comando para lanzar Decide
web: sh -c 'cd decide && gunicorn decide.wsgi --log-file -'