Helm: gestor de aplicaciones para Kubernetes
CLOUD NATIVE, INFRAESTRUCTURA.El desarrollo de aplicaciones Kubernetes, está teniendo lugar de forma acelerada, pero son muchos los retos a resolver con este nuevo paradigma.
¿Qué es Helm?
Helm (del término marítimo de timón) es una herramienta para gestionar aplicaciones de Kubernetes. Helm te ayuda a timonear Kubernetes usando cartas de navegación, que en inglés se conocen como Helm Charts. Aunque nos gustan las referencias de marítimas de Helm y Kubernetes, el término ‘carta de navegación’ o ‘carta’ puede ser más difícil de entender que Chart.
La principal función de Helm es definir, instalar y actualizar aplicaciones complejas de Kubernetes. Helm es mantenido por la CNCF en colaboración con Microsoft, Google, Bitnami y la comunidad de Helm.
Helm Charts - Las cartas de navegación en Kubernetes
Con Helm Charts es posible crear, versionar y publicar una aplicación Kubernetes. Cuando usamos Helm Charts tenemos un asistente de optimización que facilita la administración e instalación de las aplicaciones Kubernetes y el proceso de empaquetamiento.
Helm Charts se divide en dos vertientes: una parte es Helm, como cliente y la otra es Tiller como servidor.
Tiller - servidor de Helm
Tiller es el componente que se encarga de la gestión de los Charts, específicamente en sus instalaciones. Interactúa directamente con el API de Kubernetes para instalar, actualizar, consultar y eliminar recursos Kubernetes. También almacena los objetos de cada release o distribución.
Helm - el cliente
Por su parte, Helm se ejecuta directamente en un equipo o en el dispositivo elegido para la ejecución. Los paquetes Helm están compuestos de una descripción del paquete y de archivos contenedores de manifiestos Kubernetes.
Beneficios de Helm
Al crear cartas de navegación de Helm, los Helm Charts sirven para describir incluso las aplicaciones más complejas. Ofrecen una instalación repetible de la aplicación, manteniendo un único punto de control.
Las actualizaciones de Helm Charts son sencillas y más fáciles de utilizar para los desarrolladores. Los Helm Charts buscan ser fáciles de versionar, compartir y alojar a través de tecnologías cloud.
Al desplegar una aplicación nueva, es posible tener de devolverla por cualquier razón. El proceso de “rollback” con Helm Charts es sencillo: se usa para retroceder la versión a una publicación anterior en caso de que el proceso no haya sido satisfactorio.
¿Dónde encuentro Helm Charts?
Podemos encontrar Helm Charts públicos en repositorios de Helm, por ejemplo en Kubeapps Hub. En este directorio se charts en diferentes estados. Encontrarás algunos en desarrollo, marcas como incubator así como otros estables marcados como stable.
Es fantástico encontrar Charts con todo lo necesario para ejecutar un CMS como Drupal, sistemas de colaboración como Mattermost o herramientas de integración como Jenkins.
¿Cómo hacer mis propios Helm Charts?
Para escribir tus propios Charts, puedes seguir la Guía de Mejores Prácticas para Helm Charts en la documentación oficial. El repositorio en Github para charts oficiales de Helm es también una fuente importante de información para el desarrollo.
Es importante entender que los Helm Charts pueden ser totalmente privados. Nada nos obliga a hacerlos públicos en los repositorios existentes. Es posible crear nuestro propio repositorio privado.
El futuro de Helm
Helm es una solución importante para hacer más efectiva la adopción de contenedores. Aún es un proyecto en proceso de adopción masiva, aunque tiene todo el apoyo de la CNCF. Puedes consultar la hoja de ruta en el Helm Roadmap.
Si tu organización tiene interés en implementar proyectos de desarrollo de aplicaciones de la mano de expertos o eres un profesional con experiencia e interés en estos temas nos encantaría entrar en contacto.