OpenShift vs. OpenStack

OpenShift y OpenStack se utilizan para construir plataformas de nube altamente disponibles y escalables. Combinados, estos sistemas cubren multitud de necesidades, desde el aprovisionamiento de hardware virtualizado hasta el desarrollo y funcionamiento de aplicaciones en contenedores. Resulta especialmente interesante su uso para la aplicación de estrategias de nube híbrida y, por tanto, OpenShift y OpenStack son muy populares entre grandes organizaciones que operan a nivel mundial.

OpenShift vs. OpenStack: vista general

Históricamente, OpenStack surgió algo antes que OpenShift. El desarrollo de ambos proyectos es también representativo de la transición de las máquinas virtuales a los contenedores de aplicaciones. Esta virtualización basada en contenedores se ha impuesto como la tecnología de virtualización dominante en la última década.

¿Cuáles son las similitudes y diferencias entre OpenShift y OpenStack?

En primer lugar, OpenShift y OpenStack son proyectos de código abierto que se crearon alrededor de 2010 y 2011. Ambos se utilizan para crear sistemas altamente disponibles y escalables en entornos de nube híbrida. Por esta razón, son implementados por grandes organizaciones a nivel mundial y pueden funcionar en una amplia gama de infraestructuras informáticas subyacentes.

Tanto OpenShift como OpenStack pueden entenderse como una especie de “sistema operativo de la nube”. Sin embargo, deben tenerse en cuenta las diferencias entre los dos. OpenShift se utiliza para el desarrollo y la explotación de aplicaciones en contenedores. Los usuarios pueden aprovisionar, manejar y supervisar las aplicaciones y los servicios por ellos mismos, cuyo objetivo se centra en el desarrollo optimizado y en flujos de trabajo DevOps.

OpenStack comienza en una capa de abstracción más profunda. La plataforma utiliza la base de hardware distribuido para construir una infraestructura de nube virtualizada. Se aprovisionan máquinas virtuales con núcleos de CPU y RAM, así como redes virtuales y almacenamiento masivo distribuido. Siguiendo el modelo de autoservicio, los usuarios solicitan automáticamente los recursos. Veamos las diferencias principales entre OpenShift y OpenStack:

Sistema OpenShift OpenStack
Fabricante Red Hat OpenInfra Foundation
Tipo de virtualización Virtualización basada en contenedores Máquinas virtuales o hardware virtualizado
Tecnología de virtualización K8s Hipervisores como KVM, XEN, ESXi
Nivel de control Distribuido Centralizado
Modelo de servicio Platform-as-a-Service (PaaS) Infrastructure-as-a-Service (IaaS)
Uso de recursos en la nube Utiliza los recursos de la nube para construir la capa de aplicación Proporciona recursos en la nube basados en hardware virtualizado

¿Cómo se utilizan OpenShift y OpenStack?

Con OpenStack, una organización construye su propio entorno de nube siguiendo el modelo IaaS (Infrastructure-as-a-Service). Como resultado, se crea una nube interna que ya resulta familiar gracias a AWS y las alternativas a AWS. El hardware distribuido geográficamente se aprovisiona como recursos en la nube y se pone a disposición del sistema a través de varias interfaces.

OpenShift, por su parte, se encarga de la gestión centralizada del desarrollo y el funcionamiento de las aplicaciones. Su software se basa en Kubernetes (K8s) y controla los clusters K8s a través de los límites de la nube. Siguiendo el modelo PaaS (Platform-as-a-Service), las funciones del sistema pueden gestionarse a través de una interfaz web.

A pesar de que sus nombres suenan similares, OpenShift y OpenStack no son sistemas relacionados. De hecho, pueden utilizarse de forma independiente. Sin embargo, también es posible utilizar ambos en combinación. Como parte de una estrategia de nube híbrida, OpenStack puede utilizarse para construir una nube privada. OpenShift, en cambio, utiliza los recursos que contiene el entorno para proporcionar y gestionar aplicaciones y servicios. También existe la posibilidad de desplegar componentes de OpenStack en clusters K8s u OpenShift.

