GitOps: una nova manera de gestionar infraestructura i aplicacions

29/04/2025
GitOps Imatge generada amb ChatGPT.

En el context actual de desenvolupament i desplegament de programari, on la gestió d’entorns cloud i arquitectures de microserveis és cada vegada més complexa, la metodologia GitOps ha sorgit com un model per al desplegament i l’automatització de les infraestructures i de les aplicacions que s’hi executen.

GitOps proposa un model de treball on Git actua com l’única font de veritat per a la gestió de la infraestructura i les aplicacions. Mitjançant eines com ArgoCD, Terraform i Helm, és possible definir l’estat desitjat dels sistemes en un repositori i assegurar que qualsevol canvi es faci de manera declarativa i auditable.

En aquest article, exposo la meva experiència en la implementació de GitOps dins del meu treball final del grau d’Enginyeria Informàtica de la UOC, on vaig implementar el model automatitzant el desplegament d’aplicacions distribuïdes basades en blockchain en entorns cloud amb Kubernetes.

Què és GitOps? 

L’essència de GitOps radica en un principi clar: tot el que defineix la infraestructura i l’estat de les aplicacions s’emmagatzema i gestiona en un repositori de Git. Des dels servidors i xarxes fins a les configuracions i desplegaments, tot es versiona com a codi, de manera que s’elimina la separació tradicional entre la gestió de la infraestructura i el desenvolupament de programari.

En aquest model, eines com Terraform permeten definir i administrar la infraestructura mitjançant Infrastructure as Code (IaC), per tal de garantir que l’entorn d’execució sigui reproduïble i consistent en tots els desplegaments. Per a la gestió d’aplicacions, solucions com Helm o Kustomize faciliten la paquetització i configuració dels serveis, la qual cosa permet un desplegament modular i reutilitzable.

Els operadors GitOps, com ArgoCD o Flux, exerceixen un paper fonamental en supervisar contínuament l’estat del clúster de Kubernetes i sincronitzar-ho automàticament amb la configuració emmagatzemada a Git. En lloc de fer ajustos manuals en els diferents entorns, els desenvolupadors simplement actualitzen el codi en el repositori, i així asseguren que cada canvi s’apliqui de manera controlada, auditable i automatitzada en la infraestructura.

Aquest enfocament aporta beneficis clau en la gestió d’infraestructures modernes. Redueix dràsticament els errors manuals, ja que cada modificació passa per processos de validació i control de qualitat abans d’executar-se. A més, proporciona un historial de canvis auditable, i facilita la traçabilitat i la capacitat de fer rollbacks en cas d’incidents. Finalment, garanteix la coherència entre entorns, elimina discrepàncies entre desenvolupament, proves i producció, i evita així la clàssica frustració de trobar aplicacions que “funcionen en la meva màquina, però no en producció”.

Del desenvolupament a la infraestructura: unificant equips

Els models tradicionals de desenvolupament i desplegament han estat marcats per una clara separació entre els equips de desenvolupament i operacions. Mentre que els desenvolupadors se centraven a escriure codi sense preocupar-se gaire per on i com s’executaria, els equips d’operacions tenien la responsabilitat de desplegar, mantenir i escalar les aplicacions. Aquest enfocament ha portat a problemes recurrents de falta de comunicació, on aplicacions que funcionen en un entorn de desenvolupament no es comporten igual en producció, la qual cosa genera friccions i retards en el cicle de vida del programari.

Amb GitOps, aquesta separació desapareix. En gestionar tant la infraestructura com les aplicacions mitjançant Git, els desenvolupadors i els operadors deixen de treballar en sitges i passen a col·laborar en un model unificat. Els desenvolupadors ja no poden ignorar la infraestructura en la qual s’executaran les seves aplicacions, sinó que han de dissenyar-les tenint en compte aspectes com escalabilitat, consum de recursos i disponibilitat en Kubernetes. D’altra banda, els operadors no solament han de gestionar la infraestructura, sinó també entendre com funcionen les aplicacions i com encaixar-les en el flux GitOps, per tal d’assegurar que cada desplegament sigui eficient i segur.

El repte de la complexitat en infraestructures modernes

No obstant això, encara que GitOps resol problemes de gestió, no és una solució màgica que elimina la complexitat per si sola.

