¿Qué es Open Stack? En su esencia, OpenStack es un sistema operativo que se basa nubes públicas o privadas. Pero OpenStack es también una plataforma; no es sólo una pieza de software que se descarga y se instala, lista para construir una nube.
OpenStack se compone de más de una docena de elementos que controlan los aspectos más importantes de una nube. Hay recursos para la gestión de cómputo, redes y almacenamiento. Otros para la gestión y los de la orquestación de aplicaciones que se ejecutan en la parte superior de la misma identidad y acceso. En conjunto, estos componentes permiten a las empresas y proveedores de servicios ofrecer los recursos de computación mediante el aprovisionamiento y la gestión de grandes redes de máquinas virtuales.
El código para cada uno de estos proyectos se puede descargar de forma gratuita en GitHub y muchos de estos proyectos se actualizan dos veces al año, cuando una nueva versión sale al mercado. La mayoría de las empresas que interactúan con OpenStack lo hacen a través de una nube pública que se ejecuta en estos componentes, o por medio de una versión de este código, distribuido por uno de los muchos vendedores que participan en el proyecto. Sin embargo, todavía es importante conocer las piezas que componen el proyecto.
OpenStack Compute (code-name Nova)
OpenStack se inició en 2010, cuando Rackspace y la NASA se unieron. La NASA aportó todo lo referente al cálculo, mientras que Rackspace contribuyó con el almacenamiento. Hoy, ese proyecto de computación se conoce como Nova.
Nova está diseñada para gestionar y automatizar el aprovisionamiento de los recursos informáticos. Este es el núcleo del software de gestión de la máquina virtual, pero no es un hipervisor. En lugar de ello, Nova apoya las tecnologías de virtualización, incluyendo KVM, Xen, ESX y Hyper-V, y puede funcionar en configuraciones de computación de alto rendimiento. Los recursos informáticos están disponibles a través de las API para los desarrolladores, a través de interfaces web para administradores y usuarios.
La arquitectura de cálculo está diseñada para escalar horizontalmente en hardware estándar. La versión Icehouse, que es nueva, está rodando las actualizaciones, lo que permite a OpenStack actualizarse en una nueva versión sin tener que apagar las máquinas virtuales que están en la nube.
Nova se puede considerar como el equivalente a la Elastic Compute Cloud de Amazon Web Service (EC2).
OpenStack Networking: Neutrón (Anteriormente Quantum)
Neutrón gestiona la creación de redes asociadas a OpenStack. Es un sistema API que permite a los administradores o a los usuarios personalizar la configuración de red, y a continuación, conocer una variedad de diferentes tipos de red (como las redes planas, VLANs o redes privadas virtuales). Los neutrones permiten ir a las direcciones IP, tanto las propias como las dedicadas o flotantes; inclusive la última de los cuales se puede utilizar para reencaminar el tráfico durante el mantenimiento o un fallo, por ejemplo).
Es compatible con el protocolo de red definida software OpenFlow y plugins, que están disponibles para servicios tales como detección de intrusos, balanceo de carga y firewalls.
OpenStack Object Storage (code-name Swift)
OpenStack tiene dos plataformas principales de almacenamiento: Un sistema de almacenamiento de objetos llamado Swift y una plataforma de almacenamiento en bloque llamado Cinder.
Swift, que fue uno de los componentes originales aportados por Rackspace, es una plataforma-API accesible en escalado horizontal, y distribuida totalmente, que se puede integrar en las aplicaciones o utilizar para copia de seguridad y archivo. No es un sistema de almacenamiento de archivos tradicional sin embargo, Swift no tiene “cerebro central”. El software OpenStack replica automáticamente los datos almacenados en Swift a través de múltiples nodos para garantizar la redundancia y tolerancia a fallos. Si un nodo falla, el objeto se replica automáticamente a nuevos nodos de las materias primas que se añaden al sistema.
Esa es una de las llaves de la habilitación de funciones que permite a OpenStack escalar a tamaños mayores. Piense en Swift como el equivalente de Simple Storage Service de AWS.
OpenStack Block Storage (code-name Cinder)
A diferencia de Swift, Cinder permite bloques de almacenamiento. Están destinados a ser asignado para calcular instancias que permitirán el almacenamiento ampliado. El software Cinder gestiona la creación de estos bloques, además de los actos de aplicación y el desprendimiento de los bloques para calcular servidores.
La otra característica importante de Cinder es su integración con los sistemas de almacenamiento para empresas tradicionales, como el almacenamiento del servidor Linux y otras plataformas como Ceph, NetApp, Nexenta, SolidFire y Zadara, entre otros. Este es el equivalente de la función de AWS Elastic Block Storage (EBS).
OpenStack Identity (code-name Keystone)
OpenStack tiene una variedad de componentes que son servicios compartidos, lo que significa que trabajan a través de las diversas partes del software, tales como Keystone.
Este proyecto es la herramienta principal para la autenticación del usuario y de los controles de acceso basados en roles en OpenStack nubes. Keystone se integra con LDAP para proporcionar un directorio central de usuarios y permite a los administradores establecer políticas que controlan los recursos para que varios usuarios tengan acceso. Keystone le da el soporte al usuario, junto a su contraseña y lo logins tradicionales, además de los inicios de sesión basada en token.
OpenStack Dashboard (code-name Horizon)
Esta es la interfaz gráfica de usuario principal para utilizar OpenStack nubes. Esta herramienta basada en web ofrece a los usuarios y administradores la capacidad de suministro y la automatización de los servicios. Es la forma principal para acceder a los recursos si no se utilizan llamadas a la API.
OpenStack Image Service (code-name Glance)
Uno de los beneficios clave para una plataforma en la nube es la posibilidad de mover las máquinas virtuales de forma rápida cuando los usuarios lo soliciten. Glance ayuda a lograr esto mediante la creación de plantillas de máquinas virtuales. Glance puede copiar de inmediato una imagen de máquina virtual y permitir que se vuelva a crear. Eso significa que los administradores pueden configurar un catálogo de plantillas de máquinas virtuales, que luego los usuarios pueden seleccionar y autointercambiar.
Glance también se puede utilizar para copia de seguridad de las imágenes existentes, para salvarlas y crear copias. La herramienta se integra con Cinder para almacenar las imágenes.
Estos proyectos continuarán siendo desarrollados por la comunidad OpenStack y lo más probable es que se integren plenamente en el proyecto durante los próximos lanzamientos.