logo
< Back Post-Image

La CNCF adopte Argo

Continuité du mouvement Gitops

Qu’est ce que le Gitops ? nous en avions déjà un peu parlé par-ci, par-là, notamment avec FluxCD pour la partie technique.

Le Gitops est un ensemble d’outils et de best practices dans la continuité du mouvement DevOps pour gérer le déploiement de vos applications et/ou infrastructures avec Git en tant que point de référence, pour cela nous avons besoin d’au moins 3 choses essentielles :

  • Un dépôt de code
  • Un endroit oú déployer
  • Une glue qui va nous permettre de réaliser des actions en fonction du premier sur le précèdent

Cette glue se découpe souvent en deux catégories :

  • Build : Continuous Integration
  • Deployment : Continuous Delivery

Et dans ces catégories ils existent de nombreux outils tels que Jenkins, Gitlab, ou encore Travis. Il existe également des outils dédiés à la partie CD, tels que Spinnaker, Weave Flagger et Flux.

Quid d’Argo ?

Argo est un projet qui a pour but d’unifier les différentes étapes de “delivery” sous une seule plateforme, et cela sous la bannière de la CNCF.

Comme beaucoup de projets de la CNCF, Argo s’articule autour de Kubernetes, et l’étend afin d’ajouter des fonctionnalités.

Argo se décompose en sous projets qui répondent chacun à une problématique précise.

Argo Workflow

Création de pipeline de CI native à Kubernetes : Pods, Jobs, etc ainsi que orchestration et gestion des artifacts qui peut se comparer à un outil de CI classique.

Argo CD

Comme son nom l’indique, permet la partie Continuous Delivery, il permet entre autres de déployer des versions spécifiques d’applications et de réconcilier l’état demandé avec l’état actuel du cluster. Argo CD supporte Helm, Ksonnet, Jsonnet et Kustomize en plus des manifests Kubernetes classiques.

argo-cd

Argo Rollout

Augmente les stratégies de déploiement fournies de base dans Kubernetes et ajoute la fonctionnalité de Canary Deployment ainsi que Blue/Green Deployment.

Argo Event

Permet d’exécuter des actions en fonctions d’événement extérieurs. Par exemple de lancer un pipeline Argo Workflow après une notification sur AWS SNS.

argo-event

Futur des projets

Comme souvent ces projets ne sont pas les seuls sur le marché, c’est notamment le cas de Argo CD qui fourni des fonctionnalité similaires à Flux CD.

Sur la partie Continuous Delivery, Argo CD et Flux ont maintenant un projet commun: Argo Flux afin de mutualiser les fonctionnalités des deux applications.

Cela permettra notamment d’apporter à Argo CD la fonctionnalité que nous apprécions particulièrement dans Flux CD qui est la surveillance de registries Docker pour déployer de nouvelles image en fonction de glob et/ou semver. Ce projet sera un projet conjoint au sein de la CNCF.

Dans la même lignée, un rapprochement entre Weave Flagger et Argo Rollout est envisageable puisque les deux fournissent également des fonctionnalités similaires.

Kevin Lefevre