Hacer el despliegue -deployment -de una aplicación Rails a la Heroku

Ya en varias ocasiones, durante platicas o reuniones relacionadas con Ruby y con Rails, me han preguntado como hacer el despliegue de una aplicación Web hacia un servidor Linux. Generalmente mi respuesta rapida es “no te metas en problema, usa Heroku”.

La recomendación de Heroku es porque no nos tenemos que preocupar de instalar ni configurar nada, solo hacemos un push de nuestro repositorio Git y el proceso de Heroku se encarga de configurar todo para tener nuestra aplicación funcionando desde Internet en cuestión de minutos.

El “detalle” con Heroku, como me han comentado, es que cuesta, me dicen, “yo lo que quiero es configurar mi propio servidor linux y ejecutar la aplicación desde ahi”. Bueno en este caso, hay muchas “recetas” de como hacerle.

Generalmente todas estas “recetas” requieren de pasos de instalación de programas y librerías como servidor web, motor de base de datos, herramientas adicionales, etc. para dejar nuestro ambiente preparado para poder desplegar nuestra aplicación web.

Cuando finalmente tenemos nuestro entorno listo, el siguiente paso es configurar Capistrano, el cual requiere de una “receta” con los pasos a realizar para desplegar la aplicación a un servidor remoto. Estos pasos incluyen instrucciones por ejemplo de a que repositorio git conectarse para tener el código fuente, realizar migraciones de base de datos, ejecutar pasos adicionales de configuración etc.

Es algo feasible, pero requiere de un poco de esfuerzo y quizas un poco de frustraciones de vez en cuando, hasta que tenemos una solución que nos agrada para el despliegue de la aplicaciones la primera vez y los cambios subsecuentes.

Hace un par de dias, y por casi casualidad me tope con Gitpusshuten, el cual es una herramienta para hacer el despliegue de aplicaciones Ruby/Rails.

Lo interesante de Gitpusshuten es que hace que el proceso de despliegue a servidores Linux sea casi tan simple como lo hace Heroku.

Gitpusshuten inclusive puede instalar y configurar todo el software y herramientas necesarias para que nuestro servidor Linux funcione como Webserver, aun si nuestro servidor es una nueva instalación.

Definitivamente si están buscan opciones para montar sus propios servidores Linux y desplegar desde ahi las aplicaciones Ruby/Rails deben de darle una revisada a Gitpusshuten, ya que en cuestión de minutos les ayudara a tener su aplicación en linea funcionado.