Definition „Inszenierungsumgebung“ Was ist eine Staging-Umgebung?

Von Egoloizos

Anbieter zum Thema

Die Staging Environment ist eine Serverumgebung zum Test von Anwendungen und Webseiten unter näherungsweise wirklichkeitsgetreuen Voraussetzungen. Dabei kommen ähnliche Komponenten zum Einsatz wie in der Release-Version.

Die Staging-Umgebung bildet die Produktionsumgebung idealerweise nahezu detailgetreu nach.
Die Staging-Umgebung bildet die Produktionsumgebung idealerweise nahezu detailgetreu nach.
(Bild: Nature_Brothers / Pixabay)

Das Staging beschreibt einen Schritt im Workflow im Rahmen der meisten Entwicklungsvorhaben. Die Staging-Umgebung beziehungsweise ist eine Serverumgebung, die einen umfassenden Test von Webseiten oder Anwendungen unter fast realen Voraussetzungen ermöglicht.

Die Staging-Environment setzt auf eine ähnliche Hardware wie die diejenige Produktionsvariante, auf der die Release-Version basiert. Das Staging ist ein Prozess, bei dem bereits teilweise auf die Datenbank zugegriffen wird. Zur Staging-Umgebung haben autorisierte Nutzer Zugriff, denen die Aufgabe zukommt, die Funktionalität zu prüfen.

Letztlich dient die Staging Environment also einer Simulation des letztlich veröffentlichten Systems. Die Umgebung gibt damit Rückschlüsse darauf, wie sich das System verhält, wenn es von der Entwicklungs-Umgebung unabhängig getestet wird.

Staging im Überblick

Das Staging lässt sich als Teil beziehungsweise Schritt des Workflows verstehen. Es gehört als Komponente zum Deployment-Prozess. Dieser umfasst die Inbetriebnahme und Verteilung von Anwendungen unter Berücksichtigung der Infrastruktur. Grundsätzlich lässt sich zwischen unterschiedlichen Entwicklungsschritten unterscheiden, zu denen jeweils bestimmte Systeme und Umgebungen gehören.

Zu jedem Entwicklungsschritt gehört normalerweise eine eigene Server-Umgebung, in vielen Fällen ist dies aus wirtschaftlichen Gründen ein virtueller Server. Ein physischer Server ist keine zwingende Voraussetzung zur Umsetzung der Entwicklungsschritte. Für Staging-Zwecke kommen virtuelle Server zum Einsatz, der auf dem gleichen Server gehostet wird, der auch die Webseite bereitstellt.

Die Staging-Umgebung ist jedoch über eine Sandbox-Strategie abgeschirmt. Grundsätzlich sind im Entwicklungs-Prozess das Entwicklungssystem sowie das Produktionssystem klar voneinander getrennt. Auf diese Weise lassen sich eventuelle Fehler oder Konflikte vermeiden, wie sie etwa im Rahmen der Datenbank-Migration auftreten können.

Stellenwert der Staging-Umgebung im Entwicklungsprozess

In der Software- und Webentwicklung lassen sich mehrere Entwicklungsschritte unterscheiden. Mit diesen sind bestimmte Umgebungen oder Environments verbunden. Grundsätzlich ist zwischen Entwicklung (Development), Staging und Produktion zu unterscheiden. Ergänzt werden diese Umgebungen gegebenenfalls durch ein Testing-Environment sowie eine Qualitätssicherungs-Umgebung.

Neben der Staging-Umgebung ist der Prozess gekennzeichnet von einer Reihe weiterer Umgebungen in der Entwicklung. Dazu gehört die Entwicklungsumgebung, in der die Anforderungen der Software umgesetzt werden. Die auch als Development-Environment bekannte Umgebung stellt eine Arbeitsversion der Anwendung oder Software dar und liegt entweder auf einem lokalen Rechner oder einem gesicherten Server.

Software- und Anwendungsentwickler können in dieser Umgebung Änderungen des Quellcodes vornehmen und damit Features entwickeln oder verändern. In dieser Umgebung wird mit zahlreichen Debugging- und Testing-Tools sowie Compilern gearbeitet. Zudem haben Entwickler Zugriff auf einen Teil der Datenbank, damit sie bestimmte Funktionen prüfen und implementieren können. Sind mehrere Entwickler beteiligt, kommen zudem Versionskontrollsysteme zum Einsatz, damit von unterschiedlichen Entwicklern vorgenommene Änderungen synchronisiert werden können.

Ein weiterer Bestandteil ist die Build-Umgebung, in der es zur zentralen Kompilierung (nicht jedoch Ausführung) des Quelltextes kommt. Die Testumgebung dient dem automatisierten Ausführen der Software-Test. Eine weitere wichtige Umgebung ist die Produktivumgebung, in der das Programm im Zusammenhang des angedachten Anwendungsszwecks des Kunden verwendet wird. Dabei kommt es zur ständigen Überprüfung der Programmfunktionen über Maßnahmen wie Monitoring, Logging und Auditing.

Die Staging-Umgebung sollte im Allgemeinen die Produktivumgebung abbilden. Idealerweise handelt es sich um eine Kopie der Umgebungen. In der Praxis ist dies nicht immer umsetzbar, aber beide Umgebungen profitieren davon, wenn die Komponenten (Hardware sowie Software) einander möglichst ähnlich sind. Dies trägt dazu bei, Konflikte in der Arbeit mit diesen Umgebungen zu vermeiden. An der Stelle der Produktions-Umgebung werden allgemein keine Änderungen mehr von Entwicklern vorgenommen. Quellcodes sind an dieser Stelle bereits veröffentlichungsbereit, da er in unterschiedlichen Umgebungen bereits einen Test durchlaufen hat.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Softwareentwicklung und DevOps

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

Ergänzt wird der Entwicklungsprozess durch die Qualitätssicherungsumgebung (QS), in der Tester nach Fehlern suchen oder zusätzliche Tests durchführen. Auch die Qualitätssicherungsumgebung sollte der Produktivumgebung möglichst ähnlich sein. Diese Umgebung ist auch als QA (Quality and Assurance) bekannt. Sie ist optional und dient der Identifikation von Fehlern oder Bugs im Code. Auf diese Weise soll verhindert werden, dass sich dieser Schritt auf die Development-Umgebung auswirkt.

Development und Qualitätssicherung sind strikt voneinander getrennt, damit sich Entwicklung und Tests nicht in die Quere kommen. Würde ein Entwickler gerade eine neue Funktion testen, während jemand anderes Änderungen vornimmt, wäre das System nicht mehr funktionsfähig. Bei der Qualitätssicherung kommen teilweise ganze Gruppen von Nutzern zum Einsatz, ähnlich wie bei einem Betatest.

Staging-Umgebung in Programmierung und Entwicklung

Staging-Umgebungen sind geprägt von einem recht hohen Ressourcenanspruch. Da die Hardware und Infrastruktur der Produktions-Umgebung möglichst ähnlich sein müssen, sind entsprechende Anschaffungen erforderlich. Das System bedarf überdies einer sorgfältigen Konfiguration und zudem sind die notwendigen Daten aufzusetzen.

Dies sind nur einige der Voraussetzungen, die erfüllt sein müssen, damit die Staging-Umgebung die Produktions-Umgebung unter den geforderten realen Bedingungen simulieren kann. Staging-Umgebungen finden daher typischerweise in größeren Unternehmen und Projekten.

(ID:47474944)