Het landschap van cloud-native technologieën omvat inmiddels meer dan negenhonderd aanbieders. In deze blogpost zoomen we in op Argo CD, een GitOps-tool voor Continuous Integration, Continuous Delivery en Continuous Deployment (CI/CD). In deze blog antwoord op de belangrijkste vragen. Wat is Argo CD? Waarom zou je deze tool gaan gebruiken? Welke gebruiksscenario’s ondersteunt Argo CD? Daarnaast beschrijven we waarom wij Argo CD standaard aanbieden bij Managed Kubernetes.
Wat is Argo CD?
Argo CD is onderdeel van het Argo Project van Intuit. Het is een GitOps-tool voor Continuous Delivery voor Kubernetes (k8s). In de basis van Argo CD vind je de zogenoemde application controller, een onderdeel dat applicaties monitort en de livestatus vergelijkt met de gewenste doelstatus die is gedefinieerd in de Git-repository. De tool ondersteunt tal van manieren om je applicatie te definiëren, waaronder:
De architectuur van Argo CD ziet er als volgt uit:
Argo CD volgt het GitOps-patroon. Hierbij wordt een Git-repository als ‘source of truth’ gezien voor het definiëren van de gewenste applicatiestatus. Argo CD helpt je bij het implementeren van de verschillende statussen in de door jou gespecificeerde doelomgeving. De term ‘manifest’ wordt hierbij vaak genoemd. Een manifest specificeert de gewenste status van een object. Dit object zal Kubernetes behouden wanneer je het manifest toepast. Belangrijk om te weten is dat elk configuratiebestand meerdere manifesten kan bevatten.
Actief de live status van je applicatie monitoren
Argo CD wordt geïmplementeerd als een kubernetes-controller die continu actieve applicaties monitort en de huidige live status vergelijkt met de gewenste doelstatus. Als de live status van een geïmplementeerde applicatie afwijkt van de doelstatus, dan wordt deze beschouwd als “OutOfSync”. Dit betekent dat het cluster momenteel niet de master branch van de repository weerspiegelt.
Argo CD rapporteert, visualiseert de verschillen en biedt de faciliteiten om de live status automatisch of handmatig terug te synchroniseren naar de gewenste doelstatus. Alle wijzigingen die in de gewenste doelstatus in de Git-opslagplaats worden aangebracht, kunnen automatisch worden toegepast en weergegeven in de opgegeven doelomgevingen.
Waarom zou je Argo CD gaan gebruiken?
Intuit wilde met Argo CD tegemoetkomen aan de behoefte naar een snelle en betrouwbare Continuous Delivery service voor het implementeren van honderden microservices tegelijkertijd. Een belangrijk voordeel is dat je deze GitOps-tool voor meerdere doeleinden kunt gebruiken.
De belangrijkste redenen voor de ontwikkeling van Argo CD waren:
- De configuratie van applicaties en hun implementatieomgevingen moet declaratief zijn en beschikken over versiebeheer.
- Applicatie-implementatie en levenscyclusbeheer moeten eenvoudig, geautomatiseerd en controleerbaar zijn.
- De implementatie van applicatie moet snel, betrouwbaar en idempotent zijn.
- Elke afwijking van een versie gestuurde configuratie moet onmiddellijk worden gedetecteerd en verholpen kunnen worden.
- Rollbacks moeten net zo eenvoudig zijn als het implementeren van een andere configuratie.
- Op een overzichtelijke en gebruiksvriendelijke manier inzicht kunnen krijgen in je k8s-projecten.
Video: Argo CD demo
In een demo van Jesse Suen wordt Argo CD in een kleine 41 minuten uitgelegd:
Welke gebruiksscenario’s ondersteunt Argo CD?
Om zijn taken goed uit te kunnen voeren, moet de application controller een aantal acties ondernemen: de gewenste resource manifesten ophalen uit Git, de overeenkomende live resources laden uit het daadwerkelijke Kubernetes-clusters, de twee vergelijken en de corresponderende Kubernetes Custom Resources (CRD). Deze CRD toont de gewenste status voor een bepaald Argo CD-cluster beschrijft en de configuratie mogelijk maakt van de componenten waaruit een Argo CD-cluster bestaat.
Argo CD ondersteunt de volgende gebruikersscenario’s:
Use case #1 – Geautomatiseerde deployment
De application controller pusht de gewenste applicatiestatus automatisch naar het cluser. Dit kan een reactie zijn op een Git-commit, een trigger van een CI-pipeline of een handmatig gebruikersverzoek.
Use case #2 – Applicatie monitoring
Met Argo CD kunnen ontwikkelaars snel zien of de applicatiestatus synchroon loopt met de gewenste status. Argo CD is te gebruiken via een command line interface (CLI). Dit helpt je bij het monitoren van je applicatie en het snel kunnen vinden van verschillen tussen de gewenste en de huidige live status.
Use case #3 – Performance monitoring
In de gebruikersinterface van Argo Cd kun je de volledige hiërarchie zien van al je toepassingsbronnen zien. Dit stopt niet bij alleen de bronnen op het hoogste niveau binnen je Git-opslagplaats. Ontwikkelaars kunnen bijvoorbeeld ReplicaSets en Pods zien die zijn geproduceerd door de implementatie die is gedefinieerd in Git. Daarnaast kun je snel Pod-logboeken en de bijbehorende Kubernetes gebeurtenissen zien. Dit maakt Argo CD een zeer krachtig multi-cluster dashboard.
Managed Argo CD bij True
In dit artikel hebben we beschreven wat Argo CD is en hoe je dit kunt inzetten voor het monitoren van je Kubernetes-ecosysteem.
Ook onze eigen Kubernetes-specialisten zijn fan van Argo CD en dit is een belangrijk reden waarom wij dit standaard hebben opgenomen in onze Managed Kubernetes propositie. Met ArgoCD bieden we je de mogelijkheid om applicatie deployments te beheren via git, beter bekend als de GitOps methodiek. De gebruiksvriendelijke UI biedt een status overzicht van alle deployments en stelt developers in staat om snel en succesvol applicaties uit te rollen, terug te rollen, en aan te passen, zonder dat hiervoor een diepgaande kennis van K8S tooling voor nodig is.
Wil jij aan de slag met Argo CD? Of ben je benieuwd of Argo CD bij jouw use case past? Onze experts denken graag met je mee. Neem contact op met ons voor meer informatie!
Neem contact met onze specialisten en vertel waarnaar je op zoek bent.