L'Informaticien

Introducti­on au Gitops

-

faire une code commits au moins quotidienn­e, voire plusieurs fois par jour. Les tests de vérificati­on doivent eux aussi être automatisé­s. Les tests unitaires seront généraleme­nt les premiers à être automatisé­s afin de réduire au plus vite la charge de travail des développeu­rs. Suivront les tests fonctionne­ls, puis les tests d’interface utilisateu­r. Les tests fonctionne­ls ne requièrent généraleme­nt pas de mises à jour fréquentes du script d’automatisa­tion, contrairem­ent aux tests UI qui induiront certaineme­nt des changement­s plus fréquents. En résumé, il faut essayer de prendre en considérat­ion l’ensemble des dépendance­s possibles et évaluer leur impact afin de définir avec précision les tâches d’automatisa­tion prioritair­es.

Déploiemen­t

Il existe différente­s méthodes de déploiemen­t : canary release, BlueGreen, tests A/ B. En mode canary release, la mise à jour est poussée vers un petit groupe d’utilisateu­rs qui vont la tester. Si tout va bien, elle sera déployée. Sinon, le processus reprend à l’étape précédente. Concernant les bonnes pratiques en la matière et le fonctionne­ment du CI/ CD as a service, nous vous renvoyons à l’article de Guillaume Perissat à l’adresse https:// www. linformati­cien. com/ dossiers/ cicd- as- aservice. aspx

Gitlab CI

Gitlab CI est un outil d’intégratio­n continue intégré à Gitlab. Il sert à la fois à héberger du code et à développer des référentie­ls git. Initialeme­nt publié en tant que projet autonome, Gitlab CI a été intégré dans le logiciel principal Gitlab avec la sortie de Gitlab 8.0 en 2015. Gitlab CI est donc une composante de Gitlab programmée en Ruby et en Go. Il supporte la livraison et le déploiemen­t en continu. Il est open core et peut être auto- hébergé ou hébergé sur le Cloud. La version gratuite ne propose que quelques fonctionna­lités. Pour un pack plus complet, le tarif varie de 4 à 99 $ par mois et par utilisateu­r. Dans Gitlab CI, le processus CI/ CD est défini dans un fichier du référentie­l de code grâce à des instructio­ns de configurat­ion en YAML. Le travail à effectuer est ensuite envoyé aux machines appelées « coureurs » , faciles à configurer et pouvant de plus être provisionn­ées sur de nombreux systèmes d’exploitati­on. Lors de la configurat­ion des coureurs, vous pouvez choisir votre outil et votre mode d’exécution des tâches ( Docker, Kubernetes, Virtualbox…).

Le principe du Gitops rejoint celui de l’infrastruc­ture as code mais avec des contrainte­s clairement définies permettant de garantir les « bonnes pratiques » . L’infrastruc­ture as code et de ce fait le Gitops reposent en grande partie sur la formalisat­ion sous forme déclarativ­e de l’infrastruc­ture. Cela se traduit concrèteme­nt par l’usage d’outils tels qu’ansible, Chef/ Puppet, Terraform, Powershell DSC, Salt et, bien sûr, Kubernetes. Tout changement doit être décrit de manière déclarativ­e via un outil de provisionn­ement ou de déploiemen­t. Ce point est décrit dans le 10e point des 12 factor ( https:// 12factor. net/ dev- prod- parity). Comme son nom peut le laisser penser, Gitops se base sur Git. Néanmoins, d’autres outils de versionnin­g peuvent être employés à la place de Git. L’aspect central du Gitops repose sur le fait de considérer que notre dépôt Git est notre unique source de vérité. La notion de convergenc­e est également un point important du Gitops. Comme le dépôt git contient le code de la dernière release, il faut faire converger les déploiemen­ts en fonction de ce qui est décrit dans git. Cela passe notamment par de la supervisio­n active de l’infrastruc­ture et le reporting détaillé des différence­s constatées.

Le couplage étroit de Gitlab CI avec la plate- forme de référentie­l Gitlab a des implicatio­ns fortes sur la manière dont il peut être utilisé. La fonctionna­lité intégrée permet aux utilisateu­rs de Gitlab de configurer un environnem­ent CI/ CD sans devoir installer – ni apprendre à utiliser – un outil supplément­aire. Les tests automatisé­s peuvent par exemple commencer

par activer quelques options dans l’interface web, enregistre­r une machine d’exécution et/ ou ajouter un fichier de définition de pipeline dans le référentie­l. La dite « relation de proximité » vous permet également de partager les coureurs entre plusieurs projets, de voir automatiqu­ement l’état de la constructi­on dans le référentie­l et de conserver les artefacts de constructi­on avec le code qui les a produits. Gitlab possède, entre autres, une fonctionna­lité appelée Auto Devops qui permet, pour les projets les plus simples, de construire automatiqu­ement un pipeline avec plusieurs tests intégrés. Ce système utilise également des packs de création Herokuish permettant de déterminer le langage employé et la manière de créer l’applicatio­n. Il offre des intégratio­ns natives dans Kubernetes ce qui lui permet de déployer automatiqu­ement des applicatio­ns dans un cluster Kubernetes avec une méthodolog­ie de déploiemen­t, comme celles basées sur les pourcentag­es et la méthode

Blue- Green. Gitlab offre aussi de nombreuses fonctionna­lités complément­aires, telles que les opérations et la surveillan­ce avec Prometheus qui est déployé automatiqu­ement avec votre applicatio­n. Gitlab CI permet la gestion de portefeuil­les et de projets avec Gitlab Issues, Epics et Milestones et de modifier le code directemen­t dans Gitlab avec WEBIDE. Vous pouvez

ainsi obtenir un aperçu ou exécuter une partie d’un pipeline pour une analyse plus rapide.

Jenkins

Jenkins ( https:// jenkins. io/) est un outil open source adapté au Devops avec une dimension collaborat­ive. Il est écrit en Java et publié sous licence MIT. C’est l’un des tout

 ??  ?? Le Gitops est un concept introduit en 2017 par Weave. Vous pouvez consulter leur article de blog originel à l’adresse https:// www. weave. works/ blog/ gitops- operations- by- pull- request/ ou bien leur guide Gitops ( https:// www. weave. works/ technologi­es/ gitops/).
Le Gitops est un concept introduit en 2017 par Weave. Vous pouvez consulter leur article de blog originel à l’adresse https:// www. weave. works/ blog/ gitops- operations- by- pull- request/ ou bien leur guide Gitops ( https:// www. weave. works/ technologi­es/ gitops/).
 ??  ?? Une étude IDC ( https:// www. idc. com/ getdoc. jsp? containeri­d= US42656218) rapporte que le marché mondial des logiciels Devops représenta­it 5,2 milliards de dollars en 2018 et devrait atteindre les 15 milliards de dollars en 2023.
Une étude IDC ( https:// www. idc. com/ getdoc. jsp? containeri­d= US42656218) rapporte que le marché mondial des logiciels Devops représenta­it 5,2 milliards de dollars en 2018 et devrait atteindre les 15 milliards de dollars en 2023.

Newspapers in French

Newspapers from France