¿Qué es Helm?

Hombre y mujer mirando una pantalla

¿Qué es Helm?

Helm es un gestor de paquetes para Kubernetes que simplifica el despliegue y la gestión de aplicaciones. Helm ayuda a reducir la complejidad de trabajar con Kubernetes, la plataforma de código abierto que automatiza el despliegue y el funcionamiento de aplicaciones en contenedores en varios servidores.

En lugar de crear y mantener manualmente docenas de archivos de configuración separados, Helm agrupa todo lo necesario para una aplicación en un único paquete reutilizable llamado gráfico Helm.

Si bien Kubernetes es potente, a menudo requiere una configuración extensa y detallada escrita en archivos YAML, que especifica cómo deben ejecutarse las aplicaciones, cómo se conectan y qué recursos necesitan.

La gestión manual de estas configuraciones por parte de desarrolladores, administradores de sistemas e ingenieros de DevOps, especialmente en múltiples entornos como desarrollo, pruebas y producción, puede llevar mucho tiempo y ser propensa a errores. Helm aborda este desafío mediante la introducción de la estandarización, la reutilización y el control de versiones, con características que incluyen reversiones y personalización específica del entorno.

Las últimas noticias tecnológicas, respaldadas por los insights de expertos

Manténgase al día sobre las tendencias más importantes e intrigantes de la industria sobre IA, automatización, datos y más con el boletín Think. Consulte la Declaración de privacidad de IBM.

¡Gracias! Ya está suscrito.

Su suscripción se entregará en inglés. En cada boletín, encontrará un enlace para darse de baja. Puede gestionar sus suscripciones o darse de baja aquí. Consulte nuestra Declaración de privacidad de IBM para obtener más información.

¿Qué es la contenerización?

Antes de sumergirnos en Helm, es fundamental comprender la contenerización, la base de Kubernetes y las herramientas nativas de la nube modernas.

La contenedorización empaqueta una aplicación con todo lo que necesita para ejecutar (código, bibliotecas y configuración) en una unidad liviana y portátil llamada contenedor. Esta capacidad permite que el software se ejecute de manera consistente en diversos entornos, desde la computadora portátil de un desarrollador hasta un entorno de nube de producción.

Los contenedores generalmente se basan en Linux y son más rápidos y eficientes que las máquinas virtuales tradicionales. También son adecuados para arquitecturas de microservicios, donde las aplicaciones se dividen en componentes más pequeños e implementables de forma independiente que pueden escalarse según sea necesario. En Kubernetes, estas cargas de trabajo en contenedores se ejecutan en un clúster, un grupo de máquinas que consta de un plano de control que gestiona el sistema y los nodos de trabajo que ejecutan aplicaciones en toda la infraestructura.

Docker, una plataforma de código abierto lanzada al público en 2013, es la herramienta de contenerización más utilizada. Hoy en día, la contenerización es una parte central del ecosistema nativo de la nube de código abierto, lo que permite un desarrollo más rápido, despliegues más confiables y una mayor flexibilidad operativa.

Kubernetes orquesta contenedores a escala automatizando el despliegue, el escalado y la gestión de recursos. Sin embargo, la gestión directa de las configuraciones de Kubernetes puede ser compleja y propensa a errores. Helm desempeña un papel clave aquí al simplificar, estandarizar y agilizar el despliegue y el mantenimiento de aplicaciones en contenedores.

Desarrollo de aplicaciones

Entérese: desarrollo de aplicaciones empresariales en la nube

En este video, el Dr. Peter Haumer analiza cómo es el desarrollo de aplicaciones empresariales modernas en la nube híbrida y hace una demostración de diferentes componentes y prácticas, incluidos IBM Z Open Editor, IBM Wazi y Zowe.

La evolución de Helm

Deis (adquirida posteriormente por Microsoft) creó Helm en 2016 como una de las primeras herramientas para simplificar la gestión de aplicaciones de Kubernetes. En 2018, el equipo donó el proyecto a la Cloud Native Computing Foundation (CNCF), que lo graduó como proyecto CNCF completo en 2020.

