OpenShift Logo

OpenShift es un software de plataforma como servicio (PaaS, por sus siglas en inglés) de computación en la nube de la empresa Red Hat. Está programado en Ruby y licenciado bajo Apache License 2.0 por lo que es software libre.

Es importante aclarar que puede usarse de varias formas: mediante su servicio público OpenShift Online, mediante su plataforma de pago Openshift Enterprise, o instalando el software OpenShift Origin en nuestra propia infraestructura.

Plataforma como servicio (Platform as a service)

PaaS es un modelo de servicio de computación en la nube donde se nos ofrece (básicamente) un servidor de aplicaciones y un motor de base de datos, donde se alojará y ejecutará una aplicación. En este modelo la única preocupación es la construcción (desarrollo, implementación y mantenimiento) de la aplicación, ya que la infraestructura y su mantenimiento nos lo da la plataforma.

Dicho de otro modo, para poner en funcionamiento una aplicación al software PaaS le diremos qué características necesitará nuestra aplicación, le daremos el código (o los binarios) y la información que usará, y de forma automática nos entregará la aplicación ya instalada y funcionando.

Este modelo reduce bastante la complejidad al momento de mantener aplicaciones, dado que además de omitir el mantenimiento de la infraestructura en la nube, las plataformas gestionan automáticamente la escalabilidad usando más recursos si fuera necesario. El desarrollador debe preocuparse únicamente de aspectos como el desarrollo propiamente dicho, la seguridad del código, mantenerla actualizada en producción, etc. sin tocar aspectos del sistema operativo o la red.

Se diferencia de soluciones IaaS (Infraestructura como servicio) en que no estamos adquiriendo recursos como procesamiento, memoria y almacenamiento para montarnos nuestros propios servidores, sino que estamos adquiriendo recursos de un servidor ya instalado y con una plataforma de software funcionando. Así como también se diferencia del SaaS (Software como servicio) porque en este último estamos adquiriendo también la aplicación ya instalado y su soporte y mantenimiento, de lo cual en el PaaS nos encargaremos nosotros.

Para desarrolladores que no desean gastar recursos en montar o mantener una infraestructura y solo quieren preocuparse por el mantenimiento del software es la solución ideal, aunque suelen ser un poco más caras que soluciones IaaS.

Uso de OpenShift

Una vez tenemos una cuenta, en el caso de OpenShift Online, dispondremos de un panel de control web para gestionar los gears (aplicaciones). Para el plan gratuito podemos tener hasta 3 gears pequeños (512MB de RAM, 1GB de disco) con tiempo ilimitado. También disponemos de acceso por SSH, limitado a comandos básicos y transferencia de archivos por SFTP.
A modo de aclaración, cada gear está pensado para correr una única aplicación, intentar correr más de una aplicación dentro de un mismo gear es un trabajo artesanal y no recomendado.

Cartridges

Los cartridges proveen diferentes tecnologías para ser usadas por las aplicaciones de OpenShift. Toda aplicación requiere al menos uno que le indique qué lenguaje usar (por ej. Java, PHP, Ruby, etc.). Otros agregan funcionalidades útiles como bases de datos y herramientas varias (Cron y Jenkins son buenos ejemplos).

Es posible crear nuevos cartridges con tecnologías no disponibles en OpenShift siempre y cuando puedan correr en un ambiente Fedora de 64bits (sistema que usa OpenShift Online), o Red Hat Enterprise Linux para OpenShift Enterprise. Aquí hay algunos ejemplos y material sobre cómo crearlos.

Aplicaciones

El código de las aplicaciones se provee mediante un repositorio Git, por lo cual de ser una aplicación propia tendremos que disponer de un repositorio a donde subir el código, así como para aplicaciones que no se encuentran en repositorios Git.

De todos modos, OpenShift cuenta con las llamadas Instant Apps que son combinaciones prearmadas de cartridges y código, lo cual nos ayuda a montar aplicaciones fácilmente. Algunos ejemplos son WordPress, Drupal, OwnCloud, DokuWiki, Moodle, etc.

¿Por qué elegir OpenShift Online / Enterprise?

Además de la posibilidad de correr aplicaciones de forma gratuita en una plataforma confiable (técnicamente) de Red Hat, la posibilidad de escalado, la metodología de trabajo (git-to-deploy) y la comunidad que hay detrás me han motivado a probarlo. También me parece interesante el hecho de que ofrecen planes gratuitos para proyectos educativos y de código abierto.

Otro dato interesante es que según la estimación del sitio de OpenShift, un sitio web en Drupal funcionando en un gear pequeño debe tener aproximadamente 50 mil visitas mensuales antes de que sea necesario pagar por una ampliación. Ideal para proyectos pequeños.