A mesura que les empreses adopten estratègies multinúvol i despleguen aplicacions amb desenes o centenars de microserveis, gestionar aquests entorns es converteix en un desafiament considerable. Kubernetes s’ha convertit en l’estàndard per a l’orquestració de contenidors, però la seva corba d’aprenentatge és alta i la seva configuració pot ser difícil de manejar sense una planificació adequada.

A això se suma la complexitat d’integrar múltiples eines en cada etapa del procés, per tal d’assegurar que funcionin en perfecta sincronització. Aquesta interdependència incrementa la quantitat d’arxius de configuració que han de mantenir-se actualitzats i afegeix una càrrega operativa significativa. A més, requereix equips amb un alt nivell d’especialització tècnica, capaços de gestionar i optimitzar un ecosistema tecnològic en evolució constant.

Un altre aspecte crític és la gestió de secrets i credencials. Mantenir claus d’accés segures mentre s’automatitzen processos sense intervenció manual requereix solucions avançades com HashiCorp Vault o AWS Secrets Manager, la qual cosa afegeix més components al sistema. A més, en entorns de producció, s’han de considerar estratègies de rollback i recuperació davant fallades, per tal d’assegurar que qualsevol error en un desplegament pugui revertir-se ràpidament sense afectar el servei.

En aquest context, GitOps ajuda a posar ordre, però també pot ser una font de sobrecàrrega si s’implementa sense una estratègia clara.

Com trobar l’equilibri entre automatització i simplicitat

Per evitar caure en la sobreenginyeria, és clau adoptar un enfocament pragmàtic. La simplicitat ha de ser sempre la prioritat. Abans de triar eines, cal definir clarament quin problema es vol resoldre i avaluar si la solució és realment necessària.

No totes les aplicacions requereixen la mateixa infraestructura. És preferible començar amb una implementació mínima viable, utilitzant només les eines essencials, i després escalar segons les necessitats. En molts casos, una estratègia progressiva d’adopció de GitOps és més efectiva que intentar implementar-lo tot de cop.

També és important assegurar-se que la infraestructura sigui fàcil d’entendre i mantenir. Una documentació clara i accessible és fonamental, especialment en equips on el coneixement pot estar distribuït. L’automatització només és útil si realment facilita el treball diari, i no si introdueix un sistema tan complex que es torna immanejable.

Revisar periòdicament l’arquitectura també és clau. A mesura que el sistema evoluciona, és recomanable preguntar-se: continuen sent necessàries totes les eines que estem utilitzant? A vegades, simplificar una arquitectura pot portar més beneficis que continuar agregant capes d’abstracció.

La IA i el futur de la gestió d’infraestructures

A mesura que l’automatització continua avançant, la intel·ligència artificial està emergint com un factor clau en l’evolució de la gestió d’infraestructures. GitOps ha revolucionat la forma en què es despleguen i administren aplicacions, proporcionant un model declaratiu i auditable, però la IA portarà aquest enfocament encara més lluny. Amb capacitats d’optimització en temps real, detecció predictiva de fallades i reforç de la seguretat, la IA permetrà que les infraestructures s’adaptin de manera dinàmica a la demanda, minimitzin el desaprofitament de recursos i reaccionin de manera autònoma davant incidents.

Els grans proveïdors de núvol ja estan integrant IA en l’orquestració de sistemes, i en el futur, la combinació de GitOps i IA donarà lloc a infraestructures més intel·ligents i resilients, on els sistemes no solament es despleguin automàticament, sinó que també s’ajustin, evolucionin i es protegeixin sense necessitat d’intervenció manual, i impulsin una nova era en la computació en el núvol. El temps dirà si afegint-hi més complexitat.

(Visited 20 times, 1 visits today)
Autor / Autora
Ángel Javier Ripa és graduat del Grau en Enginyeria Informàtica de la UOC i ha realitzat el seu Treball de Fi de Grau (TFG) a l'àrea d'Aplicacions i Sistemes Distribuïts. Compta amb una trajectòria professional de 25 anys en l'administració de sistemes i infraestructures i actualment és responsable de serveis al núvol a l'IE University, on lidera l'estratègia i la gestió d'infraestructures cloud. En aquest article, comparteix la seva experiència en la implementació de GitOps en el desplegament automatitzat d'aplicacions distribuïdes, abordant els beneficis, els reptes i l'impacte futur de la intel·ligència artificial en la gestió d'infraestructures.
Comentaris
Deixa un comentari