Azure Synapse Analytics Entwicklung mit DevOps

Azure Synapse Analytics Entwicklung: Continuous Integration und Delivery mit Azure DevOps

In einem professionellen Umfeld gelten für Azure Synapse Analytics Plattformen dieselben Anforderungen an die Weiterentwicklung und das Management wie in anderen Bereichen der modernen Softwareentwicklung: Sie soll automatisiert nach den Grundsätzen von DevOps erfolgen. Wir setzen in beinahe allen Kundenprojekten DevOps ein. Damit steigern wir die Qualität und minimieren die Entwicklungszeit. Dieser Blog beschreibt die Vorteile von DevOps im Zusammenspiel mit Azure Synapse Analytics und geht zugleich auf Herausforderungen ein.

Azure Synapse Analytics: Das attraktive DWH von Microsoft

Azure Synapse Analytics ist das Datawarehouse (DWH) von Microsoft. Durch das attraktive Pricing ohne Fixkosten, basierend auf Datenvolumen und Datenverarbeitung, ist Synapse Analytics für viele Unternehmen – insbesondere auch für den Mittelstand – eine interessante Plattform. Dank einer intuitiven Oberfläche und einem einfachen UI lassen sich auf Synapse Analytics rasch DWHs erstellen. Die Ausbaumöglichkeiten sind dank der zugrundeliegenden modernen Architektur praktisch unbegrenzt. Mehr dazu gibt es im Beitrag Azure Synapse Analytics im Einsatz (allgeier.ch) zu lesen.

Azure Synapse setzt neben eigenen Implementationen und Azure Kompatibilität auch auf bewährte Open Source Data Analytics Tools. Die Konnektoren sind sehr umfangreich und umfassen zum Beispiel SAP, Cassandra, Dynamics, Apache HBase, HDFS, Salesforce, HubSpot, Informix, Oracle, Shopify, Google und Jira. Eine Connector-Liste gibt es unter Connector overview – Azure Data Factory & Azure Synapse | Microsoft Learn.

Azure Synapse Analytics Weiterentwicklung mit DevOps

Um Synapse Analytics im produktiven Umfeld einzusetzen, ist DevOps ein wichtiges Thema. Es ist essenziell, dass ein Rollout neuer Funktionen automatisiert und über mehrere Stages abläuft. Nur so lässt sich die geforderte Qualität und Stabilität erreichen. Azure Synapse Analytics verfügt dazu bereits über einige Hilfsmittel. Die Grundlage dafür ist die Git-Integration, welche mitgeliefert wird.

Abbildung 1: DevOps Prozess in einer Azure Synapse Analytics Umgebung

Die Entwicklung und die initialen Tests finden auf einer eigenen Synapse Umgebung (Dev/Test) statt. Die Git-Integration von Synapse erlaubt es, auf verschiedenen Branches zu arbeiten und diese mittels Pull-Request in den Haupt-Branch zu übernehmen. So können mehrere Features parallel entwickelt werden.

Mit den Azure DevOps Build Pipelines kann von einem bestimmten Stand des Git-Repositories ein Release Package erstellt werden, welches sämtliche Synapse Artefakte als JSON-Dokument verpackt enthält. Um die verschiedenen Konfigurationen der Stages zu behandeln, gibt es pro Stage eine Parameter-Datei. Das Package wird dann in eine Release Pipeline auf den verschiedenen Stages appliziert.

Abbildung 2: Azure Synapse DevOps Pipeline

Aktueller Stand und Herausforderungen

Microsoft liefert beinahe die ganze Tool-Kette als Bausteine, die zu einem individuellen DevOps-Prozess zusammengestellt werden können. Die Einarbeitung in die Tools und deren Anwendung ist meist einfach, leider aber nicht immer dokumentiert. In Kombination mit PowerShell und Azure CLI können die Puzzleteile zusammengefügt werden. So erhält man eine solide, technischen Basis zur Release-Prozess Umsetzung für ein komplettes Azure Synapse DWH.

Noch unschön ist aktuell die Nachvollziehbarkeit der Code-Merges in Azure DevOps, da die JSON-Artefakte verschachtelt sind. Hier wäre eine integrierte Vergleichs-Funktion wünschenswert. Selbst gelöst werden muss das Ausführen der SQL-Scripts auf den Synapse Integrations- und Produktions-Umgebungen. Eine weitere Schwierigkeit bei der Automatisierung ist der Umgang mit Umlauten und Spezialzeichen.

Unsere Kunden profitieren bei diesen Herausforderungen von unserem Toolset, welches laufend ergänzt und angepasst wird.

Praxis-Tipp: DevOps von Beginn weg integrieren

Unsere Erfahrung hat gezeigt, dass der DevOps-Prozess beim Projektstart berücksichtigt und in das Konzept integriert werden sollte. Dabei kann der Prozess im Laufe des Projektes in der operativen Phase iterativ angepasst und weiterentwickelt werden. Häufig wird der DevOps-Prozess, wenn er nicht zu Beginn integriert wurde, zu einem späteren Zeitpunkt aufgrund der höheren Komplexität und der höheren Aufwände und Kosten nicht mehr umgesetzt. Dies wiederum führt auf mittlere und lange Sicht zu Problemen im Release Management. Der kleine initiale Mehraufwand bei der Integration von DevOps in das Vorhaben zahlt sich bereits nach kurzer Zeit durch Minimierung von Fehlern, Verbesserung der Qualität und einem rascheren und effizienterem Releas-Zyklus mit tieferen Durchlaufzeiten aus.

Fazit und Empfehlung

DevOps ist ein immer noch unterschätzter, aber essenzieller Bestandteil eines IT-Projekts. Die Vorteile sind: Risikominimierung, Geschwindigkeit, Qualität, Nachvollziehbarkeit und Wartbarkeit. In Azure Synapse Analytics lässt sich bereits heute ein guter DevOps-Prozess implementieren. Microsoft liefert die meisten Hilfsmittel Out-of-the-Box; diese müssen nur noch wie ein Puzzle zusammengefügt werden. Noch vorhandene Lücken können mit eigenen Automatisierungs-Tools geschlossen werden.

Gerne geben wir unsere Erfahrung weiter: Wir unterstützen Sie bei Ihrem Vorhaben und gestalten gemeinsam mit Ihnen Ihren Entwicklungsprozesse effizienter.

Links

;