Blog

GitOps: ¿Cómo puede ayudarte a mejorar el proceso y calidad de tus desarrollos?

Blog
Te contamos todos los secretos de GitOps, una de las tendencias que está más en auge en el mundo tech. Vamos a develar sus diferencias con DevOps, los beneficios que aporta y el back de la primera vez que lo utilizamos en redbee.

Te contamos todos los secretos de GitOps, una de las tendencias que está más en auge en el mundo tech. Vamos a develar sus diferencias con DevOps, los beneficios que aporta y el back de la primera vez que lo utilizamos en redbee.

Transformar digitalmente no tiene que ver solamente con implementar tecnologías, sino también con cambiar el mindset de trabajo. Un punto de encuentro para esto es la adopción de metodologías DevOps, donde no solo se asegura una responsabilidad compartida y una entrega de feedback rápida sino que también, se impulsa una mayor transparencia. Pero en tecnología siempre podemos ir un paso más allá, y en ese más allá nos encontramos con GitOps.

GitOps puede ser analizado como una evolución de DevOps pero, en realidad, ambos enfoques pueden ser utilizados a la par. En este artículo, te vamos a contar en detalle sobre GitOps, sus beneficios y su comparativa con DevOps. Además, te llevamos al detrás de escena de uno de los proyectos que trabajamos para un cliente con estas prácticas.

¿De qué hablamos cuando hablamos de GitOps?

“El match perfecto entre una evolución de la Infraestructura como Código (IaC) y lo mejor de DevOps”.

Esa podría ser una de las definiciones que aparezcan en un diccionario tech. Muchos otros diccionarios pueden querer hacer un doble clic y hablar de GitOps como una IaC y un conjunto de prácticas que facilitan y potencian la gestión de la configuración de las aplicaciones y de las infraestructuras.

El secreto de GitOps (no tan secreto porque está en su nombre) radica en que utiliza Git como única fuente de verdad. Este sistema open-source de control de versiones es usado para implementar y gestionar automáticamente la infraestructura declarativa y las aplicaciones. El modus operandi es a través de pull requests o solicitudes de cambios o de extracción.

Va un resumen para quienes todavía no están del todo familiarizados con GitOps:

  1. Primero, para aplicar estas prácticas necesitás una infraestructura que pueda ser gestionada de manera declarativa (por ejemplo, Kubernetes), esto implica que sea capaz de seguir una declaración del estado que se espera alcanzar en lugar de seguir una secuencia de comandos.
  2. Con eso en mente, para avanzar deberías colocar el estado deseado del sistema de forma declarativa. Todos los cambios que quieras introducir, tenés que hacerlos a través de pull requests en Git, es decir, vas a modificar los archivos que tienen el código del estado deseado que se encuentran alojados en el repositorio de Git. Es necesario que utilices una herramienta o agente (por ejemplo, ArgoCD o Gitlab CI) que, a través de un mecanismo como los webhooks (para la integración con el repositorio de Git), toma en consideración los cambios que pedís en los pull requests y los impacta en la infraestructura.

Entonces, podemos hablar de GitOps como un método que utiliza Git y sus pull requests para verificar e implementar modificaciones en la infraestructura del sistema automáticamente. Pero para Martín Cortez, DevOps en redbee, hay más claves que le dan un toque extra de eficiencia.

“El enfoque colaborativo es una de ellas, las code reviews entre el equipo se hacen a través de pull (merge) requests. Otro puede ser el control de versiones, si algo falla se puede volver a un estado o versión anterior con un command de Git”, cuenta Martín. “Y una última puede ser la automatización de la infraestructura mediante pipelines CI/CD (implementación continua y mejora continua), agrega.

Hay aún más beneficios que hacen a GitOps más que tentador para los desarrolladores. ¿No nos creés? Seguí leyendo.

GitOps se gana el corazón de los desarrolladores

A los beneficios principales, los dejamos en manos de nuestro DevOps. “Entre las ventajas de adoptar un enfoque GitOps encontramos que, al tomarse a Git como fuente de la verdad, el estado del sistema está reflejado en la última versión productiva del repositorio Git”, dice Martín. “Además, con el modelo colaborativo de GitOps la responsabilidad ya no recae en una sola persona. A eso podemos agregar que se puede integrar a pipelines de CI/CD”, suma.

A estos beneficios podemos sumarles algunos otros. Por ejemplo, la facilidad de adopción gracias al uso de herramientas comunes (Git es un sistema de control de versiones estándar). No podemos dejar de lado que puede incrementar la productividad del equipo al permitir experimentar rápidamente nuevas configuraciones en la infraestructura y volver atrás de ser necesario.

Cuando Martín habla sobre “fuente de la verdad”, ese concepto se sustenta por otro beneficio que es el sistema de control de versiones que permite a los equipos rastrear todas las modificaciones y, de ser necesario, auditarlas para verificar su seguridad, por ejemplo. Esto lleva a otras ventajas para las organizaciones que implementen GitOps, como la transparencia y la claridad.

DevOps ¿vs? GitOps

Por un lado, DevOps puede verse más como un cambio de mindset de toda la organización. “DevOps es una cultura y filosofía de trabajo enfocada en la colaboración entre los equipos de Desarrollo y los de Operaciones, sumado a un conjunto de prácticas y herramientas necesarias para dar software de calidad al cliente lo más rápido posible”, sintetiza Martín.

Podemos verlo así: DevOps se enfoca en transformar la cultura, GitOps le da herramientas y un marco para llevar a cabo las prácticas que necesita para lograrlo. “El enfoque GitOps define herramientas que nos sirven para mantener la agilidad en la colaboración, enfocado en la faceta de arquitectura del sistema, mediante la automatización de la Infraestructura como Código”, cuenta nuestro DevOps.

Entonces, DevOps y GitOps no están en veredas separadas, de hecho, se pueden utilizar a la par. Martín resume bien un mix de ambos trabajando juntos. “GitOps se apoya en los proveedores de Infraestructura como Servicio, pero no se queda solo ahí, ya que permite que otro tipo de definiciones de código como las de orquestadores, como Kubernetes, se manejen dentro de pipelines colaborativos de CI/CD”.

¿Y DevOps dónde entra? “Esto permite a los equipos DevOps mantener un orden y calidad en el servicio que brindan a los clientes, armando un marco de trabajo colaborativo y controlado, sin perder la agilidad”, agrega.

Poniéndole picante a los proyectos: ¿cómo aplicamos en redbee GitOps?

Martín Cortez hizo un throwback a un proyecto de una billetera de pago que tomamos en redbee hace un tiempo. Cuando empezamos a trabajar, estaba muy de moda Kubernetes y AWS y nuestro cliente quería pasar a la nube. Además, Kubertenes y AWS son muy utilizadas en el mercado, lo que facilita el acceso al soporte y la documentación. Pese a todo esto, desde redbee le propusimos ir un pasito más allá y aplicar IaC también.

Hacerlo a mano no estaba en los planes del equipo, aunque sí tenían el conocimiento para hacerlo. “Fue costoso porque hubo que aprender un montón”, recuerda Martín. “Terminó ese proyecto y había un montón de código repetido y empezamos a sacar código para así tenerlo sin redundancia”, suma.

En redbee implementamos las metodologías que aportan un valor extra a los proyectos de nuestros clientes. No se trata de sumarse a la tendencia. Lo que buscamos siempre es mejorar y allí, nos topamos con DevOps y GitOps, hoy ampliamente utilizadas por nuestros equipos, apasionados por ir siempre un paso más allá.
Y vos, ¿te sumás también a la transformación?

Contacto

Contactanos

¿Cómo podemos ayudarte?