A continuación, analizamos en detalle las ventajas y desventajas de ambas tecnologías. Además, te mostramos escenarios de aplicación interesantes y concluimos con una comparación entre sistemas.

OpenStack: la plataforma de nube abierta

OpenStack es una plataforma abierta para construir entornos de nube escalables. El software es una capa de abstracción sobre la infraestructura de hardware descentralizada y su función principal consiste en aprovisionar y asignar capacidades de computación, red y almacenamiento masivo. Siguiendo el modelo de Infrastructure-as-a-Service (IaaS), los propios usuarios solicitan los recursos que necesitan. Además de las API obligatorias, existe una interfaz web para la administración del sistema.

OpenStack no solo incluye el aprovisionamiento de recursos, sino también otras funciones. Entre ellas se encuentran la gestión de la identidad de los usuarios, la gestión de las entradas DNS y un servicio de imagen para gestionar las imágenes de las máquinas virtuales. En la práctica, las funciones individuales se encapsulan como componentes individuales. Hay más de tres docenas de componentes en la versión actual de OpenStack. Por lo general, no se utilizan todos en un proyecto. A continuación, te ofrecemos un breve resumen de los componentes más importantes:

Componente de OpenStack Funcionalidad Descripción
Nova Servicio informático Aprovisiona núcleos de CPU y memoria virtualizados.
Swift Memoria de objetos Almacena objetos tipo S3 basándose en almacenamiento masivo virtualizado y redundante.
Glance Servicio de imagen Gestiona las imágenes VM para el funcionamiento de la plataforma.
Horizon Panel de control de la web Los usuarios se conectan a través del panel de control y gestionan los componentes individuales del sistema desde allí.
Keystone Servicio de identidad Proporciona autenticación y autorización de usuarios en todo el sistema, basándose en la API.
Cinder Memoria en bloque Ofrece un almacenamiento masivo de alta disponibilidad y tolerante a fallos, que funciona como un disco duro escalable en la nube.
Neutron Gestión de red Gestiona la infraestructura de red virtual (VNI) del sistema.
Ironic Aprovisionamiento de “bare metal” Gestiona la infraestructura “bare metal”. Cubre el ciclo de vida completo de las máquinas de “bare metal”, incluido la adquisición, el aprovisionamiento, el mantenimiento y el desmantelado.
Trove Servicio de base de datos Aprovisiona y gestiona bases de datos en la nube escalables y fiables.
Magnum Orquestación de contenedores Implanta motores de contenedores como K8s y sus alternativas basados en máquinas virtuales o en infraestructura “bare metal”.

¿Cuáles son las ventajas de OpenStack?

En primer lugar, OpenStack ofrece a las organizaciones la oportunidad de construir su propia infraestructura de nube basada en la tecnología existente. Esto supone un gran ahorro, ya que no es necesario empezar de cero. Además, OpenStack consta de componentes individuales que se configuran según los requisitos. Es un software de código abierto que está a disposición de todo el mundo. Por último, el desarrollo y la documentación de la plataforma lo llevan a cabo la comunidad OpenStack.

¿Cuáles son las desventajas de OpenStack?

Debido a la complejidad del software, la instalación de OpenStack puede ser complicada. Por un lado, el paquete principal incluye un gran número de componentes individuales que deben configurarse por separado y, por el otro, la documentación aportada por la comunidad también va a veces por detrás de las condiciones reales. Por ello, para contrarrestar ambas desventajas, hay que recurrir a especialistas o trabajar con servicios tecnológicos. Sin embargo, esto conlleva costes adicionales. Dado que OpenStack se utiliza casi exclusivamente para proyectos de mayor envergadura, en la mayoría de los casos deberías contar con el presupuesto correspondiente.

¿Para qué fines es más adecuado OpenStack?

OpenStack es el sistema ideal para construir tu propia infraestructura de nube en un hardware de computación descentralizado. El software es particularmente útil en el área de las máquinas virtuales (VM). En combinación con OpenShift o soluciones de gestión comparables de K8s, las aplicaciones basadas en VM y en contenedores pueden funcionar en paralelo. La funcionalidad para la virtualización de contenedores se ofrece ya de forma nativa con el componente “Magnum”.

