Zum Hauptinhalt springen

Wissen

Git mit Entropy Data nutzen

Git lässt sich in deinem Unternehmen auf ganz unterschiedliche Arten einsetzen. Wir behandeln die häufigsten Anwendungsfälle mit der Git-Unterstützung in Entropy Data. Dieser Artikel behandelt „Git als führendes System“, „Entropy Data als führendes System (Trunk-based)“ und „Entropy Data als Editor (mit PR-Workflows)“.

Voraussetzungen

Für diesen Learn-Artikel gehen wir davon aus, dass du weißt, wie du Git einrichtest und Datenprodukte und Data Contracts mit ihren zugehörigen Git-Repositories verbindest. Mehr dazu findest du in der Dokumentation.

Das Wichtigste dabei: Für Datenprodukte und Data Contracts gibt es getrennte Verbindungen. Die Granularität ist wie folgt: Ein Objekt in Entropy Data ist mit „einer Datei in einem Git-Repository in einem Branch“ verbunden.

Ein Datenprodukt oder ein Data Contract in Entropy Data ist mit einer Git-Verbindung verknüpft, die aus einem Repository, einem Branch und einer Datei besteht

Empfohlene Repository-Struktur

Ein GitHub-Repository mit der empfohlenen Struktur: die dataproduct.yaml im Root-Ordner und je ein Unterordner pro Output Port mit den Data-Contract-YAML-Dateien

Wir empfehlen ein Repository pro Datenprodukt. Die YAML-Datei des Datenprodukts liegt im Root-Ordner, zusammen mit den weiteren Dateien, die das Datenprodukt braucht.

Jeder Output Port hat einen eigenen Unterordner, und die Data-Contract-YAML-Dateien liegen in diesem Unterordner.

Git als führendes System

Im ersten Anwendungsfall nutzt du Entropy Data als Visualisierungsschicht für deine Datenprodukte. Das Repository ist die Single Source of Truth und enthält alle Code-Artefakte sowie die YAML-Dateien der Datenprodukte und Data Contracts.

Wenn eine Datei aktualisiert wird, werden die Änderungen über einen Git-Pull in Entropy Data synchronisiert:

Eine in Git aktualisierte Datei erreicht Entropy Data über einen manuellen Pull, einen von CI/CD ausgelösten Pull oder einen Webhook

Wie du siehst, gibt es in diesem Fall mehrere manuelle und automatische Wege, deine Workflows mit Entropy Data zu verbinden.

a) Manuell pullen

Sobald Entropy Data eine Änderung auf der Git-Seite erkennt, zeigt es in der Karte der Git-Verbindung einen „Pull“-Button an, wenn du ein verbundenes Datenprodukt oder einen verbundenen Data Contract öffnest. Wählst du ihn aus, wird das YAML aus Git gepullt, das Datenprodukt oder der Data Contract wird in Entropy Data aktualisiert, und alle Änderungen werden sofort wirksam.

Die Karte der Git-Verbindung zeigt „File has been updated“ und einen Pull-Button, nachdem sich die verbundene Datei in Git geändert hat

b) Einen Pull über die Entropy Data CLI oder REST API in CI/CD auslösen

Du kannst einen Pull für eine Datei auch in deiner CI/CD-Pipeline auslösen. Alles, was du dafür brauchst, ist der eindeutige Identifier deiner Ressource. In der Entropy Data REST API findest du mehr dazu, welche Requests verfügbar sind. Wir planen, Git-Pull demnächst auch in der Entropy Data CLI zu unterstützen.

c) Webhook-Sync aktivieren

Beim Einrichten der Verbindung für deine Ressource erzeugt Entropy Data eine eindeutige Webhook URL, die im Abschnitt Auto Sync Git to Entropy Data des Git-Verbindungsdialogs angezeigt wird. Kopiere diese URL und lege in deinem Git-Provider einen Webhook dafür an (zum Beispiel in den Repository-Einstellungen auf GitHub). Von da an wird die Datei in Entropy Data automatisch aktualisiert, sobald Commits in das verbundene Repository gepusht werden. Schlägt der Webhook aus irgendeinem Grund fehl, musst du eventuell manuell pullen; dein Git-Provider informiert dich über fehlgeschlagene Webhook-Aufrufe. Bei der Fehlersuche hilft dir unsere Dokumentation.

Integration nur über CI/CD

Wenn es bei dir Einschränkungen dazu gibt, dass externe Apps oder Services die Git-Zugangsdaten deiner Organisation verwenden, kannst du die Entropy Data API nutzen, um die YAML-Dateien deiner Datenprodukte und/oder Data Contracts in deiner CI/CD-Pipeline zu synchronisieren.

In diesem Fall stehen dir die zusätzlichen Funktionen wie Konflikterkennung, Konfliktauflösung und der volle Umfang der Editier-Funktionen von Entropy Data nicht zur Verfügung.

Entropy Data als führendes System (Trunk-based)

Wenn du von den Editier-Funktionen von Entropy Data profitieren willst, kannst du einen Trunk-based-Ansatz für die Entwicklung wählen. Das bedeutet, dass alle Beteiligten eines Repositorys auf dem main-Branch arbeiten und Änderungen häufig committen. Wenn Entropy Data das einzige Werkzeug ist, mit dem an den Dateien in Git gearbeitet wird, ist der Workflow für diese Art der Entwicklung unkompliziert:

