Volver

Introducción a OpenStack

Imagen del slider

5 de abril de 2019

Por Guillaume Caballé - TheExpert Squad, ingeniero de virtualización

OpenStack, proyecto de código abierto

Aunque es una tecnología relativamente nueva en el panorama informático, OpenStack ha ganado rápidamente una notable popularidad en la implementación de nubes privadas. El objetivo de este primer artículo es presentar la solución en su conjunto; un segundo artículo se dedicará a las posibles opciones de arquitectura y al papel del arquitecto en general.

En un principio, el proyecto surgió de la necesidad de dos entidades: la NASA y el proveedor de alojamiento RackSpace. En junio de 2010, la agencia decidió conectar sus servidores virtualesNovaal sistema de almacenamiento de datosSwiftalojado por el proveedor. Tras el éxito obtenido, publicaron la primera versión del proyecto OpenStack, denominadaAustin, en octubre de 2010.

Cada año, la ciudad donde se celebra la OpenStack Design Summit determina el nombre de la próxima versión. Además, estas versiones siguen un orden alfabético. Así, la primera versión de OpenStack se llamaAustin, la segundaBexar, la terceraCactus, etc. Para más información sobre estas versiones:https://releases.openstack.org/

Algunos de los nombres utilizados en las versiones de OpenStack

Es importante saber que OpenStack es unproyecto de desarrollo: el sitio webopenstack.orgno ofrece ninguna referencia ni distribución. Sin embargo, algunos proveedores externos (Mirantis, Ubuntu, SUSE, etc.) pueden crear sus propias distribuciones basadas en el código Python del proyecto.

La Fundación OpenStack y sus colaboradores

El proyecto OpenStack está gestionado por una fundación. La afiliación a esta es gratuita y está abierta a todo el mundo: en la actualidad cuenta con más de diez mil miembros.

Un Comité Técnico compuesto por 13 personas, elegidas por los miembros, se encarga de la dirección y la gestión de las cuestiones técnicas. Del mismo modo, un Consejo de Administración se ocupa de los asuntos financieros y estratégicos. Este Consejo está formado por personas designadas por las empresas patrocinadoras y otras elegidas igualmente por los miembros.

Para más información sobre la fundación:https://www.openstack.org/foundation/

El proyecto cuenta con numerosas aportaciones, ya sea de colaboradores habituales del código abierto:

  • Red Hat
  • IBM
  • HP

Pero también de empresas dedicadas por completo a OpenStack:

  • Mirantis
  • CloudBase

Estas contribuciones pueden adoptar diversas formas:

  • Nuevas funciones
  • Controladores para servicios específicos (controladores para almacenamiento en bloquesCinder ocontroladores de redes definidas por software (SDN) paraNeutron)
  • Correcciones de errores

Una nube de servicios

Tras la primera versión, que solo incluía los serviciosNova ySwift, se han incorporado muchos otros para ampliar el proyecto:

  • Glance(almacenamiento de imágenes) apareció en la versiónBexar
  • Keystone(autenticación) yHorizon(consola web) se introdujeron en la versiónEssex
  • Quantum(servicio de red), posteriormente rebautizado comoNeutron, así comoCinder(almacenamiento en bloques), aparecieron en la versiónFolsom
  • Heat(servicio de orquestación) yCeilometer(telemetría) se introdujeron en la versiónHavana
Los distintos servicios de OpenStack

La integración de servicios sigue siendo un elemento central del proyecto OpenStack, con el objetivo de añadir nuevas funcionalidades. Estas se van incorporando progresivamente en un ciclo de desarrollo y lanzamiento de aproximadamente seis meses.

Cada una de las funciones integradas en OpenStack expone una API REST. Para acceder a ella, se dispone de comandos de consola (comandos del cliente común OpenStack) y una interfaz web (Horizon), pero la mayoría de las interacciones entre los componentes y los usuarios se realizan a través de las API, y ello por varias razones:

  • el sistema implementado puede estar totalmente automatizado
  • la integración con otros sistemas (soluciones de orquestación) está claramente definida
  • Los casos de uso se implementan fácilmente y se prueban de forma automática.

Todo eso está muy bien, pero…

Ahora deberías tener una idea más clara de qué es el proyecto OpenStack. Sin embargo, a esta presentación le falta un punto crucial:¿para qué sirve este proyecto?
Es difícil dar una respuesta clara y precisa a esta pregunta. En realidad, OpenStack se define más fácilmente por sus casos de uso (Use Cases). De hecho, los usuarios se acercan a esta solución con diferentes objetivos en mente. Estos pueden ser, entre otros:

  • Implementar unainfraestructura de servicios compartida entre varios clientes. Este caso de uso es especialmente habitual entre los proveedores de alojamiento web, como RackSpace. Se trata de una plataformamultitenant.
  • Implementar un mecanismo deintegración continua y entrega continua(CI/CD) en el marco del desarrollo rápido de aplicaciones. Este es el caso de uso más habitual en las empresas. (El 92 % de los usuarios de OpenStack cuentan con flujos de trabajo de CI/CD
    en sus nubes privadas para la versiónKilo)
  • Proporcionar una infraestructura que permitaimplementar funciones de red de forma automática mediante software. Se trata del caso de uso denominado«red definida por software»(SDN), el más habitual actualmente entre los operadores de telecomunicaciones.
  • Gestionar una infraestructura con una gran demanda de recursos de cálculo: en este caso, hablamos decomputación de alto rendimiento(HPC). Este caso de uso se da, sobre todo, en el ámbito de la investigación (CERN, NASA, MIT, DAIR).

Para obtener más información sobre el caso de usode SDN, te invito a leer el artículode SQUAD alrespecto:https://theexpert.squad.fr/theexpert/cloud/apres-le-cloud-place-aux-reseaux-programmables/

El reto de la arquitectura

Como se desprende de esta lista no exhaustiva, OpenStack ofrece un conjunto de servicios muy variados. A continuación, la empresa debe decidir si esta tecnología se ajusta a sus necesidades y si su implementación encaja en su contexto.

En un primer momento, puede optar por implementar una arquitectura «de referencia», en la que todos los servicios estén presentes y activos. Sin embargo, se recomienda implementar en producción únicamente los servicios que se utilicen. Esto permite reducir posteriormente la configuración y las pruebas necesarias para la implementación.

Las implementaciones«de referencia» suelen servir comoprueba de concepto(PoC) cuando un caso de uso aún no está lo suficientemente maduro como para definir el estado final de la producción.

Aquí es donde entra en juego la arquitectura de OpenStack. En primer lugar, habrá queenumerar las necesidades de la empresayproponer una soluciónde infraestructura adecuada. A continuación, será necesariomantener una documentacióncoherente sobre el diseño y la implementación.

Por lo tanto, el arquitecto deberá poseer un profundo conocimiento de la solución, junto con competencias en arquitectura de redes y almacenamiento. Estas diferentes etapas se tratarán en un próximo artículo.


Recursos

  • OpenStack para arquitectos – Michael Solberg, Ben Silverman (2017)
  • Guía de estudio para la certificación de administrador de OpenStack – Andrey Markelov (2016)
  • Administración de OpenStack con Ansible 2 – Walter Bentley (2016)