Aller au contenu principal

Ressources

Utiliser Git avec Entropy Data

Utiliser Git dans votre entreprise peut prendre bien des formes. Nous couvrons ici les cas d'usage les plus courants avec la prise en charge de Git dans Entropy Data. Cet article traite de « Git comme système de référence », « Entropy Data comme système de référence (trunk-based) » et « Entropy Data comme éditeur (avec workflows de PR) ».

Prérequis

Pour cet article, nous supposons que vous savez configurer Git et connecter les produits de données et les Data Contracts à leurs dépôts Git respectifs. Vous trouverez plus d'informations à ce sujet dans la documentation.

Le point le plus important à retenir : les connexions sont distinctes pour les produits de données et pour les Data Contracts. La granularité est la suivante : un objet dans Entropy Data est connecté à « un fichier, dans un dépôt Git, sur une branche ».

Un produit de données ou un Data Contract dans Entropy Data est relié à une connexion Git, c'est-à-dire un dépôt, une branche et un fichier pris ensemble

Structure de dépôt recommandée

Un dépôt GitHub montrant la structure recommandée : le fichier dataproduct.yaml à la racine et un sous-dossier par Output Port contenant les fichiers YAML des Data Contracts

Nous recommandons un dépôt par produit de données. Le fichier YAML du produit de données se trouve à la racine, avec les autres fichiers dont le produit de données a besoin.

Chaque Output Port dispose de son propre sous-dossier, et les fichiers YAML des Data Contracts y sont placés.

Git comme système de référence

Le premier cas d'usage consiste à utiliser Entropy Data comme couche de visualisation de vos produits de données. Le dépôt est la source de vérité unique et contient tous les artefacts de code ainsi que les fichiers YAML des produits de données et des Data Contracts.

Lorsqu'un fichier est mis à jour, les changements sont synchronisés via un pull Git dans Entropy Data :

Un fichier mis à jour dans Git parvient à Entropy Data via un pull manuel, un pull déclenché par la CI/CD ou un webhook

Comme vous le voyez, plusieurs moyens manuels et automatiques permettent d'intégrer vos workflows avec Entropy Data dans ce cas.

a) Effectuer un pull manuel

Dès qu'Entropy Data détecte un changement côté Git, un bouton « Pull » s'affiche dans la carte de connexion Git lorsque vous ouvrez un produit de données ou un Data Contract connecté. Si vous le sélectionnez, le YAML est récupéré depuis Git, le produit de données ou le Data Contract est mis à jour dans Entropy Data, et tous les changements prennent effet immédiatement.

La carte de connexion Git affichant « File has been updated » et un bouton Pull après la modification du fichier connecté dans Git

b) Déclencher un pull via la CLI ou l'API REST Entropy Data en CI/CD

Vous pouvez aussi déclencher un pull pour un fichier dans votre pipeline CI/CD. Il vous suffit de disposer de l'identifiant unique de votre ressource. Consultez l'API REST Entropy Data pour savoir quelles requêtes sont disponibles. Nous prévoyons d'ajouter prochainement la prise en charge du pull Git dans la CLI Entropy Data.

c) Activer la synchronisation par webhook

Lors de la configuration de la connexion pour votre ressource, Entropy Data génère une Webhook URL unique, affichée dans la section Auto Sync Git to Entropy Data de la boîte de dialogue de connexion Git. Copiez cette URL et créez un webhook correspondant chez votre fournisseur Git (par exemple dans les paramètres du dépôt sur GitHub). À partir de là, chaque fois que des commits sont poussés vers le dépôt connecté, le fichier est mis à jour automatiquement dans Entropy Data. Si le webhook échoue pour une raison quelconque, vous devrez peut-être effectuer un pull manuel ; votre fournisseur Git vous informera des appels de webhook en échec. Pour diagnostiquer les problèmes, consultez notre documentation.

Intégration uniquement par CI/CD

Si des restrictions vous empêchent de laisser des applications ou services externes utiliser les identifiants Git de votre organisation, vous pouvez utiliser l'API Entropy Data pour synchroniser les fichiers YAML de vos produits de données et/ou Data Contracts dans votre pipeline CI/CD.

Dans ce cas, vous ne bénéficierez pas des fonctionnalités supplémentaires comme la détection et la résolution de conflits, ni de l'ensemble des capacités d'édition d'Entropy Data.

Entropy Data comme système de référence (trunk-based)

Si vous souhaitez profiter des capacités d'édition d'Entropy Data, vous pouvez adopter une approche de développement trunk-based. Cela signifie que tous les contributeurs d'un dépôt travaillent sur la branche main et committent fréquemment. Si Entropy Data est le seul outil utilisé pour travailler sur les fichiers dans Git, le workflow de ce mode de développement est simple :

