ArgoCD, la forma sencilla de empezar a implementar GitOps en tu empresa

Álvaro Paniagua    26 julio, 2021
ArgoCD, la forma sencilla de empezar a implementar GitOps en tu empresa

Las prácticas GitOps están cogiendo especial relevancia este 2021, potenciada por el incremento de uso de Kubernetes en todo tipo de organizaciones, un paso hacia adelante respecto a la infraestructura como código (IaC). Las configuraciones que son necesarias para llevar una aplicación a un entorno de contenedores van creciendo día a día, y si tenemos en cuenta los entornos de trabajo que se suelen tener, esta cantidad empieza a ser difícil de manejar. Y no hablemos de tener que realizar una vuelta atrás por una configuración que no ha resultado exitosa. Pero ¿y si te digo que aplicando GitOps resolvemos este problema y que volver a una versión anterior puede ser tan sencillo como un «Control + Z»? 

Una de las principales ventajas del GitOps es lo que se conoce como la fuente de la verdad, un repositorio dónde se encuentra la versión actual de la configuración de los elementos que tenemos que tener desplegados. Al tener que aplicar cada cambio a esta fuente de la verdad, tenemos un seguimiento de todas las versiones y fácilmente podemos restaurar una versión anterior, y que quede constancia de ello. 

Aplicando GitOps en Kubernetes

Cuando hablamos de ArgoCD estamos hablando de una de las herramientas mas utilizadas para aplicar GitOps en Kubernetes. Esto se debe a que ArgoCD es una herramienta muy sencilla, con un propósito único, pero que lo hace genial. Su función es mantener la configuración en el cluster de Kubernetes marcada en un repositorio Git. Con cada cambio que realicemos en ese repositorio Git, Argo detectará la modificación y se encargará de realizar los comandos necesarios para llegar al nuevo estado en el cluster de Kubernetes. Esto es muy relevante, ya que a diferencia de otras herramientas, ArgoCD funciona de manera declarativa, esto quiere decir por ejemplo que declaro en un fichero (albergado en Git) que quiero 3 réplicas de esta aplicación y que se pueda acceder a ella externamente con una URL X, ArgoCD se encargará de que esa configuración sea la que existe en el cluster. El uso de lenguaje declarativo en lugar de imperativo facilita mucho la adopción de estas tecnologías, ya que no tengo que decirle a Kubernetes por cada cambio que comandos tiene que ejecutar, sino la foto de destino, ArgoCD se encarga de ejecutar los comandos necesarios para poder llegar. 

Una vez ArgoCD ha implementado esa declaración, monitoriza cambios manuales sobre la plataforma, y en caso de producirse dispone de dos comportamientos. El primero y más común para los poco iniciados en GitOps, avisa de que alguien o algo ha modificado el estado del cluster. El segundo es más impositivo, ya que detecta esa modificación comienza a ejecutar comandos para retomar el estado anterior del cluster, el que aparece en Git como el estado actual. 

La curva de aprendizaje de ArgoCD es baja para los que ya están acostumbrados a trabajar con Kubernetes, pero lo más difícil como siempre es la gestión del cambio que consiga que las operaciones en el cluster se hagan siempre a través de esta herramienta y así comenzar a trabajar en GitOps. 

ArgoCD es un proyecto de la CNCF y está disponible con soporte dentro de OpenShift. Esto significa que los usuarios de Cloud Garden de Telefónica tienen también este soporte.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *