A partir del 8 de diciembre de 2014, este blog está alojado en OpenShift, el PaaS de RedHat y quiero compartir mi experiencia de uso y configuración de un PaaS.
Un PaaS es servico al cual se le entrega la aplicación y más o menos auto-mágicamente la aplicación queda presentada en Internet. En el caso de este blog la aplicación es WordPress por lo que me limité a subir el código (de mi template, idioma, etc.) y mis datos (archivos) y aquí lo estás viendo. Por otro lado, el PaaS permite despreocuparse de la infraestructura y la plataforma, es decir, que no debo pensar en la versión del sistema operativo ni su actualización, su configuración, las políticas de seguridad, la red, los usuarios, en fin, nada que no sea estrictamente mi aplicación.
Obviamente, un servicio PaaS es más caro que un servicio de infraestructura de cloud computing (IaaS), el cual a su vez es más caro que un simple VPS fuera de una arquitectura de cloud computing, solamente por el hecho de que hay servicios que alguien está prestando y sobre los que tu no debes preocuparte.
Pero volviendo a OpenShift debo decir que mi primer impresión ha sido muy positiva y creo que hay cosas que diferencian a esta oferta de PaaS sobre otras.
OpenShift ofrece «contenedores» que llama gears y que en la cuenta gratis se pueden tener hasta 3 de los más chicos. Los gears poseen quota de recursos por cgroups y están orientados a alojar una aplicación cada uno. Si bien se podría alojar más de una aplicación, solo un dominio internet puede referenciar a cada gear y creo que no vale la pena el esfuerzo intelectual e alojar muchas aplicaciones en uno solo y luego mantenerlas.
Adicionalmente, Openshift ofrece servicios que pueden ser incoprorados a un gear y que llama cartridges. De esta forma se puede levantar un gear con PHP y luego agregarle MySQL, luego CRON, luego POSTFIX, etc., según la aplicación vaya requiriendo.
Aquí dejo un esquema de la arquitectura de openshift completa:
aunque sugiero ir a un sitio interactivo que explica cómo OpenShift funciona de una forma muy dinámica y comprensible.
Openshift ofrece aplicaciones pre-instaladas con las cuales iniciar un gear, como WordPress, Cacti, Redmine, Drupal, OwnCloud, Tomcat, Node.JS, etc., o simplemente lenguajes para luego montar nuestra propia aplicación; Ruby, Python, Java, PHP.
Una vez arrancado el gear con la aplicación pre-instalada se clona un repositorio git y luego se modifica la aplicación localmente, para hacer un ‘git push’ con los cambios, que quedan activados inmediatamente.
Para administrar openshift, además de la interfaz web, existe una herramienta de línea de comando muy simple de instalar con ruby. Pero lo que realmente me enamoró de OpenShift es la posibilidad de poder hacer ssh al gear y tener línea de comandos; poder subir mis datos (yo hice una migración) mediante scp o rsync, lo que acerca OpenShfital nivel que conozco (de IaaS) y en el cual me siento cómodo.
No he utilizado otros PaaS, pero a mi me ha resultado simple poner mi blog y mi wiki a correr en OpenShift; con una pequeña curva de aprendizaje para conocer su filosofía de trabajo para el mantenimiento de mi aplicación y mis datos, ya ven todo online.
Excelente Post, hace un rato ando leyendo al respecto debido a que en el CISCO Live de 2015, se menciono mucho de OpenShift y OpenStack.