Grâce aux outils de l’infrastructure-as-code, il est maintenant facile de versionner et reproduire des déploiements applicatifs. Cependant, à cause d’une action manuelle ou d’un code mal exécuté /non idempotent, nous ne sommes pas à l’abri de divergences entre l’état désiré et l’état actuel d’un environnement, qui sont sources d’instabilité et rendent difficile la maintenance. En effet, traquer la source de désynchronisation peut s’avérer chronophage.
L’approche déclarative de Kubernetes et la philosophie GitOps permettent désormais de comparer les différences d’état entre ce qui est désiré et ce qui est actuellement déployé. Selon les principes GitOps, l’unique source de vérité devient le dépôt de code Git. Par ailleurs, si des divergences existent, un outil doit être capable de superviser et reporter celles-ci et au besoin re-synchroniser automatiquement le système. Les opérations manuelles de déploiement sont proscrites et doivent être pilotées par Git (PR, merge, etc.).
Cette formation s’adresse aux développeurs et aux ops souhaitant piloter le déploiement de leurs applications selon l’approche GitOps. A travers des exercices concrets, vous apprendrez à packager le déploiement de votre application sous la forme d’un chart Helm. Vous aurez à « versionner » celle-ci dans Git, puis à installer et configurer ArgoCD pour synchroniser ce dépôt de code et déployer votre application sur votre cluster Kubernetes de manière automatisée après chaque commit. Vous découvrirez les différents types de synchronisation pour sécuriser vos déploiements et faire des restaurations en cas de désastre. Vous aborderez aussi les différents patterns pour gérer les secrets dans le cadre GitOps, et vous manipulerez Sealed Secrets et Kubeseal pour pouvoir “versionner” des secrets dans Git. Enfin, vous apprendrez à monitorer vos déploiements.