OpenShift: la potente plataforma de aplicaciones y desarrollo

OpenShift se utiliza para construir entornos distribuidos y escalables de aplicación y desarrollo según el modelo Platform-as-a-Service (PaaS). Este software proporciona un entorno de ejecución completo en el que se despliegan, ejecutan, gestionan y orquestan los contenedores. Las herramientas integradas simplifican los modernos flujos de trabajo de desarrollo e implantación.

OpenShift utiliza una distribución especial de Kubernetes (K8s) como subestructura. Esta puede desplegarse a través de los límites de la nube y la infraestructura, logrando una experiencia de usuario consistente. La funcionalidad principal del K8 se complementa con funciones de seguridad y supervisión y se basa en la gestión centralizada de políticas. Esto garantiza un alto nivel de calidad en todo el entorno de software de una organización. Para la implementación se utilizan principalmente operadores de OpenShift:

Componentes de OpenShift Explicación
OpenShift API Server El servidor API de OpenShift comprueba y configura los recursos de OpenShift, como proyectos, rutas y plantillas.
OpenShift Controller Manager El OpenShift Controller Manager monitoriza etcd en busca de cambios en los objetos de OpenShift, como proyectos, rutas y objetos de controladores de plantillas. Además, utiliza la API para conseguir el estado deseado.
OpenShift OAuth API Server El OpenShift OAuth API Server comprueba y configura los datos para la autenticación en la plataforma de contenedores OpenShift. Esto incluye usuarios, grupos y tokens OAuth.
OpenShift OAuth Server Los usuarios solicitan un token al servidor OAuth de OpenShift para autenticarse en la API.

¿Cuáles son las ventajas de OpenShift?

OpenShift domina la complejidad operativa asociada a la administración de clústeres K8s autogestionados. Se pueden gestionar de forma centralizada varios clústeres K8s a través de los límites de las infraestructuras de nube pública y privada. Siguiendo el enfoque PaaS, los desarrolladores pueden solicitar automáticamente recursos para sus proyectos a través de una interfaz web. Las herramientas y flujos de trabajo integrados para integración continua y continuous delivery (CI/CD) completan el abanico de funciones, por lo que permite reducir drásticamente los tiempos de entrega.

En general, OpenShift es práctico debido a sus medidas de seguridad integradas. Con “Quay”, por ejemplo, se dispone de un registro de contenedores especialmente protegido. La autorización y la autenticación de extremo a extremo limitan el acceso de los usuarios a las distintas áreas del sistema. Asimismo, la posibilidad de alojar clústeres individuales en diferentes regiones geográficas permite un mejor cumplimiento en términos de protección de datos.

¿Cuáles son las desventajas de OpenShift?

OpenShift solo es ejecutable en sistemas operativos especiales de Red Hat, como “Red Hat Enterprise Linux CoreOS” (RHCOS) y “Red Hat Enterprise Linux” (RHEL). Además, la instalación requiere mucho tiempo. Por ejemplo, la configuración de los proyectos más grandes puede llevar varias semanas. Debido a las precauciones de seguridad más estrictas, se utilizan imágenes de contenedores especialmente protegidas del registro de contenedores “Quay” de Red Hat.

¿Para qué fines es más adecuado OpenShift?

Sobre la base de OpenShift, se implementan soluciones propias de PaaS (Platform-as-a-Service), SaaS (Software-as-a-Service) y CaaS (Containers-as-a-Service ), lo que es claramente útil para grandes organizaciones. Sin embargo, para desarrolladores individuales, OpenShift puede resultar demasiado grande y difícil de manejar.

OpenShift vs. OpenStack: comparación

