mariochavez

mariochavez

Publicado
Septiembre 9, 2013

Próximos Eventos

Blog

Nitrous.IO un ambiente fácil de instalar para Ruby on Rails.

Configurar un ambiente de desarrollo para Ruby on Rails es todo menos una tarea sencilla. No es "rocket science", pero generalmente se presentan problemas que arruinan la experiencia de configuración.

Cuando he tenido que dar un taller, generalmente comparto mi guía de instalación para Windows, Linux o OSX. El problema de mi guía es que los pasos pueden cambiar con el tiempo y que algunas otras aplicaciones previamente instaladas en los equipos de quien intenta seguirlas, causan conflictos que una vez más arruinan la experiencia.

En el caso de Windows y OSX el uso de RailsInstaller es una gran ayuda, el único problema es que la experiencia de desarrollar en Windows puede no ser la optima con gemas o librerías que no funcionan correctamente o donde se tiene que hacer trabajo manual de compilación.

Para OSX aparte de RailsInstaller hay trabajo realizado con Tokaido que promete una instalación muy sencilla, pero que aún no es una realidad del todo.

Afortunadamente no todo esta perdido y parece que "la nube" puede ser una solución bastante buena.

Nitrous.IO

Nitrous.IO los conocí hace tiempo cuando se llamaban Action.IO. Nitrous.IO ofrece la posibilidad de crear "Boxes" para desarrollo pre configuradas con Ruby on Rails, pero también es posible utilizarlas para desarrollo con Python, Go y NodeJs.

Cada Box es una virtualización de Linux a la cual se le pueden agregar recursos como espacio en disco y memoria, pero además ofrece las siguientes características que lo ponen como una opción seria de desarrollo.

Editor Web

Este es un editor totalmente en linea, cuenta con un navegador de archivos, un editor multi tab y acceso a la linea de comandos.

image alt

Desde la interface web es posible navegar los directorios en nuestra máquina virtual y abrir cualquiera de ellos con un simple "click". También es posible cargar nuevos archivos desde nuestra máquina a Nitrous.

Otra de las funcionalidades consiste en poder tener una consola de comandos tipo "\nix"* donde podemos ejecutar cualquier comando de la máquina virtual de Nitrous que no requiera de permisos de root.

Finalmente en el editor tenemos la opción de colaborar con la cual podemos invitar por medio de email a otras personas de colaborar en tiempo real, ademas de contar con un chat donde es posible conversar con las personas que estén colaborando.

Todo nuestro código se guarda en la máquina virtual de Nitrous y si usamos un sistema de control de código fuente, como por ejemplo git, desde el panel de terminal podemos realizar commit y empujar esos cambios a un servidor remoto.

Nota: Para este caso es necesario agregar las llaves que se encuentran en ~/.ssh a el control de acceso de nuestro repositorio.

Acceso SSH

Esta quizás es una de las funcionalidades mas poderosas para mi, ya que la máquina virtual de Nitrous permite acceso mediante SSH a la misma; esto nos da la posibilidad de usar la terminal nativa de nuestro sistema operativo y utilizar herramientas como Vim y Tmux, que viene instalados por defecto.

image alt

En mi caso utilizo una configuración especifica de Vim y Tmux, la cual me fue posible instalar sin problemas. Inclusive cree unas recetas de Chef que me permiten configurar la máquina virtual de Nitrous a mi gusto.

Todo es tan simple como clonar mis recetas a la máquina virtual ir al directorio chef-solo y ejecutar el siguiente comando para tener una personalización de Vim y Tmux:

$ chef-solo -c solo.rb -j web.json

El acceso mediante SSH abre la posibilidad, por ejemplo, de utilizar un iPad con un teclado externo para desarrollar, solo es necesario instalar un cliente de SSH.

image alt

Mac app

Si cuentas con una Mac, Nitrous ofrece una aplicación para la barra de notificaciones desde donde puedes ver:

  • Cuantas máquinas virtuales tienes
  • El estado de las mismas (encendidas|apagadas)
  • Manejar las máquinas virtuales
  • Abrir una sesión de SSH para alguna de las máquinas
  • Abrir el IDE web para alguna de las máquinas
  • Activar la opción de sincronizar archivos (* mas detalle adelante)
  • Hacer port-forward (* mas detalle adelante)

image alt

Sincronizar archivos

Con la aplicación Mac es posible activar la opción de sincronizar archivos entre un directorio local y la máquina virtual, este permite el poder usar algún otro editor, como TextMate por ejemplo, y cada que se guarde un archivo se sincronice con Nitrous y poder ejecutar las pruebas o ejecutar la aplicación desde allá de forma transparente.

Port-forward

Esta funcionalidad permite conectar un puerto de la máquina virtual, por ejemplo el 3000, como un puerto local, con lo cual si queremos ver nuestra aplicación ejecutándose, en lugar de usar la URL larga que proporciona Nitrous, podemos navegar a http://localhost:3000

¿Qué viene instalado en la máquina virtual?

Al momento de crear una máquina de Nitrous, configurada para Ruby on Rails, esta viene configurada con:

  • Ubuntu OS
  • Ruby 2.0.0-p247 (Máquinas nuevas de hace una semana)
  • Rails 4.0.0
  • RVM
  • Vim
  • Tmux

La máquina virtual no nos ofrece acceso de root, por lo que no podemos instalar paquetes al sistema, pero si viene con los compiladores y headers necesarios, por ejemplo, para descargar el código fuente de alguna versión de Ruby e instalarla.

Tampoco viene con base de datos instalada, por lo que es necesario usar algún servicio de Cloud, como por ejemplo Heroku Postgres.

Aunque para algunos usuarios nos llego la invitación beta para un servicio con el cual es posible instalar motores de base de datos de la máquina virtual y de esa forma contar con un ambiente completo de desarrollo.

¿Cuanto cuesta Nitrous?

Para tener una máquina virtual en Cloud con 512 Mb de RAM y 750Mb de espacio, el costo es gratuito, para agregar más recursos el costo varia dependiendo de estos y son en modalidad de renta mensual.

Si quieres registrarte y tener acceso a una máquina virtual, puedes usar mi código o bien ir directamente a Nitrous.io.

Comentarios finales

Si quieres contar con una instalación de Ruby on Rails simple y que este disponible desde donde te conectes con la máquina que te conectes, no puedes dejar de pasar la oportunidad de probar y desarrollar en Nitrous, no encontraras forma mas simple de tener un ambiente de desarrollo.