Crea tus Helm Charts: reutilizables, escalables y listos para producción

Si alguna vez has desplegado microservicios en Kubernetes conoces el problema: montones de archivos YAML, copiar y pegar configuraciones y manifiestos ligeramente distintos para cada servicio. Funciona hasta que necesitas escalar. Ahí es donde Helm cambia las reglas del juego. Creando tus propios charts puedes convertir manifiestos desordenados en bloques reutilizables que escalan sin esfuerzo a medida que tu aplicación crece.
En este artículo explico cómo construí una aplicación de compras con múltiples microservicios desplegada en AWS EKS con Terraform y, lo más importante, cómo convertí todo en un sistema modular usando charts personalizados de Helm. Antes de desplegar una app de microservicios, como ingeniero DevOps debes conocer qué microservicios vas a desplegar, qué servicios se comunican entre sí, cómo se comunican, qué bases de datos usan y en qué puertos corren.
Por qué crear tus propios Helm charts Reutilización para evitar YAML duplicado, escalabilidad para añadir servicios fácilmente, flexibilidad usando values.yaml para configuraciones por entorno y consistencia entre componentes como Redis, ingress y microservicios que comparten estructura. En vez de un despliegue puntual, este enfoque me dio un marco para crecer sin dolores de cabeza.
Prerequisitos Conocimientos básicos de Kubernetes sobre deployments, services e ingress y conocimientos básicos de Terraform para aprovisionar infraestructura como init, apply y destroy.
Infraestructura con Terraform y EKS Usé Terraform para aprovisionar la base: una VPC con subnets, un clúster EKS, roles IAM y la red. Con esto poner en marcha o destruir el clúster fue tan sencillo como inicializar Terraform, aplicar y destruir el stack.
Diseño modular: charts por componente En lugar de volcar todos los microservicios en un solo manifiesto, creé un chart por componente. La estructura quedó así: un directorio manifests con charts para ingress, redis y cada microservicio y una carpeta values con values.yaml específicos por servicio. Cada chart se genera con helm create nombre-del-chart y contiene templates deployment y service además de values.yaml y Chart.yaml. Los values por servicio en manifests/values/ sobrescriben los valores por defecto del chart, lo que facilita mantener parámetros por entorno sin duplicar templates.
Asegurando el ingress con TLS Instalé el controller nginx-ingress para crear el LoadBalancer y manejar el tráfico. El chart de ingress define las reglas que el controlador sigue. Para TLS instalé cert-manager y apliqué un ClusterIssuer para que pueda solicitar certificados de Let s Encrypt automáticamente. Es importante anotar el ingress con cert-manager.io/cluster-issuer para que el ingreso pida el certificado correctamente.
Puntos clave sobre ingress y cert-manager El ingress controller es un recurso a nivel de clúster, no por namespace. Cert-manager también opera a nivel de clúster y usar ClusterIssuer es recomendable cuando los certificados aplican a varios namespaces. Asegúrate de instalar cert-manager y sus CRDs antes de aplicar los issuers.
Despliegue coordinado con Helmfile Gestionar cada chart por separado se vuelve tedioso, por eso usé Helmfile para aplicar o destruir todos los charts con un solo comando. Esto facilita workflows reproducibles para entornos de desarrollo, staging y producción.
Acceso y comprobaciones Una vez desplegada la aplicación de shopping quedó accesible en el dominio configurado apuntando al LoadBalancer. Si el HTTPS no funciona comprueba que cert-manager y el ClusterIssuer están instalados y que las anotaciones del ingress son correctas. Si superas límites de LetsEncrypt usa primero el issuer de staging para pruebas.
Consejos y lecciones aprendidas Empieza con charts desde el principio para evitar el crecimiento descontrolado de YAML. Helmfile es una salvación para aplicar o destruir todo de una vez. Los charts son portables, por lo que ahora puedo llevar Redis o el ingress a cualquier clúster sin rehacer configuraciones.
En Q2BSTUDIO fabricamos soluciones adaptadas a las necesidades del cliente y este enfoque modular encaja con nuestra filosofía de entregar aplicaciones a medida y software a medida que son robustas y fáciles de mantener. Si necesitas una solución personalizada te recomendamos explorar nuestras opciones de desarrollo de aplicaciones multiplataforma en desarrollo de aplicaciones y software a medida. También ofrecemos servicios gestionados en la nube y arquitecturas en AWS y Azure que simplifican despliegues como este, conoce más en servicios cloud aws y azure.
Además de desarrollo, en Q2BSTUDIO somos especialistas en inteligencia artificial, ofreciendo soluciones de ia para empresas, agentes IA y servicios de inteligencia de negocio y power bi para transformar datos en decisiones. También cubrimos ciberseguridad y pentesting para proteger tus despliegues y garantizar continuidad operativa.
Conclusión Este proyecto demostró que crear charts reutilizables facilita despliegues en Kubernetes, aporta consistencia y hace que la plataforma sea escalable y preparada para producción. En el futuro planeo ampliar estos charts con monitorización basada en Prometheus y Grafana para convertir el entorno en una pila lista para producción completa. Si buscas partner para desarrollar, desplegar y asegurar tu plataforma, Q2BSTUDIO combina experiencia en aplicaciones a medida, inteligencia artificial y ciberseguridad para acompañar tu proyecto.
Comentarios