lunes, 21 de abril de 2014

¿Qué es eso de OpenStack?

OpenStack es una plataforma cloud computing de software libre, se ha convertido en una de las principales opciones para implementar un cloud de IaaS público o privado.
OpenStack
El proyecto OpenStack se define así mismo como una plataforma de cloud computing hecha con software libre para desplegar nubes públicas y privadas, desarrollada con la idea de ser sencilla de implementar, masivamente escalable y con muchas prestaciones. OpenStack proporciona una solución de Infraestructura como servicio (IaaS) a través de un conjunto de servicios interrelacionados.

Proyecto 

Más de 200 empresas se unieron al proyecto entre las que destacan AMD, Brocade Communications Systems, CanonicalCiscoDellEricsson, Groupe Bull, HPIBM, InkTank, Intel, NEC, Rackspace Hosting, Red Hat, SUSE Linux, VMware y Yahoo!.3 4 5 6
La tecnología consiste en una serie de proyectos relacionados entre sí que controlan pools de control de procesamiento, almacenamiento y recursos de red a través de un centro de datos, todos administrados a través de un panel de control que permite a los administradores controlar mientras potencia a sus usuarios proveyendo los recursos a través de una interfaz web.
La comunidad OpenStack colabora en torno a un ciclo de lanzamiento con hitos de desarrollo de frecuencia semestral.7 Durante la fase de planificación de cada lanzamiento, la comunidad se reúne para la Cumbre de Diseño OpenStack para facilitar sesiones de trabajo para desarrolladores y armar planes a futuro.

Principios fundacionales

OpenStack no depende de una sola empresa, sino que se ha constituido una fundación, la OpenStack Foundation, cuyos miembros son elegidos entre todos los participantes y cuyos principios se resumen en los siguientes puntos:
  • Licencia Apache 2.0, no existe versi on “enterprise”
  • Proceso de diseño abierto
  • Repositorios públicos de c ódigo fuente
  • Todos los procesos de desarrollo deben estar documentados y ser transparentes
  • Orientado para adoptar estándares abiertos
  • Diseño modular que permite flexibilidad mediante el uso de APIs

Proyecto abierto

OpenStack ha optado por utilizar la licencia de software libre Apache 2.0, una licencia de software libre permisiva y no copyleft.
Pero no todo es la licencia, sino que en un proyecto de software libre es muy importante saber cómo se toman las decisiones de desarrollo y si se aceptan o no contribuciones de otros. En el caso de OpenStack se ha optado por un desarrollo completamente abierto, en el que se pueden aceptar opiniones y contribuciones de cualquiera. El diseño de nuevas funcionalidades se realiza mediante “blueprints” en launchpad y se presentan y acuerdan muchos aspectos en los summits semestrales que se celebran en distintas ciudades del mundo.
Todo el código del proyecto OpenStack está disponible a través de github y se pueden enviar correcciones de errores o modificaciones a través del Gerrit de OpenStack. La metodología de desarrollo de OpenStack también merece que se destaque, ya que gracias a la utilización de metodologías ágiles se consigue que cerca de 1000 personas repartidas por todo el globo hayan participado en el desarrollo de Havana, la última versión de OpenStack.
Todo el código de OpenStack está desarrollado en Python, de nuevo un acierto, ya que se trata de un lenguaje de programación completamente libre y con una enorme progresión en los últimos años.
Si te gusta el proyecto, únete, puedes empezar por participar en las listas de correo o contribuir en las traducciones.

Componentes

OpenStack no es un solo producto, sino un conjunto de aplicaciones que pueden combinarse en función de las características y necesidades de cada caso, hay algunos componentes fundamentales y otros opcionales. Este esquema de funcionamiento difiere mucho de soluciones “llave en mano”, normalmente privativas que incluyen un conjunto más o menos fijo de componentes muy bien integrados entre sí pero poco flexible. OpenStack tiene una gran flexibilidad y permite implementar un cloud privado en una pequeña empresa o algunos de los mayores clouds públicos del mundo, como contrapartida, exige que la persona encargada de la implementación y la administración del cloud tenga suficientes conocimientos en todas o la mayor parte de tecnologías subyacentes.
Cada componente de OpenStack es totalmente autónomo y funcional y utiliza el protocolo AMQP de gestión de colas para comunicarse con el resto de componentes y una API web RESTful para comunicarse con procesos “externos” o los usuarios. Los principales componentes de OpenStack son:
NombreEquivalente en Amazon WSFunción
HorizonConsolePanel web de gestión
NovaEC2Gestión de instancias
CinderEBSAlmacenamiento de volúmenes
Keystone-Autenticación y autorización
SwiftS3Almacenamiento de objetos
GlanceVM Import/ExportGestión de imágenes para las instancias
NeutronVPCRedes virtuales

Ejemplo típico de funcionamiento: lanzar una instancia

Dependiendo de los componentes de cada cloud y de si estos están en el mismo o diferentes equipos, o incluso del número de estos componentes que hay en el cloud, se hará más o menos complejo el proceso de lanzar una instancia, pero a grosso modo podríamos resumirlo en los siguientes pasos:
  • Un usuario se autentica en Keystone, bien directamente o a través del panel web Horizon. De esta manera obtiene un token de sesión que le permitirá realizar acciones con el resto de componentes de OpenStack sin necesidad de volver a autenticarse y estas acciones estarán limitadas por los permisos del rol que tenga asignado el usuario en Keystone.
  • El usuario solicita a Glance la lista de imágenes disponibles. Estas imágenes las tendrá alojadas glance directamente en el equipo que se ejecuta o bien serán objetos almacenados en Swift.
  • El usuario selecciona una imagen y solicita a Nova que la instancie, para lo que nova le pedirá las características de la instancia (ram, disco, vcpu, etc.) y una vez recibidas las características, elegirá el nodo del cloud más adecuado para ejecutar la instancia.
  • De la configuración de la red virtual donde se encuentra situada la instancia se encarga Neutron (antes conocido como Quantum), permitiendo no sólo que se pueda acceder a la instancia desde fuera, a través de la denominada IP flotante, sino incluso de la configuración de redes complejas.
Todos estos pasos se realizan rápidamente y en unos segundos el usuario tendrá a su disposición una instancia de la imagen seleccionada, como puede verse en el siguiente vídeo:

Conclusiones

Si te planteas utilizar Cloud computing IaaS en los próximos años y quieres ver más allá de Amazon, es posible que OpenStack sea la opción a considerar, tanto si el planteamiento es utilizar un cloud privado, como utilizar alguno de los servicios de cloud públicos que utilizan OpenStack: Rackspace y HP Cloud son de momento los más conocidos.
Fuente:
http://es.wikipedia.org/wiki/OpenStack
http://openwebinars.net/que-es-eso-de-openstack-por-que-deberia-conocerlo/
Angel J. Reynoso
kp01 
Tel.: 829-997-4870
kp01aj@gmail.com

No hay comentarios:

Publicar un comentario