Propiedad OpenShift OpenStack
Fuente de suministro del software Además de las versiones empresariales ofrecidas por Red Hat, OKD es una edición comunitaria de libre acceso. El desarrollo de OpenStack está sujeto a la comunidad, liderada por la Fundación OpenInfra. Además de la versión oficial de libre acceso, las principales casas de informática ofrecen distribuciones de pago.
Modelo de despliegue Las implantaciones de nubes múltiples e híbridas son posibles, pero pueden ser complejas. Es recomendable utilizar mecanismos de despliegue estandarizados. OpenStack suele funcionar in-situ en la propia infraestructura informática de la empresa. Dado que las implantaciones son complejas, existen distribuciones personalizadas de grandes proveedores, que incluyen asistencia personalizada. También hay varios enfoques basados en la nube y soluciones gestionadas.
Plataformas en la nube compatibles Como solución autogestionada, OpenShift puede funcionar en prácticamente cualquier infraestructura. Como solución gestionada, el software se ejecuta en las plataformas en la nube AWS, Azure, Google Cloud e IBM Cloud. OpenStack se ejecuta en casi todas las plataformas de nube en máquinas virtuales, así como en máquinas “bare metal” a través de un hipervisor. Además, los componentes pueden instalarse en entornos de contenedores de los principales proveedores.
Instalación Requiere un entorno de clúster o nube para su instalación. Los controladores de OpenStack se instalan in-situ o en la infraestructura proporcionada por un proveedor.
Lanzamientos Hay hasta tres lanzamientos al año. Normalmente hay dos lanzamientos al año.
Gestión de actualizaciones Las actualizaciones se simplifican mediante el “Operador de versiones del clúster”. Las actualizaciones son complejas y conllevan el riesgo de dañar el sistema. Las actualizaciones de los distintos componentes deben realizarse en un orden determinado.
Gestión de la imagen El registro de contenedores propio “Quay” de Red Hat contiene imágenes de contenedores libres de vulnerabilidades. El componente “Glance” gestiona las imágenes VM utilizadas en el aprovisionamiento del sistema.
Uso de plantillas Además de las plantillas propias de OpenShift, se utilizan potentes operadores para estandarizar el despliegue y el funcionamiento de las aplicaciones. El despliegue de OpenStack es más fácil y reproducible gracias a herramientas del sector como Chef, Puppet y Ansible. También hay herramientas basadas en helm y charms para el despliegue en contenedores.
Gestión de la red OpenShift admite redes definidas por software (SDN), incluidas las redes superpuestas mediante Open vSwitch (OVS). El componente “Neutron” de OpenStack proporciona SDN según el modelo “Networking-as-a-Service” (NaaS).
Interfaz web La sofisticada y cómoda interfaz web de OpenShift se considera como una de las mejores del sector. Con el panel de control “Horizon”, una interfaz web probada para la gestión de OpenStack está disponible de fábrica.
Canalización CI/CD integrada Mientras que las versiones más antiguas seguían utilizando el estándar “Jenkins”, el más reciente “Tekton” se utiliza ahora como estándar. Dado que el enfoque de OpenStack se centra principalmente en el aprovisionamiento de recursos virtualizados, no se integra por defecto ninguna solución dedicada de CI/CD.
Curva de aprendizaje OpenShift se considera más fácil de manejar que los K8 pelados. Si se utiliza una solución gestionada, el software puede utilizarse con relativa facilidad. Debido a la complejidad de OpenStack, la curva de aprendizaje se considera bastante pronunciada. El gran número de componentes individuales puede suponer una nueva curva de aprendizaje cuando se disponga de funcionalidades adicionales.
Elementos de seguridad Las amplias funciones de seguridad son una de las ventajas más destacadas de utilizar OpenShift. El componente “Keystone” proporciona funciones básicas de autenticación y autorización de usuarios.
Uso empresarial El software es utilizado por más de dos mil organizaciones en todo el mundo. Además, muchas grandes empresas de informática ofrecen soluciones especiales de OpenShift. Las principales empresas de informática ofrecen distribuciones específicas y compatibilidad para OpenStack. Entre ellas se encuentran Red Hat, VMware, IBM, SUSE, Canonical, OVH, Rackspace, Mirantis y Dell.