OpenStack es una plataforma de nube de código abierto diseñada para la gestión de infraestructuras en la nube pública o privada, permitiendo a las organizaciones construir y administrar entornos cloud de manera eficiente y escalable. Este proyecto nació como una colaboración entre la NASA y Rackspace en 2010, y desde entonces ha ganado una amplia adopción en la industria.
La arquitectura modular de OpenStack facilita la implementación de servicios de forma desacoplada, como procesamiento, almacenamiento, redes y más, a través de componentes independientes pero interconectados. Entre los servicios más comunes se encuentran:
- Horizon que proporciona el Dashboard o consola de gestión
- Nova para la gestión de instancias de máquinas virtuales
- Glance para la gestión de las imágenes de máquinas virtuales
- Cinder proporciona el almancenamiento en bloques (Block Storage) para los disco y snapshots de máquinas virtuales
- Swift para el almacenamiento de objetos, similar a un bucket de AWS S3
- Neutron para la administración de redes.
- Keystone para la gestión de identidad
OpenStack proporciona un Portal y una interfaz de comandos (CLI) de forma similar a como podemos encontrar en proveedores de nube pública (como hacen AWS, Azure, Google GCP, DigitalOcean, etc.).
La flexibilidad de la plataforma cloud de OpenStack lo hace adecuado para despliegues en entornos de nube privada, nube pública, y nube híbrida. Proporciona a las organizaciones la capacidad de adaptarse a sus necesidades de escalabilidad y control. Con una comunidad activa de desarrolladores y una amplia base de usuarios, OpenStack continúa evolucionando y mejorando, consolidándose como una opción sólida para empresas que buscan construir y gestionar infraestructuras en la nube de manera personalizada y robusta.
Para más info:
Artículos sobre OpenStack
Puedes obtener más información sobre la plataforma de nube de OpenStack a continuación.
OpenStack – Cómo añadir un Compute Node con Packstack
Una de las principales ventajas de OpenStack, es que se trata de una solución altamente escalable, pudiendo llegar a tener cientos o miles de servidores. En este Post vamos a hacer una pequeña introducción a la escalabilidad en OpenStack, así como ver el proceso para añadir un Compute Node a nuestra instalación de laboratorio (all-in-one) sobre CentOS 7 con Packstack
OpenStack – El Servicio de Almacenamiento: Cinder y Swift
OpenStack ofrece varios servicios de almacenamiento para diferentes propósitos. Los más conocidos son Cinder y Swift. Cinder proporciona almacenamiento en bloques (Block Storage) que básicamente es el utilizado para gestionar los discos de las máquinas virtuales y los Snapshots, mientras que Swift proporciona almacenamiento de objetos (Object Storage) que básicamente es el equivalente a AWS S3 ó Azure Blob Storage, permitiendo tener contenedores donde subir ficheros, accesibles de forma pública a mediante una URL temporal y segura (similar a los Token SAS de Azure)
OpenStack – El Servicio de Compute (Nova)
Nova es el Servicio de Compute (una especie de Hypervisor Manager), uno de los servicios más importantes y originales de OpenStack, a través del cual podemos gestionar todos lo Hypervisors así como el ciclo de vida de nuestras Instancias de OpenStack (ej: creación, snapshots, borrado, etc.), incluyendo la segregación y agrupamiento de Hosts en Regiones, Host Aggregates, y Availability Zones, la definición de Flavors para la gestión de tallas de los recursos (CPU, Memoria, Disco), y mucho más, totalmente integrado en el Dashboard y accesible a través de API y de OpenStack CLI
OpenStack – El Servicio de Red (Neutron)
Neutron proporciona el Servicio de Red en OpenStack, gracias al cual, podemos tener redes externas, redes internas, enrutarlas entre sí, asignar direcciones IP externas (floating IPs) a nuestras Instancias para acceder a ellas desde el exterior, filtrar el tráfico de red mediante reglas de los Security Groups, y muchas cosas más. En este Post vamos a ver la teoría y arquitectura de Neutron, para continuar con un laboratorio en el que crearemos nuestra primera Instancia en OpenStack, disponible y accesible desde el exterior, y configurarlo todo de forma programática a través de OpenStack CLI
OpenStack – El Servicio de Imágenes: Glance
El Servicio de Imágenes de OpenStack (Glance) es el encargado de almacenar las imágenes que usaremos para crear nuestras Instancias o Máquinas Virtuales, lo que sería el equivalente a las AMIs de AWS o las imágenes de Azure, que podremos gestionar tanto desde el Dashboard de OpenStack como desde OpenStack CLI
OpenStack – El Servicio de Identidad: Keystone
Keystone es el Proyecto OpenStack que proporciona el Servicio de Identidad centralizado, un directorio común, encargado de almacenar y gestionar las credenciales de usuarios y de todos los servicios OpenStack, así cómo de ofrecer la autenticación y autorización de acceso a los diferentes recursos mediante Tokens, sería el equivalente a IAM en AWS. Además es capaz de integrarse con LDAP y con Active Directory. Veremos sus principales conceptos, un esbozo de su flujo de autenticación, y cómo trabajar con Keystone desde OpenStack CLI
OpenStack – El Dashboard (Proyecto Horizon) y la CLI
El Dashboard de OpenStack es el equivalente al Portal de Azure o la Consola de AWS, un Portal donde podremos acceder para gestionar los recursos de nuestra nube, en este caso, de nuestra nube privada. En este Post os voy a contar cómo funciona la organización basada en Proyectos de OpenStack (similar a cómo lo hace Digital Ocean), para continuar con un tour sobre las diferentes pantallas del Dashboard (Proyecto Horizon), tanto como un usuarios regular, como con un usuario Admin, que ayudará mucho a comprender qué es OpenStack, y donde encontraremos de forma gráfica muchas similutes a otros proveedores Cloud como AWS, Azure, GCP o Digital Ocean
OpenStack – Introducción e instalación en CentOS con PackStack
OpenStack es una plataforma Open Source de Cloud Computing para proporcionar Infraestructura como Servicio (IaaS) multi-tenant, capaz de controlar grandes grupos de recursos de Compute, Storage y Networking de uno o varios Data Center, gestionados a través de un Dashboard que proporciona control de Administración y auto-provisión para usuarios, además de un acceso API y una CLI, permitiéndote la creación de tu propia nube privada. Es modular, formado por un conjunto de componentes Core (Nova, Glance, Neutron, Swift, Keyston, y Cinder) y otros opcionales (Horizon, Heat, Designate, Trove, Mistral, Murano, etc.), que se comunican entre sí a través de sus propias APIs, junto con un sistema de colas de mensajes y bases de datos para su configuración y estado