Google Apps es de pago

(llego muy tarde a esto, disculpas)

Hace mucho mucho tiempo, Google sacó Google Apps con su edición gratuita. Nos daba una posibilidad de usar las aplicaciones de Google (GMail, Docs [ahora Drive], etc.), bajo un dominio propio y con administración centralizada de usuarios. ¡Y gratis!

Y hubo gran regocijo y cantidad de gente con dominio propio se hizo la cuenta gratuita, migró su correo y demás a Apps (perdiendo datos o con gran trabajo- yo tengo pesadillas de cuando pasé mis estrellitas de Google Reader…) y contempló maravillada la nueva realidad.

Inicialmente, Apps era gratuito hasta 25 usuarios, y a parte de ese límite, las características de la versión de pago no eran tan atractivas (si no recuerdo mal, más espacio, herramientas para migrar correo e integración con directorios, básicamente). Naturalmente, no sólo particulares se hicieron esto sino que empresas (sospecho que muchas) se pasaron a Google Apps.

Puedo entender la frustración que sintieron en Google al comprobar cómo empresas con ingresos para las que tendría todo el sentido del mundo contratar la versión de pago por un coste ínfimo (40€/usuario/año es ridiculo comparado con, pongamos, lo que cuesta el empleado- imaginad como os sentiríais si os aumentasen en 40€ el sueldo bruto anual…), utilizaban la versión gratuita (que Google vendía como para pequeñas asociaciones, familias y otras entidades no precisamente con ánimo de lucro). Obviamente no se trata de nada ilegal, e incluso si pensamos que Google es una empresa enorme con unos beneficios inimaginables, podemos defender que no se trata de algo inmoral siquiera… pero insisto, puedo comprenderles.

Así pues, fueron recortando. La versión gratuita se iba ocultando más y más, luego se redujo el límite de 25 a 10 usuarios y finalmente, se eliminó completamente.

Dos apuntes:

Uno, es posible que las empresas que “abusaron” (insisto en las comillas), hayan hecho que los verdaderos destinatarios del invento lo hayan perdido.

Dos, para los friquis que lo echamos de menos… ¿realmente aporta tanto? Lo más visible es el dominio personalizado para los emails, pero con las opciones de accounts y forwarding, se puede simular bastante bien con el GMail tradicional. La gestión centralizada de usuarios… vaya, si la necesitas es porque tienes bastantes usuarios (probablemente, más de 25).

Unos apuntes rápidos sobre Vagrant

En las últimas semanas he estado jugando bastante con Vagrant. Se trata de una herramienta para automatizar el uso de VirtualBox (de momento).

Básicamente, uno define en un Vagrantfile un conjunto de máquinas virtuales, basándose en unas máquinas virtuales plantilla (boxes, en su terminología), especificando los parámetros de virtualización (configuración de red, principalmente) y un mecanismo de provisionado (soporta Puppet y Chef, pero también podemos usar scripts de shell de toda la vida, por ejemplo).

Hacer boxes nuevos es bastante sencillo (básicamente, hay que usar unos usuarios y contraseñas establecidos, instalar las Guest Additions de VirtualBox y poco más), si bien un poco laborioso, aunque existen repositorios como www.vagrantbox.es que tienen bastantes boxes listos para descargar.

Con los boxes y el Vagrantfile, podemos arrancar rápidamente templates de, pongamos, Centos 6.3 con la red configurada y una carpeta compartida con el host (por defecto, la carpeta donde está el Vagrantfile se ve como /vagrant en la máquina virtual), algo que realmente no ahorra muchísimo tiempo respecto a hacerlo con VirtualBox desde cero, pero que es más conveniente.

Mediante el provisionado o el uso de boxes “tuneados”, podemos resolver bastante bien el típico problema de montar entornos de desarrollo en proyectos complejos. Podemos empaquetar un entorno ya configurado como box o box + script de provisionado, junto con un Vagrantfile que se puede editar fácilmente para adaptarlo a la máquina de cada desarrollador en concreto, con el que levantar la máquina ya configurada será cuestión de minutos, cuando anteriormente podían ser horas o llevarnos a la tentación de tener entornos de desarrollo más sencillos y menos parecidos que el de producción.

Pero yo el uso que le veo más interesante es para la administración de sistemas, pues nos permite adoptar un modelo bastante parecido al de desarrollo de software con test unitario. Podemos “desarrollar” nuestros sistemas como Vagrantfiles + scripts de provisionado; idóneamente con esto deberíamos conseguir levantar el sistema desarrollado completamente automatizadamente. Si conseguimos esto, el Vagrantfile y el script de provisionado es una documentación “perfecta” de lo que es el servidor; recoge al detalle cómo se configura todo e incluso podemos ejecutar el provisionado en el sistema “de producción” y asegurarnos entonces que disponemos de una máquina virtual y un sistema de producción idénticos. Tras tener esto, podemos hacer todas las pruebas que queramos en el entorno virtual, como instalar actualizaciones, probar cambios de configuración, sustituir programas… y las podemos probar simplemente destruyendo el entorno y recreándolo a partir del Vagrantfile y el provisionado. Podemos hacer pruebas una y otra vez de scripts para actualizar la configuración en el entorno virtual y luego lanzarlas en producción con un gran nivel de seguridad.

Lo único que le faltaría sería soportar algún mecanismo de verificación automático, pero es un detalle pequeño.

Aún así, Vagrant no es perfecto. Al parecer, ahora mismo sólo soporta VirtualBox (en teoría están trabajando en abstraer el código que trata con el sistema de virtualización, pero no queda claro su status); sería fantástico que se integrase con sistemas de virtualización más “de servidor” como VSphere o KVM, para poder pasar los sistemas montados con Vagrant a producción más automatizadamente (y poderlos probar sobre el hipervisor “final”). También echaría de menos un mecanismo para automatizar la actualización de boxes (e.g. hacer un yum update periódicamente a los box y que se reempaquetase, de manera que estuviesen siempre al día).

También cabe argumentar que realmente Vagrant es una capa muy fina sobre VirtualBox, y que se podría conseguir algo similar mediante las herramientas de línea de comandos de VirtualBox, pero aún así considero que más allá del detalle técnico, los desarrolladores de Vagrant han conseguido una herramienta muy usable y que resulta atractiva… algo que muchas veces es un gran factor a la hora de adoptar una herramienta nueva que te permite hacer cosas de una manera nueva.

En definitiva, ánimo a que probéis Vagrant, tanto para desarrollo como para administración de sistemas. Seguramente para lo segundo no aporte demasiado en entornos “serios”, pero para el “aficionado” puede ser muy interesante.