NewsRoom

Pourquoi mettre du GitOps dans ses projets data

R&D 18 mai 2021

Né chez les développeurs, Git est un outil de versioning open source qui contribue à la bonne documentation et donc à la réussite des projets data. Chez Datastorm, nous utilisons Git dans la plupart de nos projets, et pas seulement pour gérer du code. Explications.

La gestion des projets data est un exercice délicat et de plus en plus complexe. On y embarque des modèles de Machine Learning demandant un paramétrage soigné et une recalibration fréquente. On déploie une application sur des machines virtuelles, des conteneurs, des plateformes big data, des infrastructures dédiées, cloud ou hybrides. On design une multitude de micro-services appelant des APIs et définis dans des SLAs. Bref, on est loin du fleuve tranquille. Heureusement, il y a Git, un outil de versioning développé par Linus Torvalds, créateur du noyau Linux.

Git : un outil de versioning

Logiciel libre, disponible sur tous les systèmes d’exploitation, Git est un outil créé par des développeurs pour les développeurs, né du besoin de collaboration insufflé par les projets open source. Le noyau Linux mobilisa ainsi 25 000 collaborateurs au début des années 90 ! Trois décennies plus tard, Git a été adopté comme outil de référence mondial pour la gestion de code. Car Git est avant tout un outil de versioning de texte. Il permet de suivre les versions d’un référentiel textuel au cours de son évolution, de revenir à une version antérieure si besoin, avec tous les avantages qui en découlent. Mais Git permet également de structurer les versions via l’utilisation de branches et de tags. On accède ainsi à différentes vues de l’historique du projet selon le cas d’usage. Par exemple, il est commun pour un projet de programmation de conserver une vue des développements en parallèle de la vue des release. En suivant les bonnes pratiques d’utilisation de Git, un projet bien structuré permettra une collaboration efficace, et ce, même si plusieurs collaborateurs doivent modifier la même partie du référentiel. Les évolutions sont donc tracées, réversibles, et groupées dans des vues selon le cas d’usage.

Git en dehors du code

Si Git est principalement utilisé pour gérer du code informatique, son usage se diversifie. Et à raison : ce qui fonctionne si bien pour un élément aussi complexe que la programmation doit bien fonctionner par ailleurs ! Voici trois exemples.

Exemple 1 : vous utilisez un modèle pour scorer des clients.

Ce modèle doit toutefois être paramétré convenablement. En utilisant Git pour versionner les paramètres et autres métadonnées telles que la version du modèle, vous pourrez :

  1. Auditer l’utilisation du modèle dans le temps, sachant quels paramètres étaient en application à un moment donné.
  2. Suivre des versions alternatives, par exemple pour du A/B-testing.
  3. Tester le modèle en backtesting en rejouant différents scénarios.

Exemple 2 : les données liées à votre application changent de structure.

Une application data est fortement liée aux données, qu’elles soient entrantes, applicatives ou sortantes. Or, les schémas de données évoluent dans le temps. En utilisant Git pour versionner ces schémas, vous pourrez :

  1. Documenter les conditions nécessaires à remplir par les données pour que l’application puisse fonctionner correctement.
  2. Exploiter les données provenant d’un schéma historique.
  3. Migrer les données d’une version à une autre.

Exemple 3 : vous déployez votre application data dans le cloud.

Le provisionnement de ressources est désormais possible via des fichiers de configurations. En utilisant Git pour versionner ces fichiers de configurations, vous pourrez :

  1. Documenter et reproduire les infrastructures supportant l’application.
  2. Partager plus aisément ces infrastructures et l’application.
  3. Suivre les infrastructures pour différents environnements, tels que pour le développement ou la production.
  4. Réduire le temps de déploiement d’une application.

Aller plus loin avec les extensions

Aujourd’hui, plusieurs logiciels apportent à Git un ensemble de fonctionnalités facilitant la gestion de projet. Par exemple, GitLab propose un système de ticketing avec dashboards et jalons, une chaîne d’intégration continue, un dépôt d’artéfacts binaires et un serveur de pages html pour la documentation du projet. L’ensemble de ces outils de gestion sont alors réunis en un seul logiciel, donc plus facile à intégrer dans vos équipes et à moduler selon le projet. Il confère une meilleure visibilité et une auditabilité renforcée à vos projets, facilitant leur partage et augmentant leur robustesse.

Lire aussi notre article > MLOps : des solutions concrètes de maintenance de modèles en production