En este artículo vamos a hacer una introducción a Red Hat OpenShift. En particular, nos centraremos en Red Hat OpenShift Virtualization, veremos qué es, cómo es su arquitectura, que casos de uso tiene y en qué casos puede ser una alternativa sólida a la virtualización con VMware. En Pleiades estamos desplegando y probando esta solución por lo que este artículo será probablemente el primero de una serie en la que iremos profundizaremos en el tema. Espero que os sea útil.
Lo primero de todo, ¿qué es OpenShift?
OpenShift es una plataforma de contenedores desarrollada por Red Hat que permite a las organizaciones crear, implementar y gestionar aplicaciones de manera más eficiente y escalable. Su desarrollo está basado en Kubernetes donde OpenShift es la pieza que proporciona una solución de orquestación de estos y que facilita la automatización de la implementación, el escalado y la gestión de aplicaciones con los mismos.
OpenShift,está principalmente diseñado para el desarrollo de aplicaciones en modelos tipo nube e híbridos. Su objetivo principal, como ya hemos mencionado, es la de simplificar la creación y la gestión de aplicaciones en contenedores, permitiendo a los desarrolladores concentrarse en el código mientras OpenShift maneja la infraestructura subyacente. Esto permite ahorrar tiempo y recursos que pueden ser reutilizados en otra parte, aportando valor. Además, OpenShift permite la automatización de tareas tales como la escalabilidad automática, la gestión de recursos y la implementación continua de las aplicaciones.
Y, ¿Red Hat OpenShift Virtualization?
OpenShift Virtualization es una extensión de OpenShift que además de la gestión y despliegue de contenedores nos va a permitir ejecutar máquinas virtuales (VMs) junto con estas aplicaciones en la misma plataforma. Esta integración proporciona a las organizaciones una mayor flexibilidad para gestionar sus cargas de trabajo, permitiendo una transición más suave de las aplicaciones tradicionales utilizando VMs a aplicaciones ejecutadas en contenedores. Lo que facilita la modernización de aplicaciones sin la necesidad de reescribirlas completamente. Esto es útil para empresas que aún dependen de aplicaciones heredadas que no se pueden utilizar en contenedores.
Hablemos sobre su arquitectura:
La arquitectura de OpenShift Virtualization se centra en la integración de KubeVirt con la plataforma OpenShift, ampliando la capacidad de Kubernetes para gestionar no solo contenedores, sino también máquinas virtuales (VMs) como recursos nativos.
KubeVirt actúa como una extensión de Kubernetes, permitiendo a los usuarios definir y manejar VMs utilizando las mismas herramientas y API que usan para gestionar contenedores. Esta integración permite que las aplicaciones tradicionales que aún dependen de VMs coexistan con aplicaciones modernas basadas en contenedores dentro de un entorno unificado.
El hipervisor KVM (Kernel-based Virtual Machine) es la tecnología subyacente que permite la ejecución de VMs en los nodos de OpenShift. KVM es un hipervisor de alto rendimiento integrado directamente en el kernel de Linux, lo que garantiza una ejecución eficiente y segura de las VMs. Además, OpenShift Virtualization utiliza la red definida por software (SDN) de OpenShift para gestionar la conectividad de las VMs lo que asegura que las VMs y los contenedores puedan comunicarse entre sí sin problemas con un rendimiento óptimo.
Esta arquitectura también incluye la gestión unificada del almacenamiento a través de OpenShift Container Storage (OCS), que proporciona almacenamiento persistente y escalable tanto para las VMs como los contenedores.
Además, posee algunas funcionalidades avanzadas típicas de VMware y necesarias para entornos misión-critical como la de poseer la capacidad de migración en vivo de VMs, recuperación ante desastres y escalabilidad automática. Todo como decíamos anteriormente gestionado desde una interfaz única y coherente.
Comparativa con virtualización de VMware:
Aspecto | VMware | OpenShift Virtualization |
Enfoque Principal | Virtualización de servidores. | Integración de máquinas virtuales (VMs) en un entorno de contenedores basado en Kubernetes. |
Tecnología Subyacente | Hipervisor VMware ESXi, vSphere, vSAN, NSX. | KubeVirt, una extensión de Kubernetes para soportar VMs. |
Gestión de Recursos | vSphere Client para gestión de VMs y recursos de infraestructura. | OpenShift Console y Kubernetes API para gestión de VMs y contenedores. |
Escalabilidad | Escala vertical (más recursos en un solo host) y horizontal (más hosts en un clúster). | Escala horizontal a través de Kubernetes; añade más nodos al clúster para escalar VMs y contenedores. |
Alta Disponibilidad (HA) | vSphere HA y DRS (Distributed Resource Scheduler) para mover y reiniciar VMs en caso de fallos. | Utiliza las capacidades de HA de Kubernetes, incluyendo replicasets y daemonsets para VMs. |
Recuperación ante Desastres (DR) | VMware Site Recovery Manager (SRM) para recuperación automatizada entre sitios. | Snapshots de VMs, integración con herramientas de backup de Kubernetes y replicación entre clústeres. |
Almacenamiento | vSAN para almacenamiento definido por software y soporte para diversas soluciones de almacenamiento. | Almacenamiento persistente basado en Kubernetes, como Ceph y GlusterFS. |
Redes | VMware NSX para redes virtualizadas y microsegmentación. | Redes a través de plugins CNI (Container Network Interface) y soporte para redes virtualizadas. |
Ecosistema de Herramientas | Amplio ecosistema de herramientas de VMware para backup, monitoreo, y administración. | Herramientas de Kubernetes y OpenShift para orquestación y gestión, más herramientas de terceros compatibles. |
Costos | Basado en licencias de software y suscripciones. | Basado en el uso de recursos y almacenamiento, con flexibilidad en la elección de infraestructura subyacente. |
Integración con Contenedores | Virtualización y contenedores gestionados por separado, con integración mediante VMware Tanzu. | Gestión unificada de VMs y contenedores en un solo entorno de Kubernetes. |
Requisitos de Infraestructura | Requiere hardware compatible con VMware, y posiblemente almacenamiento y redes especializadas. | Puede utilizar hardware y almacenamiento común, beneficiándose de la infraestructura de Kubernetes. |
Ventajas de OpenShift Virtualization:
1. Reducción de la Complejidad: Si una organización desea simplificar su infraestructura de IT consolidando la gestión de VMs y contenedores en una única plataforma.
2. Optimización de Recursos: OpenShift permite una utilización más eficiente de los recursos al ejecutar aplicaciones en contenedores, que son más ligeros que las VMs tradicionales. Esto puede causar ahorros significativos en costos operativos y de hardware.
3. Modernización de Aplicaciones: Para empresas que están en proceso de modernización de sus aplicaciones, OpenShift Virtualization proporciona una transición más suave. Las aplicaciones pueden ser migradas a contenedores gradualmente, mientras que las VMs siguen siendo gestionadas en la misma plataforma.
4. Agilidad y Escalabilidad: OpenShift proporciona una mayor agilidad en el desarrollo y la implementación de aplicaciones, así como una mejor capacidad de escalado automático en comparación con las soluciones de virtualización tradicionales.
5. Migraciones operacionales: La arquitectura de contenedores permite migrar de forma fácil y sencilla los aplicativos entre distintos modos operacionales.
Ventajas de VMware:
1. Aplicaciones Críticas, Alta Disponibilidad y Recuperación ante Desastres: VMware ofrece características avanzadas mucho más maduras y con más tiempo en el mercado tanto de HA como de DR, que además han sido probadas y validadas en entornos misión critical. Para aplicaciones que no pueden permitirse tiempo de inactividad y que requieran de la seguridad que conlleva la experiencia de VMware, este será más adecuado.
2. Requisitos de Conformidad: En industrias altamente reguladas como la financiera, sanitaria y gubernamental, VMware cumple con estrictos requisitos de cumplimiento y certificaciones específicas que OpenShift aún no ha alcanzado.
3. Integración con Infraestructura Existente: Organizaciones con una infraestructura considerable basada en VMware pueden evitar los costos y la complejidad de migrar a una nueva plataforma.
4. Soporte para Aplicaciones Legacy: Algunas aplicaciones antiguas dependen de características de VMware no disponibles en OpenShift Virtualization, lo que hace necesario continuar con VMware.
5. Rendimiento de Aplicaciones Intensivas en I/O: VMware está optimizado para cargas de trabajo intensivas en I/O, como bases de datos y aplicaciones de análisis de datos, ofreciendo un mejor rendimiento que OpenShift Virtualization a día de hoy.
6. Madurez y Estabilidad del Producto: VMware tiene un historial largo y probado de estabilidad y rendimiento, lo que puede ser preferido por organizaciones que priorizan la estabilidad del producto.
7. Ecosistema y Herramientas de Gestión: VMware ofrece un ecosistema robusto de herramientas de gestión, seguridad, automatización y monitoreo más maduras y completas que las disponibles para OpenShift Virtualization.
Conclusión:
VMware sigue siendo la mejor opción para aquellos que ya posean infraestructura virtualizada con VMware o que requieran de un cumplimiento estricto de ciertos SLAs y requerimientos legacy. Por el contrario, Red Hat OpenShift Virtualization se presenta como una posible alternativa a VMware en entornos híbridos, de desarrollo de nuevas aplicaciones y/o entornos de trabajo mixto donde los aplicativos trabajan sobre VMs y contenedores.