Proyecto de Cloud Computing con OpenStack


Acabamos de entregar toda la documentación del proyecto de innovación en el que he estado ocupado el último año. Ha sido un año de mucho trabajo, pero creo realmente que ha valido la pena, tanto por lo interesante del tema como por la gente con la que he trabajado.

Pusimos un nombre bastante enrevesado al proyecto, pero realmente trataba sobre la implantación de un cloud privado para docencia en un centro educativo en el que se imparten enseñanzas de informática. El proyecto ha conseguido los objetivos previstos y actualmente todos los centros participantes tenemos a disposición de nuestros alumnos un cloud privado que abre unas posibilidades educativas enormes.

Todos los materiales desarrollados en el proyecto están publicados con la licencia Creative Commons BY-SA y los tenéis a vuestra disposición en www.gonzalonazareno.org/cloud, en esta entrada haré un breve resumen sobre esta experiencia.

¿Qué es eso del cloud computing?

En primer lugar una palabra de moda :-), pero es mucho más que eso y no hay que ignorarlo pensando que es un término más de esos que utilizan los comerciales para vender humo. Es cierto que ahora todo lleva el apellido cloud, pero independiente de esta tendencia cosmética para muchos productos, hay subyacente una importante revolución tecnológica que no debemos ignorar.

El término cloud o nube, proviene de un cambio de paradigma en el que la informática pasa a ofrecer servicios de computación a través de una red (habitualmente Internet). El usuario de estos servicios no necesita conocer a qué equipo se conecta realmente ni las características de hardware o software del mismo, además los requisitos en el equipo del usuario suelen ser mínimos. Pasamos del esquema tradicional de un PC que utiliza sus propios recursos de hardware y que tiene todo el software instalado y configurado en local, a otro en el que un usuario se conecta a una nube y utiliza los recursos de software y hardware remotos.

En primer lugar, hay que aclarar que no hay un solo tipo de cloud, sino que podemos dividir esta tecnología en tres tipos claramente diferenciados, dependiendo de lo que realmente ofrezcan a sus usuarios como servicio:

  • Software as a Service (SaaS): Lo que se ofrece en la nube es software. No es necesario que el usuario instale ningún programa en su equipo, simplemente accede a un recurso web remoto y utiliza el software allí instalado y configurado. El SaaS es una realidad ya hoy que utilizamos la mayor parte de usuarios de Internet y que probablemente sea una tendencia creciente: Google Apps, Salesforce, Microsoft Office 365, etc. son algunos de los SaaS más utilizados y conocidos.
  • Platform as a Service (PaaS): Lo que se ofrece en la nube es la posibilidad de desarrollar o desplegar aplicaciones. Con este esquema cambia la forma tradicional de desarrollar software con los recursos propios. Algunas de las plataformas de PaaS más conocidas son Google App Engine, Windows Azure o Red Hat OpenShift.
  • Infraestructure as a Service (IaaS): Lo que se ofrece en la nube son capacidades de cómputo (máquinas) y almacenamiento, que sustituyen a los servidores físicos tradicionales de las empresas. Sin duda ninguna el IaaS más conocido y utilizado del mundo es Amazon Elastic Compute Cloud (EC2) y Simple Storage Service (S3).

La utilización del cloud ofrece enormes ventajas económicas, ya que se factura por uso y los recursos son fácilmente adaptables a las necesidades del momento, pero también aparecen nuevas e importantes contrapartidas: ¿una empresa va a prescindir de todos sus servidores y va a pasar todo su hardware a la nube? ¿quién tiene realmente el control de sus datos? ¿qué legislación es aplicable?

Algo que hay implícito en el esquema anterior es que la nube es siempre algo ajeno a nosotros, un recurso de Internet al que nos conectamos, del que somos simples clientes y sobre el que no tenemos control ninguno. Pero esto no tiene que ser necesariamente así: Al igual que hace muchos años se pasó a utilizar los mismos protocolos de Internet a la red local, podemos utilizar el paradigma de cloud computing en nuestras propias instalaciones, de esa manera se puede hacer una clasificación de las nubes en función de su ubicación:

  • Pública: Una empresa ofrece servicios en la nube a terceros, encargándose de toda la gestión y la configuración. Estas nubes son compartidas por muchos usuarios y empresas diferentes.
  • Privadas: Una empresa modifica total o parcialmente sus propios recursos, ofreciéndolos a sus usuarios como un cloud, pero teniendo control total sobre el mismo ya que los recursos son propios.
  • Híbridas: Algunos servicios se gestionan en el cloud privado y otros se transfieren a uno público, normalmente utilizan una API común que permita una buena integración