El desarrollo de código abierto de Helm se mantiene activamente en GitHub, donde colaboradores de todo el mundo contribuyen a su evolución. El sitio web oficial, helm.sh, proporciona documentación (documentos), descargas y recursos exhaustivos para ayudar a los usuarios a empezar y mantenerse actualizados.

Un hito clave fue el lanzamiento de Helm 3 a finales de 2019. Esta versión eliminó el componente Tiller de Helm 2, mejorando la seguridad y simplificando el control de acceso al interactuar directamente con las interfaces de programación de aplicaciones (API) de Kubernetes. Helm 3 también mejoró los procesos de actualización, la gestión de las dependencias y el soporte para los gráficos de las bibliotecas, haciéndolo más seguro, flexible y fácil de usar en las empresas.

Helm ha experimentado una adopción masiva en todo el ecosistema nativo de la nube. Según las encuestas recientes de CNCF, Helm es el gestor de paquetes de Kubernetes preferido, con una adopción del 75 % entre las organizaciones que ejecutan Kubernetes.1

Artifact Hub (que reemplazó al Helm Hub original) aloja miles de gráficos, y los principales proveedores de software proporcionan rutinariamente gráficos de Helm como su principal método de distribución de Kubernetes.

¿Cómo funciona Helm?

Helm simplifica la gestión de aplicaciones de Kubernetes al agrupar manifiestos de Kubernetes (archivos de configuración), plantillas de configuración y metadatos en paquetes reutilizables llamados gráficos de Helm. Estos gráficos contienen todas las especificaciones necesarias para generar los archivos YAML adecuados para los recursos de Kubernetes (como despliegues, servicios, controladores de ingress, volúmenes persistentes, mapas de configuración y secretos) que componen una aplicación. 

“YAML” es un acrónimo que significa "YAML Ain't Markup Language" o "Yet Another Markup Language". Es un formato de datos fácil de usar para los humanos que se utiliza para escribir archivos de configuración y ofrece una forma clara y estructurada de representar información que tanto las personas como los programas pueden leer.

Cuando se instala un gráfico, Helm aplica automáticamente estos recursos al clúster de Kubernetes de destino, con soporte integrado para el control de versiones, las reversiones y la gestión de dependencias.

Arquitectura y componentes de Helm

Helm funciona principalmente como una herramienta del lado del cliente que interactúa directamente con el servidor de API de Kubernetes para gestionar los despliegues de aplicaciones:

  • Cliente de Helm
  • Gráfico de Helm
  • Versión de Helm
  • Repositorios de Helm

Cliente de Helm

Un cliente Helm es una herramienta de línea de comandos (CLI) que interactúa con los clústeres de Kubernetes y gestiona gráficos y versiones. Esta herramienta es la que los desarrolladores y operadores utilizan a diario. A diferencia de kubectl, la herramienta de comandos nativa de Kubernetes, Helm gestiona aplicaciones completas en lugar de componentes individuales.

Gráfico de Helm

Un gráfico de Helm es un formato de paquete que contiene todas las definiciones de recursos necesarias para ejecutar una aplicación en Kubernetes. Los gráficos incluyen plantillas, valores de configuración predeterminados y metadatos.

Versión de Helm

Una versión de Helm es una instancia de un gráfico que se ejecuta en un clúster Kubernetes. Cada versión tiene un nombre único y puede gestionarse de forma independiente.

Repositorios de Helm o repos de Helm

Los repositorios de Helm son colecciones de gráficos que se pueden compartir y distribuir, de forma similar a las tiendas de aplicaciones o bibliotecas de paquetes de otros ecosistemas.

¿Cómo se estructura un gráfico de Helm?

