OpenStack

Publicado en

OpenStack es una colección de proyectos de software open source que te permite establecer y administrar tu propia infraestructura de cómputo como servicio (IaaS), la cual es administrable de manera programática por medio de APIs. En otras palabras, cloud computing open source desde tu data center.

El proyecto nació en julio de 2010, fundado por la NASA y Rackspace, un proveedor de servicios de hosting. Desde entonces, OpenStack se ha ido ganando el respaldo de varias de las empresas más importantes de la industria, entre ellas IBM, Red Hat, HP, Cisco y Dell.

OpenStack es la base de OpenCloud, una iniciativa que busca la interacción entre nubes de forma estándar, evitando así quedar “atado” a un proveedor específico.
La versión más reciente de OpenStack al escribirse este artículo lleva el nombre “Folsom” y fue liberada en septiembre del 2012.

Arquitectura

OpenStack no es un solo proyecto, sino un conjunto de proyectos, cada uno orientado a desarrollar un componente de la plataforma. La figura 1 ilustra los diferentes componentes de OpenStack y como interactúan. A continuación describo cada uno.

Nova. Es el componente que se encarga de administrar los recursos de cómputo. Es lo que en el argot de cómputo distribuido se conoce como un fabric controller. Nova maneja todas las tareas requeridas para soportar el ciclo de vida de las instancias que se ejecutan en OpenStack. Nova expone sus capacidades por medio de un API compatible con el API de Amazon EC2.

Cinder. Es el servicio de almacenamiento por volumen o bloque (block storage). Permite que las máquinas virtuales puedan acceder e interactuar con dispositivos de almacenamiento virtuales por medio de una interfaz iSCSI. Brinda una funcionalidad comparable a la que tendrías utilizando un sistema SAN, con sus ventajas (alto desempeño para lectura/escritura) y limitaciones (un dispositivo solamente puede ser usado por una sola máquina virtual al mismo tiempo). Sin embargo, a diferencia de un SAN convencional, el API de Cinder te permite que de manera programática puedas asignar un dispositivo a una u otra máquina virtual conforme lo necesites.

Swift. Es un almacén de objetos distribuido que viene a cumplir una función análoga al Simple Storage Service (S3) de Amazon Web Services. Dada su naturaleza, Swift es altamente escalable tanto en términos de tamaño (varios petabytes) como capacidad (billones de objetos) y cuenta con capacidad nativa de redundancia y tolerancia a fallas.

Quantum. Es el subsistema para gestión de conectividad (network connectivity-as-a-service). Quantum está basado en OpenFlow [3] y su tecnología permite a las redes tomar decisiones de ruteo en base a aplicaciones, es decir las redes ya están empezando a entender el software y los servicios de negocio, y tomando las decisiones en base a esto.

Glance. Provee servicios para descubrir, registrar y activar imágenes de servidores. La habilidad de copiar o sacar un snapshot de una imagen de un servidor e inmediatamente almacenarla es una capacidad importante de OpenStack. Las imágenes almacenadas se pueden utilizar como plantillas para levantar nuevos servidores rápidamente. También se pueden utilizar para almacenar y catalogar respaldos.

Horizon. Es una interfaz web gráfica para administrar un ambiente OpenStack. Se puede utilizar para administrar instancias e imágenes de servidores, crear llaves de acceso, asignar volúmenes de almacenamiento, manipular contenedores Swift, etcétera.

Keystone. Provee servicios de identidad y política de acceso para los componentes de OpenStack. Disponible de manera programática por medio de un API tipo REST.

Figura 1. Arquitectura de OpenStack. Crédito: http://ken.pepple.info

 

Conclusión

Aunque OpenStack es una plataforma joven, ha cobrado gran interés, y su comunidad cuenta ya con más de 6,000 colaboradores y 800 empresas en 87 países. En el ámbito empresarial, cuenta ya con instalaciones importantes. De hecho mercadolibre.com está sobre OpenStack, así como el servicio Webex de Cisco. Proveedores como Red Hat, IBM y HP ya ofrecen también su versión de OpenStack con componentes y servicios de valor agregado. Lo mejor de todo, es que OpenStack puede correr en hardware estándar, no necesitas una marca o proveedor específico.


En México existe una naciente comunidad de OpenStack, acércate en @openstackmexico y http://facebook.com/OpenStackMexico.

Referencias
[1]  “OpenStack Software”. http://www.openstack.org/software
[2] “OpenStack 101”, Piston Cloud Computing. http://bit.ly/openstack101
[3] “Open Cloud Manifesto”. http://www.opencloudmanifesto.org

Bio


Pedro Galván (@pedrogk) es cofundador y editor ejecutivo de Software Guru. De vez en cuando le gusta investigar sobre temas que no conoce y arreglárselas para escribir un artículo que parezca coherente.


Juan Manuel Cáceres (juan.caceres@jcgr.net) es director de JC Global Resources (www.jcgr.net), empresa proveedora de servicios de TI tales como run book automation, cloud management y software testing.