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.
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.
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.
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.
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.
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.