15. Aug 2022
Lesedauer 8 Min.
Moderne Staging-Systeme
Power Platform
Betriebssicherheit bei der Low-Code-Platform erhöhen.

Staging-Systeme sind mittlerweile ein selbstverständlicher Bestandteil jeder guten Softwarearchitektur. Durch sie lassen sich einzelne Komponenten testen, noch bevor diese in das produktive Live-System eingespielt werden. So werden potenzielle Fehler frühzeitig erkannt, ohne dass die Effizienz im täglichen Betrieb nachlässt.Vor allem aber in der Low-Code-Entwicklung von Microsoft Power Apps, also von anwendbaren Betriebslösungen für Smartphones, Tablets und PCs, die Bestandteil des Microsoft-Systems Power Platform sind, sind Staging-Systeme bisher jedoch noch nicht überall angekommen.In Deployment-Prozessen bleibt das Staging bisher somit weitgehend unberücksichtigt, obwohl es als Maßstab für alle gängigen Softwareentwicklungen Erleichterungen schaffen könnte.Doch wie sieht es in Zukunft mit dem Staging als Teil der Softwareentwicklung aus und welche Maßstäbe gilt es dabei zu setzen?
Wie Staging-Systeme die Low-Code-Entwicklung prägen können
An vielen Kundenbeispielen wird klar erkennbar, dass Tests und sichere Analysen der Entwicklungs- und Kontrollumgebung eher halbherzig praktiziert werden. Die meisten Kunden testen Programme lediglich in der Default-Umgebung, was für eine funktionale Entwicklung mehr als fahrlässig ist.Sogar Microsoft selbst beschreibt die vorherigen Funktionalitätstests als einen wichtigen Ansatz, um die einzelnen Prozesse der Entwicklung sicher zu prüfen.Doch warum ist es verheerend, wenn das Testen auf einem einsatznahen System fehlt?- Einige Tests sind nur im produktiven Live-System möglich.
- Aufwendige Rechte-Systeme lassen sich nur im Live-Einsatz simulieren.
- Drastische Fehler sind nur sehr aufwendig zu beheben.
- Die Bereitstellung klassischer Testdaten ist kaum möglich.
- Funktionsupdates durch Microsoft können Fortschritte gefährden.
Die wichtigsten Begriffsdefinitionen rund um das Staging
Um sich näher mit dem Staging zu befassen, kommt es zunächst jedoch auf die Umgebungen an, die bei Microsoft eine Rolle spielen. Bei einer Umgebung handelt es sich immer um einen Container, den Administratoren zur Verwaltung von Anwendungen, zur Automatisierung und für Verbindungen mit anderen Assets nutzen können.Dabei gibt es mehrere Umgebungen, die sich anhand ihrer Eigenschaften stark unterscheiden. Folgende Details sind dabei zu beachten:- Default: Dieses Environment wird automatisch in jedem lizenzierten Power-Platform-Mandanten erstellt. Es kann für Evaluierungen, Proofs of Concept und vieles mehr verwendet werden, aber nicht für die Entwicklung komplexer Lösungen oder in produktiver Umgebung [1].
- Trial: Am besten geeignet zum Testen bestimmter Produktfunktionen, für Lösungen von Drittanbietern, zu Demonstrationszwecken und in ähnlichen Bereichen.
- Developer: Nur im CommunityPlan enthalten. Volle Funktionalitäten sind gegeben, jedoch nur für einen Benutzer (Single User); daher nicht für Entwicklerteams geeignet.
- Sandbox: Pre-Production-Zwecke ohne Auswirkungen auf den Live-Betrieb.
- Production: Produktive Umgebung als Container für ganzheitliche Funktionstests.
- Support: Microsoft-Support-spezifisch. Bestehendes Environment wird repliziert, um Fehleridentifizierung zu betreiben. Am Ende wird das Environment dann wieder gelöscht.
Das Grundkonzept der Staging-Entwicklung
Die Entwicklung einer Umgebungsstrategie [2] bedeutet, alle Ebenen der Datensicherheit (DLP) so zu konfigurieren, dass die produktive Entwicklung in einem Unternehmen unterstützt wird. Gleichzeitig zielt diese Strategie allerdings auch darauf ab, die Ressourcen abzusichern und zu organisieren.Wenn man die Grundsätze des Application Lifecycle Managements (ALM) [3] befolgen möchte, benötigt man getrennte Umgebungen für die Anwendungsentwicklung und die Produktion. Obwohl ein grundlegendes ALM auch mit getrennten Entwicklungs- und Produktionsumgebungen durchgeführt werden kann, empfiehlt es sich, mindestens eine Testumgebung, eine sogenannte Staging-Umgebung zu unterhalten, die von den Entwicklungs- und Produktionsumgebungen getrennt ist.Diese Staging-Umgebung beschreibt eine Umgebungsinstanz, welche mit der Umgebung des Produktivsystems möglichst identisch sein sollte. Auf dem Staging-System dürfen sich ausschließlich die Änderungen befinden, die auch tatsächlich integriert wurden und live gehen sollen. Mit solch einer Instanz lassen sich die angesprochenen Nachteile vermeiden.Diese Arten von Staging sind von Bedeutung
Wenn es um das klassische Staging-Konzept geht, kommt es auf drei zentrale Ebenen an. Rund um Development, Testing und Production werden jedoch nur einfache Entwicklungsprozesse in eher kleinen Teams abgedeckt.Darüber hinaus gibt es viele weiteren Arten des Stagings, die sich für die kundenspezifische und exakte Entwicklung eignen. Im Folgenden finden Sie einen Überblick über die drei gängigen Strategien des Stagings, die je nach Art und Größe eines Projekts gut geeignet sind:Simple DevelopmentBeim Simple Develpoment (Bild 1) handelt es sich um die einfachste und zudem minimal erforderliche Umgebungseinrichtung zur Entwicklung einer Power Platform Solution. Sie setzt sich aus den bereits beschriebenen Aspekten Development, Testing und Production zusammen.
Simple Development(Bild 1)
Autor
Vor allem für einfache Projekte, deren Komplexität begrenzt ist, kann sich eine solche Lösung anbieten. Sollte es sich bei einem Projekt jedoch um eine umfassendere Plattform handeln, ist die Zuweisung von separaten Umgebungen zum Testen durchaus relevant. Sonst kommen sich die Entwickler nämlich in die Quere.Complex Testing Best PracticeFür umfangreiche Projekte ist eine Ausweitung des Testens zu empfehlen (Bild 2). Dies gilt immer dann, wenn eine kundenspezifische Entwicklung gefragt ist, die sich in mehreren Teststufen genauestens anhand der erhaltenen Anforderungen umsetzen lässt.