Un gráfico de Helm es una colección de archivos que describen un conjunto relacionado de recursos de Kubernetes. La estructura del gráfico incluye:

  • Las plantillas de helm son manifiestos de Kubernetes con plantillas que se adaptan a diferentes entornos de implementación, como el desarrollo, la puesta en escena y la producción, mediante parámetros configurables.
  • Archivos de valore (values.yaml) Son valores de configuración predeterminados que se pueden anular para diferentes despliegues. Los valores se pueden proporcionar en formato YAML o JSON.
  • Metadatos del gráfico (chart.yaml) describe el nombre del gráfico, la versión, la apiVersion, las dependencias y los mantenedores.
  • La documentación incluye contenidos legibles (por ejemplo, archivos Léame, guías de inicio rápido o instrucciones de uso) que ayudan a los usuarios a entender cómo desplegar y operar el gráfico.

Beneficios de Helm para las organizaciones empresariales

Los desarrolladores de Kubernetes, administradores de sistemas y otros profesionales de operaciones de TI (ITOps) en organizaciones empresariales utilizan Helm para realizar tareas tales como:

  • Eficiencia operativa
  • Mitigación de riesgos
  • Gobernanza y cumplimiento normativo
  • Productividad de desarrolladores

Eficiencia operativa

Helm reduce significativamente la complejidad operativa asociada a la gestión de los despliegues de Kubernetes. Al automatizar y estandarizar la gestión de la configuración, Helm agiliza los flujos de trabajo que, de otro modo, implicarían una edición manual de YAML compleja y propensa a errores.

Esta eficiencia cobra especial importancia a medida que las organizaciones escalan sus entornos nativos de la nube y adoptan tecnologías emergentes, como las cargas de trabajo de inteligencia artificial (IA) y machine learning (ML) y la computación edge.

Mitigación de riesgos

Las capacidades de reversión integradas de Helm proporcionan redes de seguridad cruciales para los despliegues de producción. Si una actualización falla o causa problemas, los equipos pueden volver instantáneamente a la versión funcional anterior con un solo comando. Esta característica reduce el tiempo medio de recuperación (MTTR) de los incidentes relacionados con el despliegue, que es un requisito esencial para las aplicaciones de alta disponibilidad y los servicios de inferencia de IA en tiempo real.

Gobernanza y cumplimiento normativo

Los gráficos de Helm y los esquemas pueden ser controlados por versiones y revisiones de código como cualquier otro artefacto de software. Este enfoque proporciona registros de auditoría para los despliegues y garantiza que los cambios pasen por los procesos de aprobación adecuados. Muchas organizaciones utilizan flujos de trabajo de Helm con GitOps para mejorar la gobernanza, lo que permite a las organizaciones cumplir con los requisitos de cumplimiento de las industrias reguladas que adoptan arquitecturas nativas de la nube.

Productividad de desarrolladores

Al abstraer la complejidad de Kubernetes, Helm permite a los desarrolladores centrarse en la lógica de las aplicaciones más que en la configuración de la infraestructura. Los equipos pueden realizar despliegues de autoservicio que utilizan gráficos preaprobados, lo que reduce la dependencia de los equipos de la plataforma y acelera la velocidad de desarrollo necesaria para las iniciativas competitivas de IA y transformación digital.

Casos de uso de Helm

  • Gestión del ciclo de vida de las aplicaciones
  • Despliegue de software de terceros
  • Entornos multiinquilino
  • Integración y escalado de CI/CD
  • Cargas de trabajo de IA/ML y GPU

Gestión del ciclo de vida de las aplicaciones


Las organizaciones suelen emplear Helm para gestionar aplicaciones personalizadas en entornos de desarrollo, preparación y producción. Un mismo gráfico puede configurar con diferentes límites de recursos, réplicas y banderas de características para cada entorno.

Despliegue de software de terceros


La instalación y gestión de software de terceros, como bases de datos, herramientas de supervisión o componentes de CI/CD, es más sencilla con Helm. En lugar de seguir una compleja documentación de instalación, los equipos pueden instalar configuraciones listas para producción con un solo comando de instalación de Helm.