Un fichier mis à jour dans Entropy Data parvient à Git via un push manuel ou Auto Push, puis déclenche les actions en aval

a) Pousser vers Git manuellement

Vous modifiez la ressource en autant d'étapes que vous le souhaitez avec les éditeurs d'Entropy Data, puis vous décidez qu'une nouvelle itération dans Git s'impose. Vous sélectionnez le bouton « Push », affiché automatiquement dès qu'Entropy Data détecte des changements sur une ressource. Vous pouvez choisir entre « Push Directly » et « Create Pull Request » (voir plus bas). Pour du développement trunk-based, choisissez « Push Directly » : le fichier est mis à jour dans Git.

La carte de connexion Git affichant « Changes detected » et un bouton Push La fenêtre Push Changes avec le choix entre Push Directly et Create Pull Request, Push Directly étant sélectionné, et un message de commit

Toutes les actions en aval qui dépendent d'un push Git sont déclenchées selon vos pipelines CI/CD, vos autres hooks, listeners, et ainsi de suite.

b) Activer Auto Push

Vous pouvez également activer l'option « Auto Push » lors de la création d'une connexion Git pour une ressource. Dans ce cas, chaque enregistrement d'un produit de données ou d'un Data Contract est automatiquement poussé vers le fichier connecté, sur la branche connectée dans Git.

Les actions en aval se déclenchent de nouveau à chaque changement de ce type.

Entropy Data comme éditeur (avec workflows de PR)

De nombreuses organisations utilisent une branche main protégée afin de mieux contrôler les changements déployés dans leurs environnements de production. Pour ces cas, Entropy Data prend en charge les pull requests et les merge requests (pour simplifier la lecture, désignées par PR dans la suite).

Dans cet article, nous supposons que vous utilisez Entropy Data pour éditer les produits de données et les Data Contracts, puis que vous souhaitez ensuite mettre à jour les fichiers dans Git.

Une mise à jour dans Entropy Data est poussée vers une PR manuellement ou automatiquement ; la fusion de la PR déclenche les actions en aval et met à jour le statut de synchronisation Git

a) Pousser avec une PR manuellement

Comme décrit plus haut, un bouton « Push » apparaît sur la carte de connexion Git pour tout changement présent dans Entropy Data mais pas encore synchronisé avec Git.

Si vous souhaitez adopter l'approche par PR, sélectionnez l'option « Create Pull Request » dans la fenêtre qui s'affiche.

La fenêtre Push Changes avec Create Pull Request sélectionné, montrant les champs pour le nom de la PR, le nom de la branche et le message de commit

Comme on peut s'y attendre, l'interface vous laisse nommer la branche à créer, le titre de la PR et le message de commit.

Une fois vos choix confirmés, Entropy Data crée une nouvelle branche dans le dépôt connecté, committe et pousse les changements sur cette branche, puis ouvre une nouvelle PR chez votre fournisseur Git. Les PR en attente sont affichées dans la carte de connexion Git de votre ressource.

La carte de connexion Git affichant « Synchronized (with PR #1) » et la pull request ouverte avec un lien vers le fournisseur Git

Votre équipe peut ensuite suivre vos workflows habituels pour les changements, comme les revues de code et les tests automatisés. Vous pouvez continuer à utiliser Entropy Data pour appliquer des changements par-dessus la PR et les pousser sur sa branche tant qu'elle reste ouverte.

Lorsque tout est terminé et que la PR est fusionnée, Entropy Data détecte automatiquement la PR fermée et met à jour le statut de synchronisation.

Remarque

Si vous optez pour cette approche, gardez à l'esprit que l'objet dans Entropy Data (par exemple le Data Contract) ne sera pas synchronisé avec la version du dépôt tant que la PR reste ouverte.

Après la fusion, vos actions habituelles sont déclenchées, comme d'ordinaire.

b) Pousser avec une PR automatiquement

La boîte de dialogue de connexion Git avec l'option « Auto Sync Entropy Data to Git » réglée sur « Auto-sync via MR/PR »

Si vous avez activé l'option de push automatique vers une PR lors de la création de la connexion Git, le workflow est globalement le même, mais certaines étapes se font implicitement. Si une PR est déjà en attente, les changements sont automatiquement committés et poussés sur sa branche. Sinon, une nouvelle PR est créée avec vos paramètres par défaut pour la branche, le nom de la PR et le message de commit.

Une fois tous les changements effectués, tout ce qui est décrit plus haut pour le processus manuel s'applique également ici.

Gérer les produits de données et les Data Contracts avec Entropy Data

Entropy Data fournit une plateforme web pour gérer les produits de données, les Data Contracts et les data usage agreements en self-service, avec des intégrations Git pour tous les workflows décrits dans cet article.

Créer un compte gratuit, ou explorer la démo interactive.