Los clouds públicos son una realidad, los clouds privados están empezando a implantarse y los clouds híbridos son una ¿esperanza? :-).

Por resumir brevemente el escenario que se prevé (en el caso particular de IaaS): las empresas tradicionales de hosting deben transformarse para ofrecer IaaS públicos y los centros de datos de las empresas IaaS privados. Habrá empresas que pasen todos o algunos de sus servicios a un cloud público y en algunas ocasiones se configurarán clouds híbridos que en función de la demanda se pasarán a un cloud privado o público. Esto será una práctica generalizada o no, el tiempo lo dirá …

¿Qué software libre hay para implantar un cloud privado IaaS?

Centrándonos en la parte más interesante de todas, IaaS, y en la posibilidad de implantar en nuestra organización una nube privada con nuestros propios recursos, la siguiente pregunta es ¿hay software libre para esto? La respuesta es sí y más de una opción.

Eucalyptus

Eucalyptus comenzó en el año 2008, siendo uno de las primeras aplicaciones desarrolladas para la implantación de una solución IaaS privada, y una de las características principales era que soportaba de forma nativa el API de Amazon EC2, el estándar de facto de los clouds públicos. Por el tiempo que lleva de desarrollo es un software más estable y completo que otros proyectos que han salido posteriormente.

El principal inconveniente de Eucalyptus es que no es completamente libre, es lo que se conoce como software \emph{open core}, que incluye una parte importante de software libre o abierto, pero con otros componentes con licencias privativas y cerradas. Esto ha provocado que bastantes empresas y organismos que inicialmente habían mostrado mucho interés por este proyecto lo hayan desestimado y hayan preferido optar por opciones completamente libres.

OpenNebula

OpenNebula comenzó al igual que Eucalyptus en el año 2008, pero no tuvo tanta relevancia inicialmente como éste. OpenNebula surgió como resultado de un proyecto de investigación de la Universidad Complutense de Madrid y fue paulatinamente modificando su licencia hasta hacerlo completamente libre.

Actualmente OpenNebula es un proyecto maduro y una buena opción para implantar un cloud IaaS con software libre, fue la opción planteada inicialmente en el proyecto, pero decidimos cambiar finalmente a OpenStack por la relevancia que estaba tomando este último y el fortísimo ritmo de desarrollo que tiene, con el que no pueden competir el resto de proyectos.

OpenStack

OpenStack comenzó en Octubre de 2010 con sólo dos socios (Rackspace y NASA) y hoy en día cuenta con más
de 150 y en el que participan prácticamente todas las empresas implicadas en el sector a nivel mundial (IBM, HP, Nebula, Canonical, VMware, Cisco, RedHat, …).

OpenStack es el software libre para clouds de referencia actualmente y el ritmo de desarrollo que tiene es trepidante, sacando una versión nueva cada 6 meses con importantes novedades respecto a la anterior.

¿Qué ventajas proporciona tener un cloud privado en un centro educativo?

En primer lugar, si en el centro se imparten enseñanzas de informática, debería plantearse sí o sí cómo incluir el cloud computing dentro del currículo, pero esto podría ser simplemente mediante un contrato con un cloud público como Amazon Web Services.

Lo que realmente ofrece un cloud privado es una herramienta muy potente para la realización de prácticas en el aula: escenarios complejos, configuraciones previas, almacenamiento masivo, etc.

En los cuatro centros participantes en el proyecto ya disponemos de estos clouds privados configurados y a disposición de nuestros alumnos, por lo que será la experiencia de los próximos años la que dirá si efectivamente ha valido la pena, pero la cosa promete

, , , , , , ,

  1. Deja un comentario

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: