O que é Helm?  Os benefícios e desvantagens

¿Qué es el timón? Los beneficios y desventajas

Para cualquier equipo de desarrollo encargado de implementar contenedores a escala, Helm debe considerarse esencial.

Imagem em destaque

La mayoría de las empresas que buscan volverse ágiles o emprender una transformación digital han considerado los contenedores como una alternativa a las aplicaciones monolíticas estándar. La razón de esto es que los contenedores hacen que sea mucho más fácil no sólo la implementación a escala, sino también la implementación de aplicaciones y servicios que se adaptan mejor a las necesidades modernas centradas en la nube. También ayudan con la incorporación de automatización CI/CD, al tiempo que ofrecen ampliación y reducción automática y un nivel de conmutación por error capaz de proporcionar un tiempo de actividad de casi cinco a nueve segundos.

Lo que la mayoría de la gente no dice sobre los contenedores (especialmente Kubernetes) es que implementar y administrar estas implementaciones no es fácil . No solo es necesario primero habilitar servicios que permitan la implementación/administración de contenedores, sino que también es necesario crear cuidadosamente manifiestos complejos que pueden consumir el tiempo de un desarrollador.

Un gráfico que ilustra la complejidad de implementar y gestionar contenedores tradicionales.

Para que esto lleve aún más tiempo, cada vez que un desarrollador tiene la tarea de implementar otro contenedor de pila completa, vuelve a la mesa de dibujo del manifiesto. Y a medida que sus aplicaciones y servicios se vuelven cada vez más complejos, este ciclo de vida se vuelve más desafiante y requiere más tiempo.

Afortunadamente, existe una herramienta disponible para ayudar a aliviar la complejidad y el tiempo que implica implementar aplicaciones y servicios en contenedores.

Esta herramienta se llama Helm.

¿Qué es el timón?

Piense en Helm como apto o DNF para contenedores. Este es un administrador de paquetes que permite descargar gráficos, que son colecciones preempaquetadas de todos los recursos preconfigurados y versionados necesarios para implementar un contenedor.

Los gráficos de Helm están escritos en YAML y contienen todo lo que sus desarrolladores necesitan para implementar un contenedor en un clúster de Kubernetes. Esto hace posible descargar un gráfico, personalizarlo (si es necesario) e implementarlo en su clúster con un solo comando. Esta simplificación contribuye en gran medida a que la implementación de contenedores sea más eficiente, confiable y repetible.

Una captura con lente macro de un gráfico Helm con una mano apuntando al gráfico.

Piénselo de esta manera: los gráficos de timón son como plantillas que puede descargar, usar y reutilizar para la implementación de su contenedor. Entonces, en lugar de reinventar siempre la rueda o comenzar desde cero, siempre puedes comenzar con un manifiesto predefinido e implementarlo desde allí.

Los beneficios de usar Helm

Los beneficios de usar Helm ya deberían ser obvios. En primer lugar, pueden ahorrarle mucho tiempo a su equipo de desarrollo. En lugar de tener que empezar desde cero cada vez, sus desarrolladores pueden recurrir a los gráficos de Helm para obtener una ventaja considerable en la implementación.

Al utilizar Helm, su empresa se beneficiará inmediatamente de:

  • Productividad muy mejorada
  • Complejidad reducida de las implementaciones.
  • Implementación de aplicaciones nativas de la nube
  • Implementaciones y resultados más reproducibles
  • Capacidad de aprovechar Kubernetes con un solo comando CLI
  • Mejor escalabilidad
  • Capacidad de reutilizar gráficos de Helm en todos los entornos
  • Canalización de CI/CD simplificada
  • Regrese fácilmente a versiones anteriores de una aplicación (si algo sale mal)
  • Numerosos enlaces de CI/CD para automatizar acciones e incluso programar controles de estado

Otro beneficio muy importante de usar Helm es que sus desarrolladores ya no necesitarán crear archivos YAML individuales para cada aplicación en una pila. Con un gráfico Helm, obtiene todo lo necesario para la implementación, incluidas las configuraciones de recursos (que se pueden adaptar según sea necesario). Dado lo complicadas que pueden ser las configuraciones de funciones (y la facilidad con la que pueden causar problemas si se configuran mal), esto a menudo se considera un gran atractivo para Helm.

