Skip to main content

OpenStack

logo

https://www.openstack.org/

¿Qué es OpenStack?

OpenStack es una plataforma de computación en la nube de código abierto, diseñada para proporcionar una infraestructura escalable y flexible para ambientes de nube privada. Así como existen AWS, GCP, Azure que son públicas, OpenStack es privado. La empresa compra el hardware (Servidor), coloca un sistema operativo e instala los componentes de OpenStack que gestionará los hardwares y ofrecerá un dashboard interactivo para crear los recursos como una cloud.

Desarrollado por una comunidad global de colaboradores, OpenStack ofrece una variedad de servicios esenciales para la construcción y gestión de nubes de manera eficiente.

Consejo

Esta es una herramienta que, o la conoces muy bien para reparar los problemas, o es mejor ni aplicarla. Ya he oído hablar de muchas empresas que dejaron de usar OpenStack por no conseguir mantenerlo.

Estudiar es bueno para conocer, pero es una herramienta que exige mucho estudio.

¿Cómo es el mundo On-Premise tradicional?

Una empresa que gusta de mantener servidores on-premise generalmente posee un conjunto de equipos que forman la infra.

En la parte de servidores generalmente se utiliza virtualización de Nivel 1, o sea, ocurre directamente en el hardware del servidor, sin la necesidad de un sistema operativo anfitrión. Este tipo de virtualización utiliza un hipervisor bare metal, también conocido como hipervisor de Tipo 1. Ejemplos populares incluyen VMware ESXi, Microsoft Hyper-V Server, KVM, ProxMox, Citrix, etc. Siendo así cuando una máquina es necesaria generalmente se crea un ticket de soporte para el equipo que irá a aprovisionar. Generalmente esas máquinas poseen bastante procesador y memoria.

En la parte de storage se usa también servidores, pero con foco en almacenamiento. Dell, IBM, Hitachi y muchas otras poseen soluciones de diversos tipos.

Para redes utilizamos switches, load balancer, etc. Cisco, Juniper y Dell suelen ser las principales proveedoras de ese tipo de equipo, pero tenemos una vasta opción en el mercado.

Si observamos, tenemos 3 tipos de equipos y todo lo que es necesario ser configurado en esos equipos por alguien.

Vamos a imaginar que un desarrollador necesitó una máquina para probar la aplicación y abrió el ticket para el equipo de infra. ¿Qué es necesario hacer?

  • Levantar una vm usando una iso del sistema operativo
  • Ajustar configuraciones de red si es necesario
  • Colocar la vm para almacenar los datos en una SAN (Storage Area Network) para que los datos vayan a los servidores de storage.

Qué trabajo... ¡Eso es un cuello de botella!

Infra As a Service (IaaS)

Es un modelo de computación en la nube que proporciona recursos de infraestructura virtualizados. En ese modelo, la infraestructura está disponible como un servicio o producto, permitiendo obtener recursos como servidores, almacenamiento y redes, sin preocuparse con la gestión directa del hardware. O sea, estamos intentando eliminar el cuello de botella de tener alguien teniendo que hacer las cosas.

Llevando al ejemplo del desarrollador que pidió la máquina, él simplemente podría hacer eso solo si tuviera cómo elegir la vm que necesita como un producto de estantería, de forma más rápida y ágil.

En la visión del equipo de infra el desarrollador sería el cliente.

¿Cómo funciona OpenStack?

En verdad OpenStack es un facilitador, que integra todas las soluciones de infra que una empresa posee, pero como servicio. OpenStack no sustituiría los servidores de virtualización, ni de storage ni la parte de redes, pero conseguiría integrar todos ellos para crear el IaaS y facilitar la entrega al cliente.

La idea es unificar todo lo que tienes y entregar como servicio de forma fácil, rápida e interactiva.

Alt text

Cuando crea una vm ya está integrando todos los componentes, ya toma una parte del storage, crea una vlan, selecciona la imagen y entrega.

OpenStack hace todo eso vía api.

Breve explicación sobre componentes

OpenStack es un conjunto de componentes (servicios) que pueden o no estar activos dependiendo de su instalación.

No es necesario instalar todos los recursos que posee y por eso no es una instalación simple solo ejecutando un comando en el terminal. Es necesario levantar los componentes y configurar de acuerdo con la necesidad.

Principales Componentes

Algunos servicios son base y prácticamente necesarios, pero no obligatorios.

  1. Computación en Nube (Compute):

    • El servicio Compute (Nova) permite el aprovisionamiento y gestión de máquinas virtuales, ofreciendo poder computacional flexible para atender las demandas variables de carga de trabajo.
  2. Almacenamiento en Nube (Storage):

    • OpenStack proporciona servicios de almacenamiento en bloque (Cinder) para volúmenes y almacenamiento de objetos (Swift) para datos no estructurados, ofreciendo soluciones escalables y duraderas.
  3. Redes Definidas por Software (Networking):

    • El servicio de Networking (Neutron) posibilita la creación y gestión de redes definidas por software, permitiendo la construcción de infraestructuras de red personalizables y seguras.
  4. Autenticación y Autorización (Identity):

    • El servicio de Identity (Keystone) gestiona la autenticación y autorización, garantizando el control de acceso seguro a los recursos de la nube.
      • Usuario
      • permisos
      • Roles
      • Grupos
  5. Dashboard de Usuario (Dashboard):

    • Horizon ofrece una interfaz gráfica para simplificar la gestión y monitoreo de la infraestructura OpenStack, haciendo las operaciones más accesibles. Es posible controlar todo por la línea de comandos, pero también es posible vía interfaz gráfica.

Recordando que no es necesario instalar componentes que no vamos a usar.

Los componentes opcionales de OpenStack pueden ser encontrados en https://www.openstack.org/software/project-navigator/openstack-components#openstack-services.

Alt text

Flexibilidad e Interoperabilidad

OpenStack es altamente modular y ofrece interoperabilidad con una variedad de tecnologías y soluciones, permitiendo la integración con diferentes sistemas y facilitando la construcción de ambientes de nube personalizados.

OpenStack posee un provider para OpenTofu y Terraform pudiendo inclusive crear los recursos vía Infra as a Code.

Comunidad OpenStack

Con una comunidad activa y diversificada de desarrolladores, usuarios y empresas, OpenStack continúa evolucionando y mejorando sus funcionalidades. La colaboración abierta es una piedra angular, impulsando la innovación y manteniendo el proyecto alineado con las necesidades en constante cambio del mundo de la computación en la nube.

En resumen, OpenStack es una solución robusta para quien busca construir y gestionar infraestructuras de nube, proporcionando flexibilidad, escalabilidad y control en un ambiente de código abierto.