Skip to main content

Staging Environment

Was ist Staging Environment?

Als Staging Environment, übersetzt Inszenierungsumgebung, wird eine Serverumgebung bei der Software- und Webseitenentwicklung bezeichnet, die es ermöglicht, Software und Webseiten unter annähernd realen Bedingungen zu testen.

Bei der Softwareentwicklung ist eine Umgebung ein Computersystem, in dem ein Computerprogramm oder eine Softwarekomponente bereitgestellt und ausgeführt wird. Im Fall von einfachen Projekten, zum Beispiel bei der Entwicklung und sofortigen Ausführung eines Programms auf demselben Computer, ist nur eine einzelne Umgebung vorhanden. Bei komplexen Anwendungen werden die Entwicklungsumgebung, wo Änderungen ursprünglich vorgenommen werden, und die Produktionsumgebung, die Endbenutzer verwenden, voneinander getrennt. Oft mit mehreren weiteren Umgebungen dazwischen. Dieser strukturierte, sogenannte Release-Management-Prozess ermöglicht es, im Fall von Problemen eine phasenweise Bereitstellung (Rollout), Tests und gegebenenfalls Rollbacks durchzuführen.

Software Entwicklungs-Architekturen

Im Allgemeinen werden die Stufen von der Entwicklung bis zur Produktion einer Software oder Webseite gebündelt. Eine gängige 4-stufige (4-Tier) Architektur umfasst die Entwicklung, das Testen, das Staging Environment und die Produktion (abgekürzt: DEV, TEST, STAGING, PROD).

Das Vier-Stufen-Entwicklungsmodell

Jeder Webentwickler sollte mit dem Vier-Stufen-Implementierungsmodell für Entwicklung, Tests, Bereitstellung und Produktion vertraut sein. In den meisten Fällen ist dies der “Standard” für das Erstellen, Testen und Bereitstellen von Webanwendungen und beinhaltet:

  • Entwicklung: Hier nehmen die Entwickler Änderungen am Code vor. Die Entwicklungsumgebung ist in der Regel eine lokale Umgebung mit einem Mandanten, zum Beispiel das Laptop eines Entwicklers.
  • Testen: Dies ist eine Integrationsumgebung, in der Entwickler Änderungen zusammenführen, um zu testen, ob sie zusammenarbeiten. Es kann auch eine Qualitätssicherungs-Umgebung sein.
  • Staging Environment: Hier werden getestete Änderungen mit optimalerweise produktionsgleichen Infrastrukturen und Daten überprüft, um sicherzustellen, dass sie ordnungsgemäß funktionieren, wenn sie freigegeben werden.
  • Produktion: Dies ist die Live-Produktionsumgebung.

Dieses Modell gibt es seit einiger Zeit und wird oft als eine Art Best Practice für Entwicklungs-Architekturen bezeichnet. Das Four-Tier-Entwicklungsmodell entstand aus einer zunehmenden Komplexität beim Entwurf, Testen, Staging und Ausliefern von Webanwendungen und physischen Einschränkungen der Computerinfrastruktur. Als die Komplexität der Software zunahm, begannen Entwickler mit komplexeren Entwicklungsumgebungen für die Bereitstellung von Software. Auf diese Weise konnte das Entwicklungsmodell in eine Reihe von Schritten aufgeteilt werden, die den Tests, die für komplexe Anwendungen erforderlich waren, besser entsprachen. Dabei wird der entwickelte Code durch diese Ebenen verschoben, wobei jede Ebene eine gewisse Garantie für die zunehmende Konsistenz der Daten und der Umgebung sowie für die Qualität des Codes bietet.

Andere übliche Umgebungen umfassen zusätzlich oder alternativ die Qualitätssicherung (QA) für Akzeptanztests, Sandboxen für Experimente, die nicht in die Produktion gehen sollen und das sogenannte Disaster Recovery, um bei Problemen mit der Produktion einen sofortigen Rückfall zu ermöglichen. Eine weitere Architektur ist die Entwicklung, Testen, Qualitätssicherung und Produktion, abgekürzt DTAP für DEV, TEST, QA, PROD.

Die einzelnen Umgebungen können sehr unterschiedliche Größen haben. Bei der Entwicklung (DEV) ist es typischerweise eine individuelle Entwickler-Workstation. Bei großen Projekten können aber auch Tausende Entwickler beteiligt sein. Test und Qualitätssicherung (QA) können klein oder groß sein, abhängig von den dafür eingesetzten Ressourcen. Staging Environment kann ebenfalls von einem einzigen Computer bis zu einem genauen Duplikat der Produktion praktisch jede Größenordnung umfassen.

