sábado, 4 de abril de 2015

Heroku


​En este nuevo post les vengo hablar de Heroku, porque quiero terminar los puntos sobre el desarrollo web que nombre en el primer post. Luego continuaré con los frameworks Django, Yesod y Catalyst.


Heroku es una plataforma como servicio de computación en la Nube (PaaS Platform as a Service), que tiene soporte a distintos lenguajes de programación como Ruby, Python, Haskell, Java, entre otros.

1 - Registro e instalación de Heroku


Lo primero que necesitamos es registrarnos totalmente gratis en página oficial, damos nuestro email, creamos contraseña, validamos correo... típico registro.

En segundo lugar instalamos la herramienta en nuestra computadora, según el sistema operativo que tengamos. Visita la ​​página de descarga aquí. En el caso de linux podemos descargar con el siguiente comando ​wget -qO- https://toolbelt.heroku.com/install-ubuntu.sh | sh.

2 - Llave

Al tener nuestro sistema en la nube necesitamos autenticar y vincular a nuestra computadora con nuestra cuenta de Heroku y para eso generamos una llave de acceso con el siguiente comando ssh-keygen -t rsa -C "usuario@dominio.com". Lo dejamos en el directorio por defecto por motivos de facilidad y creamos una contraseña.

Luego Heroku necesitará acceder a nuestro archivo .netrc en el home de nuestro usuario y para eso ejecutamos el comando chmod 0600 ~/.netrc

Y para comunicarle finalmente a Heroku ejecutamos heroku keys:add, el cual añadirá la llave creada a la lista de llaves de nuestro usuario en Heroku, ya que se nos pedirán el email y contraseña que usamos en nuestra cuenta creada en el paso anterior.

Para saber más sobre llaves consulta la documentación oficial.

3 - Usar la herramienta

Ahora podemos iniciar sesión con el comando heroku login cada vez que queramos.

En este momento podemos configurar aplicaciones ya existentes y subirlas a la nube. Para eso existen pasos muy específicos dependiendo del framework o lenguaje de nuestra aplicación, pero todos tienen en común el uso de Dynos, las cuales son son piezas fundamentales dentro de la herramienta Heroku.

Un Dyno es una instancia de una computadora en la que tenemos corriendo nuestro proyecto y para que este sepa como hacerlo, le proveemos la información para iniciar la ejecución de la aplicación a través del archivo llamado Procfile. Este archivo luce así:

Podría en este punto decirles los cambios específicos que son necesarios dentro de un proyecto para lograr subirlo a la nube, pero por motivos de genericidad de este tutorial prefiero continuar con los siguientes pasos necesarios. Aquí les comparto en todo caso los links para configurar una aplicación en Rails, Django o Yesod.

Uno de los pasos que necesitamos es entrar en nuestra aplicación y ejecutar el comando ​​heroku create​ y veremos que se creará una aplicación asociada a nuestra cuenta.

Luego necesitmos notificar al repositorio que se creo de nuestra aplicación, y para eso retomamos Git (instalamos con sudo apt-get install git en el supuesto de que no lo tengan todavía) y en caso de no recordar los comandos de consulten el post sobre herramientas de desarrollo. Lo primero es agregar los archivos git add . luego crear el commit git commit -a y finalmente subir lo que tenemos git push heroku master, aquí se solicita siempre la clave de nuestra llave creada en el primer punto. ​

Al terminar de subirse nuestros archivos tendrás un link parecido a este: ​fathomless-plateau-6378.herokuapp.com donde la primera parte del link es el identificador de nuestra aplicación y ahora tendrás la aplicación en linea!

Claro necesitamos por lo general migrar al estado de la base de datos que tengamos en el sistema y para eso ejecutamos en el caso de Rails heroku run rake db:migrate (también tendremos que configurar la base de datos dependiendo de nuestra aplicación). Heroku por defecto trabaja con el manejador de base de datos Postgres.

Tendremos la disponibilidad de ejecutar cualquier otro comando en el servidor y para eso necesitamos sólo correr ​heroku run bash y estaremos en la consola del servidor.

5 - Vista web

Contamos también con la vista la página web de Heroku para manejar todas nuestra aplicaciones y para eso accedemos a dashboard.heroku.com y tendremos una página como esta:


Y para manejar una aplicación en particular, accedemos al link y veremos una página como esta:


En la página podemos ver que se puede controlar la cantidad de Dynos, Workers, bases de datos y Addons que usemos. Ya a partir de este punto notamos que podemos empezar a invertir dinero al usar los recursos, pero por suerte con la configuración básica podemos aprender y hacer pruebas de manera gratuita.

Entre otras opciones podemos controlar el acceso de otros desarrolladores, ver actividad del repositorio, visitas y configurar dominios, nombre, variables de entorno y propiedad de aplicación.

4 - Addons

Los addons son los programas que podemos instalar en el servidor y este es ciertamente uno de los mayores atractivos de Heroku. Podemos acceder a addons.heroku.com y ver la gran cantidad y variedad de addons disponibles.


Particularmente les recomiendo revisar el addon de Postgres, el cual permite aumentar la cantidad de filas en la base de datos según lo que necesitemos. Noten el cambio de precio según el plan que escojamos, pero nuevamente digo que podemos desarrollar completamente gratis si usamos los planes básicos.


Otra herramienta es Scheduler ya que permite colocar tareas en nuestro servidor que se ejecuten diariamente, por hora o cada 10 minutos. Herramienta muy útil para hacer respaldos, actualizaciones, mantenimiento, entre otros.

Exiten otras herramientas PaaS como alternativa a Heroku y las más populares son:
Si algo no queda muy claro siempre me pueden escribir a mi correo tonylattke@gmail.com o también pueden dejar comentarios al final de este post y trataré de ayudarles lo antes posible.

No hay comentarios:

Publicar un comentario