Una imagen hiperrealista de una computadora portátil que implementa Kubernetes, con una mano apuntando a la computadora portátil.

Incluso un simple manifiesto de Kubernetes puede resultar complicado. Aquí hay un ejemplo muy básico:

 Versión api: aplicaciones/v1
 tipo: Despliegue
 metadatos:
 nombre: postgres

 etiquetas:
 aplicación: base de datos
 Especificaciones:
 réplicas: 1
 selector:
 coincidirEtiquetas:
  aplicación: base de datos
 plantilla:
 metadatos:
  etiquetas:
   aplicación: base de datos
 Especificaciones:
  contenedores:
  - nombre: postgres
   imagen: postgres: último
   puertos:
   - puerto de contenedores: 5432
   soportes de volumen:
   - nombre: sqlscript 
ruta de montaje: /docker-entrypoint-initdb.d
 entorno:
 - nombre: POSTGRES_USER
 valor: "postgres"
 - nombre: POSTGRES_PASSWORD
 valor: "postgres"
 volúmenes:
 - nombre: sqlscript
 Mapa de configuración:
 nombre: pg-init-script

Ahora, imagina que necesitas crear una pila completa mucho más complicada (con múltiples aplicaciones y servicios que incluso se conectan a API de terceros). Si sus desarrolladores tienen que escribirlos para cada implementación, estarán perdiendo un tiempo precioso.

En su lugar, podían descargar un gráfico de Helm, personalizar lo que fuera necesario en el gráfico descargado y luego implementarlo con un solo comando. Esto es considerablemente más eficiente que escribir todo desde cero.

Otro gran beneficio de utilizar gráficos Helm es que permiten a los desarrolladores de contenedores más nuevos ponerse al día rápidamente con el funcionamiento de Kubernetes. Descargue un gráfico de Helm y comience a buscar en los archivos YAML para ver qué es. Saber que todo lo que hay dentro del paquete funciona como está es una excelente manera de aprender cómo se crea un manifiesto exitoso.

Las desventajas de usar Helm

No todo es perfecto con Helm. Si bien la curva de aprendizaje no es tan pronunciada como hacer todo manualmente, sus desarrolladores tendrán que ponerse al día no solo con la personalización del manifiesto sino también con las herramientas de línea de comandos de Helm.

Otra desventaja es la complejidad de Helm . Sus desarrolladores no solo extraerán manifiestos simples de un solo archivo, sino también paquetes muy complicados de definiciones de aplicaciones completas que pueden tardar algún tiempo en analizarse y personalizarse para satisfacer sus necesidades.

Pero incluso con estos dos inconvenientes, Helm sigue haciendo que un ciclo de vida de software muy complicado sea mucho más manejable.

Comparación de los pros y los contras de Helm

Ventajas del timón

Contras del timón

Capacidad para crear plantillas para la gestión de paquetes. Personalizar los gráficos de Helm puede ser complejo
Proporciona reversiones, esenciales para la recuperación de errores. Dependencia excesiva de los componentes comunitarios
Incluye una opción de simulación para solucionar problemas de implementaciones. Gestión de valores sensibles dependientes de aplicaciones de terceros.
Admite la implementación de aplicaciones en contenedores en Kubernetes
Facilita las prácticas de DevOps y las implementaciones simultáneas.
Modelado de archivos de valores para personalizar entornos
Efectivo para aplicar actualizaciones de seguridad
Ofrece escalabilidad y automatización manteniendo la infraestructura como código.
Aumenta la velocidad en las implementaciones y utiliza el código fuente como documentación.
Proporciona confiabilidad como una herramienta consolidada con amplias funciones.

Conclusión

Si su equipo de desarrollo recién está comenzando a sumergirse en contenedores y Kubernetes (o si recién está comenzando a ampliar realmente sus implementaciones), debería considerar seriamente Helm como una herramienta imprescindible. Esto es especialmente cierto si desea que estos equipos trabajen con la máxima eficiencia y que sus implementaciones no solo sean altamente disponibles sino también confiables y repetibles.

contenido relacionado

Regresar al blog

Deja un comentario

Ten en cuenta que los comentarios deben aprobarse antes de que se publiquen.