Kubeflow es una plataforma de aprendizaje automático o machine learning (ML) nativa de Kubernetes que simplifica los ciclos de vida de construcción, capacitación, y despliegue de modelos en diversas infraestructuras. Hemos utilizado ampliamente Pipelines para codificar flujos de ML para varios modelos a través de casos de uso de experimentación, entrenamiento, y servicio. Además de Pipelines, Kubeflow incluye múltiples componentes, entre los que encontramos muy útil el ajuste de hiperparámetros con Katib y multi-tenancy.
Kubeflow es interesante por dos motivos. El primero es su uso innovador de Operadores Kubernetes, el cual habíamos destacado en nuestra edición del Radar de abril 2019. El segundo es que provee una manera de codificar y modelar cargas de trabajo para aprendizaje de máquinas que facilita trasladarlas de un entorno de ejecución a otro. Kubeflow incluye componentes tales como Jupyter notebooks, canalizaciones de datos y herramientas de control. Varios de estos componentes vienen empaquetados como operadores de Kubernetes, para aprovechar su habilidad de reaccionar a los eventos generados por pods mediante la implementación de varias fases de la carga de trabajo. Al tomar los programas individuales y los datos y empaquetarlos como contenedores es posible trasladar cargas de trabajo enteras de un entorno a otro. Esto puede resultar conveniente al trasladar una carga de trabajo útil pero computacionalmente exigente y desarrollada en la nube a una supercomputadora personalizada o a un clúster de unidades de procesamiento tensorial.