El Ministerio de Defensa de Israel ofrece servicios de nube privada utilizando Red Hat OpenShift Virtualization
|Introducción a OpenShift Virtualization
- OpenShift Virtualization permite gestionar máquinas virtuales (VMS) mediante Kubernetes, lo que proporciona una plataforma unificada para la ejecución de contenedores y máquinas virtuales. Esta tecnología se basa en KVM, un sistema que ha demostrado su eficacia en entornos como OpenStack y RHEL.
- Al utilizar OpenShift, se aprovechan los servicios del ecosistema, como almacenamiento y redes, facilitando la administración y operación de las cargas de trabajo virtuales. Las VMS pueden ser gestionadas tanto de manera centralizada como de forma autogestionada por los desarrolladores.
- La experiencia con máquinas virtuales en OpenShift es comparable a la de otras plataformas de virtualización, ofreciendo interfaces ricas y acceso remoto, ya sea mediante SSH o interfaces gráficas.
- OpenShift también permite la migración en caliente, lo que significa que se pueden mover máquinas virtuales entre nodos sin necesidad de apagarlas. Además, soporta opciones de alto rendimiento y protección de datos, trabajando con socios de protección de datos para ofrecer un respaldo integral de las VMS.
«OpenShift Virtualization permite gestionar VMS como ciudadanos de primera clase dentro del clúster.»
Beneficios de la Virtualización en OpenShift
- Una de las principales ventajas de usar OpenShift es la capacidad de correr contenedores y máquinas virtuales en una misma plataforma, lo que simplifica la administración y reduce la necesidad de manejar dos entornos separados.
- La escalabilidad es otro beneficio clave, ya que cualquier carga de trabajo dentro del clúster se beneficia automáticamente al escalar el mismo. Tanto para contenedores como para máquinas virtuales, la infraestructura puede adaptarse a las necesidades crecientes.
- Las máquinas virtuales se convierten en un componente de código, lo que permite utilizar herramientas y métodos de implementación que son habituales para los contenedores. Esto incluye la posibilidad de gestionar definiciones de máquinas virtuales en repositorios de código y utilizar sistemas de gestión como Helm o Tecton.
«Las máquinas virtuales ahora son componentes de código, lo que permite implementaciones consistentes al igual que con los contenedores.»
Retos enfrentados por el Ministerio de Defensa de Israel
- El Ministerio de Defensa de Israel (MOD) presentaba retos significativos con su implementación de OpenStack, que estaba envejeciendo y dificultaba el soporte y la gestión. La combinación de versiones no soportadas complicaba aún más la situación, causando cuellos de botella en el rendimiento.
- OpenStack, siendo una solución más especializada, requería de dos plataformas diferentes para ejecutar VMS y contenedores, lo cual generaba un esfuerzo considerable en términos de personal y recursos.
- A medida que la versión de OpenStack acercaba al fin de su soporte, la dificultad en el proceso de actualización y el surgimiento de problemas de rendimiento se volvieron evidentes. Esto impulsó la necesidad de pensar en alternativas más eficientes que atendieran las crecientes demandas del MOD.
«La combinación de versiones no soportadas complicaba el soporte y causaba cuellos de botella en el rendimiento.»
Requisitos de la nueva plataforma
- Se discutió la necesidad de avanzar y construir un nuevo centro de datos para manejar el creciente volumen de trabajo. Esta expansión presenta una oportunidad de aprendizaje, ya que un nuevo centro de datos proporciona un «green field» que permite la mejora de las plataformas existentes.
- Se identificaron dos tipos de requisitos: los de plataforma y los de centro de datos. Desde la perspectiva de la plataforma, se busca ofrecer a los usuarios la capacidad de ejecutar máquinas virtuales (VM) y contenedores en una misma plataforma, garantizando un rendimiento óptimo.
- También es fundamental el soporte para sistemas operativos tanto Linux como Windows, lo que implica la necesidad de una plataforma flexible con una comunidad activa de desarrolladores que permita compartir conocimientos y resolver problemas colaborativamente.
«Al construir un nuevo centro de datos, es la mejor oportunidad para aprender y mejorar nuestras plataformas.»
Alternativas de plataforma: OpenStack vs Kubernetes
- Ante la decisión de continuar con OpenStack o adoptar Kubernetes, se consideran factores organizativos y técnicos. OpenStack representa una continuación del familiar entorno actual, mientras que Kubernetes supone una gran transición para el equipo y los clientes.
- La opción de actualizar OpenStack 16 se presenta como la más segura, evitando la necesidad de capacitación adicional tanto para clientes como para el personal. Sin embargo, optar por Kubernetes podría llevar a innovaciones significativas y a una mayor adaptación a las microservicios.
«La elección no es fácil; implica un gran cambio tanto para el personal técnico como para los clientes.»
Implementación de OpenShift como solución
- Después de un análisis exhaustivo, se decidió implementar OpenShift Virtualization. Esta solución permite ejecutar tanto cargas de trabajo de contenedores como de máquinas virtuales en una plataforma unificada.
- OpenShift alinea con la visión de la organización y fomenta la adopción de microservicios, ofreciendo un rendimiento óptimo. A pesar de ser pioneros en este enfoque, se confía en la comunidad de soporte de OpenShift.
«OpenShift Virtualization nos permite unificar cargas de trabajo y alinearnos con nuestra visión empresarial.»
Visión de la nueva nube resiliente
- La nueva visión de la nube tiene como objetivo ser lo más resiliente posible, capaz de resistir fallos de hardware, problemas de energía y errores humanos. Se definieron arquitecturas que aseguran esta resiliencia, incluyendo la conexión de servidores a múltiples fuentes de energía.
- Se busca minimizar el impacto de cualquier fallo y garantizar que cualquier problema resulte en una degradación parcial, no en fallos catastróficos.
«Nuestra meta es crear una infraestructura que soporte los peores escenarios posibles.»
Preparativos para la migración a la nueva nube
- La migración a la nueva plataforma requiere una planificación cuidadosa, incluidas evaluaciones técnicas, cronogramas y capacitación para los clientes y el personal. Esto involucra asegurar que todos estén bien informados sobre los cambios y ventajas del nuevo sistema.
- Se ejecuta un entorno de nube privado en paralelo durante la migración para garantizar una transición fluida.
«La comunicación proactiva y la formación son claves para una migración exitosa.»
Proceso de Colaboración y Pruebas de Concepto (POC)
- Se sugirió trabajar en conjunto desde nuestras oficinas para realizar un POC con el cliente. Esto implicó discusiones frecuentes con el equipo de ingeniería y producto para evaluar el entorno del cliente.
- Al principio, el POC se desarrolló en un entorno proporcionado por el cliente, alcanzando eventualmente un punto estable. Posteriormente, se trasladó a un entorno de semi-nube donde se realizó una prueba a gran escala.
- El proyecto fue complejo, durando cerca de un año, durante el cual el cliente decidió que usaría OpenShift Virtualization. El compromiso fue total para garantizar el éxito del cliente. Se implementó un programa de alta interacción con ingenieros de marketing para facilitar el proceso.
«Estamos todos comprometidos para que el cliente tenga éxito.»
Implementación de Infraestructura y Despliegue en Nubes
- La infraestructura de nube se desplegó en dos centros de datos físicos para reducir el riesgo de fallos. Se establecieron dos clústeres en cada centro de datos, asegurando que ambos tuvieran recursos igualmente distribuidos.
- Se configuró un clúster para cada aplicación, como una aplicación de aguacate y una de plátano, divididas entre los centros de datos para optimizar la distribución y operación.
- La gestión de servidores se realizó utilizando una plataforma de virtualización que permite correr contenedores y máquinas virtuales en el mismo entorno.
«La distribución de recursos entre clústeres asegura un funcionamiento sin interrupciones.»
Mejora Continua y Nuevas Demandas del Cliente
- Con el paso a producción, se identificaron nuevos desafíos y la necesidad de continuar mejorando la infraestructura. Los desarrolladores son impulsados hacia estándares nativos, utilizando enfoques de automatización.
- Un área de alta demanda es la implementación de GPU para el entrenamiento y la inferencia. Se está explorando la creación de clústeres anidados y el uso de tecnologías de terceros para garantizar la estabilidad y actualizaciones regulares.
«Estamos trabajando para ofrecer una plataforma de entrenamiento y servicios con GPU para satisfacer la demanda del cliente.»
Futuras Actualizaciones y Mejora de Virtualización
- La conversación aborda las próximas actualizaciones de un servicio de máquinas virtuales que aún se encuentran en una versión anterior. Se prevé que estas actualizaciones se implementen pronto en diferentes regiones, lo que permitirá a los clientes aprovechar nuevas funcionalidades.
- Se menciona que en el ámbito del servicio, el grupo de ruido está trabajando activamente en la implementación de «piscinas de máquinas virtuales», un enfoque que se prevé sea una mejora significativa en comparación con las configuraciones replicadas existentes. A diferencia de los conjuntos de réplicas tradicionales, estas «piscinas» todavía no están integradas en el producto, pero se espera su lanzamiento en próximas versiones.
- La funcionalidad se parecerá a las características de escalado en Kubernetes y se considera esencial para mejorar la virtualización.
«Estamos trabajando en algo nuevo que se llamará piscinas de máquinas virtuales, lo cual será un avance importante para la virtualización.»