Eine in Entropy Data aktualisierte Datei erreicht Git über einen manuellen Push oder Auto Push und löst danach nachgelagerte Aktionen aus

a) Manuell nach Git pushen

Du bearbeitest die Ressource in beliebig vielen Schritten mit den Editoren von Entropy Data und entscheidest dann, dass eine neue Iteration in Git fällig ist. Du wählst den „Push“-Button, der automatisch erscheint, sobald Entropy Data Änderungen an einer Ressource erkennt. Du kannst zwischen „Push Directly“ und „Create Pull Request“ wählen (siehe unten). Für Trunk-based-Entwicklung wählst du „Push Directly“, und die Datei wird in Git aktualisiert.

Die Karte der Git-Verbindung zeigt „Changes detected“ und einen Push-Button Das Modal „Push Changes“ mit der Auswahl zwischen Push Directly und Create Pull Request, wobei Push Directly ausgewählt ist, und einer Commit-Nachricht

Alle nachgelagerten Aktionen, die von einem Git-Push abhängen, werden entsprechend deinen CI/CD-Pipelines, weiteren Hooks, Listenern und so weiter ausgelöst.

b) Auto Push aktivieren

Du kannst beim Anlegen einer Git-Verbindung für eine Ressource auch die Option „Auto Push“ aktivieren. In diesem Fall wird jedes Speichern eines Datenprodukts oder eines Data Contracts automatisch in die verbundene Datei auf dem verbundenen Branch in Git gepusht.

Nachgelagerte Aktionen werden auch hier bei jeder solchen Änderung ausgelöst.

Entropy Data als Editor (mit PR-Workflows)

Viele Organisationen nutzen einen geschützten main-Branch, um genauer zu steuern, welche Änderungen in ihre Produktivumgebungen ausgerollt werden. Für diese Fälle unterstützt Entropy Data Pull Requests und Merge Requests (der besseren Lesbarkeit halber im Folgenden PRs genannt).

In diesem Learn-Artikel gehen wir davon aus, dass du Datenprodukte und Data Contracts in Entropy Data bearbeitest und die Dateien danach in Git aktualisieren willst.

Eine Änderung in Entropy Data wird manuell oder automatisch in einen PR gepusht; das Mergen des PRs löst nachgelagerte Aktionen aus und aktualisiert den Git-Sync-Status

a) Manuell mit einem PR pushen

Wie oben bereits beschrieben, erscheint auf der Karte der Git-Verbindung ein „Push“-Button für jede Änderung, die in Entropy Data vorliegt, aber noch nicht mit Git synchronisiert ist.

Wenn du den PR-Ansatz nutzen willst, wähle im erscheinenden Modal die Option „Create Pull Request“.

Das Modal „Push Changes“ mit ausgewählter Option Create Pull Request und Feldern für PR-Name, Branch-Name und Commit-Nachricht

Wie erwartet kannst du in der UI den anzulegenden Branch, den PR-Titel und die Commit-Nachricht benennen.

Sobald du deine Auswahl bestätigt hast, legt Entropy Data einen neuen Branch im verbundenen Repository an, committet und pusht die Änderungen in diesen Branch und öffnet einen neuen PR bei deinem Git-Provider. Offene PRs werden in der Karte der Git-Verbindung deiner Ressource angezeigt.

Die Karte der Git-Verbindung zeigt „Synchronized (with PR #1)“ und den offenen Pull Request mit einem Link zum Git-Provider

Dein Team kann dann euren üblichen Workflows für Änderungen folgen, etwa Code-Reviews und automatisierten Tests. Du kannst weiterhin Entropy Data nutzen, um Änderungen auf dem PR aufzusetzen und sie in den PR-Branch zu pushen, solange dieser noch offen ist.

Wenn alles fertig ist und der PR gemergt wurde, erkennt Entropy Data den geschlossenen PR automatisch und aktualisiert den Sync-Status.

Hinweis

Wenn du dich für diesen Ansatz entscheidest, denk daran, dass das Objekt in Entropy Data (zum Beispiel der Data Contract) so lange nicht mit der Version im Repository synchron ist, wie der PR offen ist.

Nach dem Merge werden deine üblichen Aktionen wie gewohnt ausgelöst.

b) Automatisch mit einem PR pushen

Der Git-Verbindungsdialog mit der Option „Auto Sync Entropy Data to Git“, eingestellt auf „Auto-sync via MR/PR“

Wenn du beim Anlegen der Git-Verbindung die Option zum automatischen Push in einen PR aktiviert hast, läuft der Workflow im Wesentlichen genauso ab, nur passieren einige Schritte implizit. Ist bereits ein PR offen, werden Änderungen automatisch committet und in den Branch dieses PRs gepusht. Andernfalls wird ein neuer PR mit deinen Standardeinstellungen für Branch, PR-Name und Commit-Nachricht angelegt.

Sobald alle Änderungen erledigt sind, gilt alles, was oben für den manuellen Prozess beschrieben ist, auch hier.

Datenprodukte und Data Contracts mit Entropy Data verwalten

Entropy Data bietet eine webbasierte Plattform, um Datenprodukte, Data Contracts und Data Usage Agreements im Self-Service zu verwalten, mit Git-Integrationen für alle in diesem Artikel beschriebenen Workflows.

Kostenlos registrieren oder die interaktive Demo ausprobieren.