Complex Testing(Bild 2)
Autor
Systemintegrationstests, Tests rund um die Benutzerakzeptanz und Betriebsakzeptanztests ermöglichen einen ganzheitlichen Einblick. Auf diese Weise lassen sich technische Lösungen als Ganzes testen, was auch für die möglichen Integrationen zu anderen IT-Systemen gilt. So kann die Microsoft Platform final Teil der Umgebung werden.Development Teams/WorkstreamsJe größer die Power Platform Solution ausfällt, desto wichtiger wird der Development-Prozess im Rahmen der kundenspezifischen Entwicklung. Da der vorhandene Aufwand in diesem Fall nur schwer mit einem Arbeitsstrom bewältigt werden kann, gilt es, die Komplexität zu prüfen. Je besser die einzelnen Teile der Lösung voneinander getrennt sind, desto einfacher lässt sich an den jeweiligen Lösungen und Funktionen arbeiten. Im Customization and Develpoment Build Master lassen sich dann alle Anpassungen im Dataverse zentral durchführen und übertragen (Bild 3).

Development Teams/Workstreams(Bild 3)
Autor
CI/CD-Pipelines als Bindemittel der Umgebungen
Grundsätzlich wäre es möglich, die Lösungen per Hand zu exportieren und wieder auf den Staging-Umgebungen zu importieren. Dies wäre aber nicht zielführend. Glücklicherweise gibt es zahlreiche CI/CD-Pipeline-Lösungen. Azure DevOps bietet hierbei eine Basis, um Planning, Monitoring und Developement Workflows bei der Entwicklung abzudecken.Die Funktionalitäten, die am meisten benötigt werden, sind das Erstellen von CI/CD-Pipelines oder auch der Testautomationen. Dabei kommt es auf die Unternehmensprojekte an und auf die damit verbundene Vielzahl von projektspezifischen Problemen. Diese können natürlich auch durch benutzerdefinierte Skripte gelöst werden, aber die Implementierung eines soliden Prozesses für die angesprochenen Staging-Lösungen kann einen großen Unterschied machen. Eine Vielzahl von Tools mit oder ohne Azure DevOps steht zur Verfügung, wie zum Beispiel die folgenden:- Power Platform Build Tools (von Microsoft) [4]
- Power DevOps Tools (Wael Hamze) [5]
- KDTooling Deployment Manager [6]
Der Stellenwert des Stagings innerhalb der Entwicklung
Wie bereits erwähnt, ist das Staging in vielen Betrieben für die Entwicklung noch nicht gänzlich angekommen. Dennoch zeigt sich an vielen Best-Practice-Beispielen, wie wichtig eine exakte und professionelle Analyse zur Durchführung ist. Nur im Staging wird es dadurch möglich, für eine gelungene Interaktion mit der Benutzeroberfläche zu sorgen und viele Szenarien vorab im Rahmen von Tests abzubilden. Das spart beim Erstellen, Optimieren und Überprüfen kostbare Zeit, um die gewünschten Funktionen sicherzustellen. Genau dabei wird Staging zur besten Entlastung.Das effektive Aufsetzen moderner Staging-Systeme
Staging kann aber natürlich nur dann funktionieren, wenn die damit verbundenen Systeme so effektiv wie möglich aufgesetzt werden. Ziel der Einbindung einer Staging-Umgebung sollte es daher sein, eine direkte Nähe zum produktiven System zu schaffen, um entsprechende Variablen bei der Prüfung exakt unter die Lupe zu nehmen. So lässt sich eine deutlich größere Anzahl möglicher Prozesse integrieren und die beste Performance für den weiteren Betrieb ideal sicherstellen. Investitionen im Bereich Staging ermöglichen dadurch eine deutliche Qualitätsverbesserung für bereits vorhandene Deployment-Setups.Wer auf Staging verzichten und so Zeit und Kosten sparen möchte, sollte sich diesen Schritt gut überlegen. Durch Staging rund um den Developing- und Testing-Prozess verbessern sich Fehlerfreiheit, Einfachheit und Übersichtlichkeit in jeder Hinsicht.Staging-Systeme – die Zukunft
Staging-Systeme sind keine Einheitslösung. Sie müssen so gestaltet werden, dass sie zu den vorhandenen Anforderungen passen. Der Umfang und die Ausgereiftheit der Strategie dahinter sollte von Projekt zu Projekt entschieden werden. Es ist wichtig, die Entwicklungsmethodik zu verstehen, die das Projektteam für den Entwurf der Lösung verwendet. Die Staging-Strategie muss dabei so beeinflusst werden, dass sie Projektteams unterstützt. Wenn dies geschieht, lässt sich ein Staging-Prozess problemlos in den täglichen Unternehmens- und Projektprozess einbinden, um die Koordination stets weiter zu optimieren.Fussnoten
- The default environment, http://www.dotnetpro.de/SL2209Staging1
- Defining a Power Platform Environment Strategy, http://www.dotnetpro.de/SL2209Staging2
- ALM-Grundlagen mit Microsoft Power Platform, http://www.dotnetpro.de/SL2209Staging3
- Microsoft Power Platform Build Tools for Azure DevOps, http://www.dotnetpro.de/SL2209Staging4
- Power DevOps Tools, http://www.dotnetpro.de/SL2208Staging5
- Kupp Deployment Manager, http://www.dotnetpro.de/SL2209Staging6
- Power Platform Build Tools vs. Third-party tooling (technical review & comparison), http://www.dotnetpro.de/SL2209Staging7