Staging Environment – letzte Stufe vor der Produktion

Staging Environment ist eine Umgebung für abschließende Tests unmittelbar vor der Übergabe einer Software an die Produktion oder der Veröffentlichung einer Webseite. Sie versucht, die tatsächliche Produktionsumgebung so genau wie möglich abzubilden und kann sich mit anderen Produktionsdiensten wie Datenbanken, verbinden. Beispielsweise werden Server auf Remotecomputern und nicht lokal ausgeführt, wodurch der Netzwerkeffekt auf dem System getestet wird.

Die primäre Verwendung des Staging Environment besteht darin, alle Skripts und Prozeduren für die Installation, Konfiguration und Migration zu testen, bevor sie in der Produktionsumgebung angewendet werden. Dadurch soll sichergestellt werden, dass alle größeren und kleineren Upgrades in der Produktionsumgebung zuverlässig und ohne Fehler in kürzester Zeit durchgeführt werden. Ein weiterer wichtiger Einsatzbereich des Staging Environment ist der Performance Test und insbesondere Belastungstest in einer möglichst realen Umgebung.

Erst, wenn der Code alle Anforderungen erfüllt und die Änderungen gegebenenfalls von einem externen Auftraggeber freigegeben wurden, wird der Code in die Produktionsumgebung verschoben und steht den Nutzern zur Verfügung.

Staging-Datenbankserver und Staging-Server

Das Staging Environment umfasst in der Regel zwei wesentliche Hardware-Komponenten. Den Staging Environment Datenbankserver und den Staging-Server. Der Staging-Datenbankserver enthält meist einen Klon der Geschäftsdaten, Produktkataloge sowie weiterer Datenbankressourcen, die auf den Datenbankservern in der Produktionsumgebung bereitgestellt werden sollen. Benutzer können Geschäftsdaten in der Stagingumgebung aktualisieren, sodass sie die Änderungen testen und genehmigen können, bevor Sie die Änderungen in die Produktionsumgebung übernehmen. Die Staging Environment Umgebung verhindert eine Unterbrechung der Produktionsumgebung und der Dienste durch die Isolierung der Test- und Produktionssysteme.

Der Staging-Server ist ein Spiegel des Produktions-Servers. Staging-Projekte werden auf dem Staging-Server erstellt, um Site-Updates von der Testumgebung in die Produktionsumgebung zu implementieren. Der Staging-Server kann auch zur Bereitstellung von Updates für geografisch verteilte Umgebungen über ein WAN (Wide Area Network) verwendet werden. Benutzer und interne Entwickler können so verschiedene Aspekte der Website eines Unternehmens mit Sitz irgendwo auf der Welt ändern, wobei sich die Test- und Produktionsumgebungen in einem lokalen Rechenzentrum befinden.

Die Vor und Nachteile des Staging Environment

In einer Entwicklungsumgebung ist es für einen Entwickler nicht erkennbar, wie gut sein Code mit dem gesamten anderen Programmcode im System funktioniert. Dies ist erst im Staging Environment möglich. Das Staging Environment ist zwar eine Kopie der Produktionsumgebung, muss jedoch keine echten Benutzerkonten und Daten enthalten. Dadurch ist es möglich, in der Realität nur selten auftretende Fälle zu testen. Beispielsweise, wie sich das System verhält, wenn Benutzernamen Sonderzeichen enthalten oder ein Konto den Benutzer als 143-jährigen Mann ausweist. Es ist besser, diese Daten in der Staging Environment als in der Produktionsumgebung zu erstellen und zu testen.

Entwickler können mit dem Staging Environment ausgiebig alle erdenklichen Vorkommnisse testen, ohne befürchten zu müssen, dass das Produktionssystem versehentlich heruntergefahren wird oder dass echte Benutzerdaten bearbeitet oder gelöscht werden. Ein weiterer Vorteil ist, dass neue Funktionen einer Anwendungssoftware oder einer Webseite vor der Freigabe unter realen Bedingungen durch den Auftraggeber ausführlich getestet und auf ihre Eignung geprüft werden können.

Ein Nachteil sind die hohen Kosten, die für die Bereitstellung der Ressourcen (Hardware und Personal) für das Staging Environment entstehen. Bei weniger komplexen Projekten wird das 4-Tier-Entwicklungsmodell daher oft auf ein 2-Tier-Modell reduziert. Dabei wird nur die Entwicklungsumgebung von der Produktionsumgebung getrennt und auf die Inszenierungsumgebung verzichtet.

Sie haben noch Fragen?

Kontaktieren Sie uns

Staging Environment
Beitrag bewerten