Entornos multiinquilino


Helm sobresale en escenarios en los que la misma aplicación debe desplegarse varias veces con diferentes configuraciones en espacios de nombres separados. Las plataformas SaaS, por ejemplo, a menudo utilizan Helm para gestionar despliegues específicos de clientes de sus aplicaciones.

Integración y escalado de CI/CD


Helm se integra perfectamente con pipelines de integración continua y despliegue continuo, sirviendo como mecanismo de despliegue en pipelines de entrega automatizada. Las plataformas de comercio electrónico utilizan Helm para gestionar el escalado estacional, desplegando rápidamente otras instancias de aplicaciones durante los periodos de mayor tráfico y reduciendo el escalado durante las horas de menor actividad, todo ello gestionado a través de versiones de Helm.

Cargas de trabajo de IA/ML y GPU


Helm es una solución ideal para administrar cargas de trabajo de inteligencia artificial (IA) y machine learning (ML), que a menudo requieren configuraciones complejas, incluidos Recursos de GPU, almacenamiento especializado, componentes de servicio de modelos y sistemas de monitoreo. Las organizaciones utilizan Helm para estandarizar el despliegue de pipelines de machine learning (ML), asegurando entornos consistentes para las cargas de trabajo de capacitación y inferencia en clústeres de desarrollo y producción.

Helm versus enfoques alternativos

Helm vs. Kustomize

Kustomize es otra solución ampliamente adoptada para gestionar las configuraciones de Kubernetes, aunque adopta un enfoque diferente al de Helm. Mientras que Helm emplea plantillas para generar manifiestos, Kustomize emplea un enfoque declarativo con parches y superposiciones para modificar las configuraciones base.

Kustomize es más simple y requiere una curva de aprendizaje más baja, pero carece de las capacidades de administración de paquetes de Helm, control de versiones y características de reversión. Muchas organizaciones emplean ambas herramientas juntas: Kustomize gestiona las variantes de configuración y Helm gestiona el ciclo de vida general de la aplicación.

Operadores de Helm vs. Kubernetes

Los operadores de Kubernetes son controladores específicos de la aplicación que amplían las API de Kubernetes para gestionar aplicaciones complejas. Mientras Helm se enfoca en el empaquetado y el despliegue, los operadores brindan una gestión continua del ciclo de vida. Pueden manejar tareas operativas específicas de la aplicación, como copias de seguridad, escalado y actualizaciones.

Helm es más adecuado para el despliegue de aplicación y cargas de trabajo más simples. Al mismo tiempo, los operadores se destacan en la gestión de aplicaciones con estado con requisitos operativos complejos. Muchas organizaciones usan Helm para desplegar operadores ellos mismos.

Soluciones relacionadas
IBM Concert

Optimice la gestión de aplicaciones y obtenga insights generados por IA sobre los que puede actuar mediante IBM® Concert, una plataforma de automatización de tecnología impulsada por IA generativa.

Explorar IBM Concert
Software y soluciones de Application Performance Management

Conecte Full Stack Observability con la gestión automatizada de recursos de aplicaciones para abordar los problemas de rendimiento antes de que afecten la experiencia del cliente.

Explore las soluciones de Application Performance Management
Servicios de gestión de aplicaciones en nube híbrida

Descubra los servicios altamente innovadores de IBM® Consulting para la gestión de entornos complejos, híbridos y multinube.

Explore los servicios de administración de aplicaciones
Dé el siguiente paso

Con la IA, IBM Concert muestra insights cruciales sobre operaciones y proporciona recomendaciones de mejora específicas de las aplicaciones. Descubra cómo Concert puede hacer avanzar su negocio.

Explore Concert Realice un recorrido autoguiado
Notas de pie de página

1. Encuesta anual CNCF 2023, Cloud Native Computing Foundation, 2023