Por Jeremy Eder, ingeniero de software sénior principal, Red Hat
Red Hat, la proveedora de software open source más grande del mundo, anunció el lanzamiento de una nueva versión de su plataforma open source de container de aplicaciones Red Hat OpenShift Container Platform 3.10. Con esta actualización, la plataforma Kubernetes empresarial de Red Hat está en óptimas condiciones para traer aplicaciones sensibles al rendimiento a Kubernetes, y manejar estas exigentes cargas de trabajo ofreciendo una plataforma moderna y totalmente abierta sobre la cual ejecutar aplicaciones de próxima generación.
Las empresas se centran en la transformación digital cada vez más (utilizando tecnologías digitales como los contenedores de Linux y Kubernetes) como forma de impulsar ofertas diferenciadas y optimizar la experiencia del cliente. De esta transformación digital surgen nuevas cargas de trabajo —como la inteligencia artificial, el aprendizaje automático y las redes neurales— que consumen y analizan las enormes cantidades de datos creados por la empresa digital para impulsar la innovación. No menos importantes son las actuales aplicaciones para el procesamiento de operaciones financieras y las telecomunicaciones, entre otras, que demandan un alto rendimiento y baja latencia para propiciar la eficiencia.
Sean o no emergentes, este tipo de cargas de trabajo eran consideradas como específicas de los recursos físicos, dado que requerían necesariamente de la velocidad y el rendimiento bruto que se logran al ejecutarlas directamente en hardware de servidores, sin ninguna capa de software abstraída.
Gracias al trabajo realizado por Red Hat en conjunto con sus socios y la comunidad de Kubernetes, la última versión de Red Hat OpenShift 3.10 ofrece diversas funcionalidades clave, que hacen posible ejecutar estas cargas de trabajo en modo de producción. Esto significa que las organizaciones ya no deben depender de mantener hardware específico para determinadas cargas de trabajo o permanecer cautivas de un proveedor de nube para ejecutar estas aplicaciones. Red Hat OpenShift Container Platform 3.10 ofrece más alternativas cuando se trata de sentar las bases para aplicaciones sensibles al rendimiento.
¿Cuáles son estas funcionalidades?
Hugepages
Una de las novedades presentes en Red Hat OpenShift Container Platform 3.10 es el soporte pleno de hugepages. Hugepages es una técnica para optimizar el rendimiento, comúnmente utilizada para aplicaciones que consumen una gran cantidad de memoria, como las bases de datos, cargas de trabajo de java, motores de coincidencias, entre otros. A menudo, esta clase de aplicaciones pueden clasificarse como sensibles al rendimiento, y esta incorporación despeja el camino para que estas cargas de trabajo funcionen sobre OpenShift.
La función hugepages –anteriormente disponible sólo como Versión Tecnológica Preliminar–soporta la asignación y el consumo de hugepages preasignadas, convirtiéndolas en entidades de primer nivel en OpenShift. Si existen hugepages disponibles en un nodo, el Kubelet las expondrá para que sean utilizadas por las aplicaciones.
CPU Manager
La capacidad de la CPU en OpenShift y Kubernetes se presenta y prevé en mili-núcleos. El comportamiento predeterminado de las aplicaciones ejecutadas en OpenShift es compartir el tiempo de esos mili-núcleos entre todas las CPU disponibles del sistema. Este enfoque funciona para muchas aplicaciones.
Sin embargo, existe una serie de aplicaciones —como la inteligencia artificial, el aprendizaje automático y la ciencia de los datos, para nombrar algunas— cuyo rendimiento se ve afectado por este enfoque de tiempo compartido. La funcionalidad CPU Manager, presente en la última versión de Red Hat OpenShift, proporciona a estas aplicaciones la forma de programar y garantizar núcleos completos para ser utilizadas por ellas, lo que da como resultado menores errores en el TLB y cambios de contexto, y mejora la residencia del código de la aplicación en la memoria caché de la CPU.
Device Manager
Device Manager es una nueva funcionalidad también presente en OpenShift 3.10. Este componente de Kubelet provee un mecanismo para anunciar recursos de hardware de nodos especializados con la ayuda de plugins de Kubelet, conocidos como plugins de dispositivos. Los plugins de dispositivos son imágenes de contenedores provistas por el proveedor (generalmente daemonsets) que funcionan con el Kubelet para anunciar recursos de hardware, como GPU o FPGA.
Con estas funcionalidades, las organizaciones pueden ejecutar aplicaciones sobre OpenShift de manera nativa, ayudando a facilitar la transición entre las plataformas heredadas y las cargas de trabajo contenerizadas ejecutadas sobre Kubernetes. Esto permite una mayor libertad de movimiento de las aplicaciones, y amplía las capacidades de cargas de trabajo sensibles al rendimiento en toda la nube híbrida, además de ofrecer más alternativas a las empresas a medida que elaboran sus estrategias de transformación digital para prestar mejores servicios a sus clientes y usuarios finales.