Staging Site

Eine Staging Site ist eine Website-Replikation, die zum Testen von Funktionen, Addons, Plug-ins, Themes und Quellcode erstellt wird. Die Staging Site beinhaltet alles, was auf der Liveversion der Website ebenfalls vorhanden ist – inklusive Anbindung an Datenbanken und Netzwerk. Der Unterschied besteht darin, dass eine Änderung der Staging Site durch das Sandbox-Prinzip nicht dazu führt, dass die Webanwendung eventuell nicht mehr funktionsfähig ist. Diese Entkoppelung der Umgebungen dient dem Zweck, jegliche Änderungen am Code oder einzelne Features zunächst zu testen, zu evaluieren und erst bei positiven Ergebnissen auf den Liveserver zu übertragen.

Allgemeine Informationen zum Thema

Staging Sites werden entweder im Rahmen von Staging Environments oder Websitetests eingesetzt.

  • Bei Projekten, die auf Enterprise-Niveau entwickelt werden, bilden sie nur einen Teil der Serverumgebung und werden durch Entwicklungs-, Test- und Produktivsysteme ergänzt. Vor diesem Hintergrund ist eine Staging Site in eine komplexe Testumgebung eingebunden, die häufig eine eigene Infrastruktur besitzt.
  • Staging Sites werden ebenfalls als Testseiten von Websites verwendet, wobei sie in diesem Fall das Kernelement zum Testen bilden und unabhängig von der Website sind, die live auf einem Server gehostet wird. Dies wird oft mit Subdomains realisiert.

Gerade bei E-Commerce-Projekten muss der Liveserver für die Nutzer erreichbar und voll funktionsfähig sein, da sonst Besucher und Umsätze ausbleiben.[1] Die Staging Site stellt sicher, dass eventuelle Änderungen an der Website auf ihre Funktion hin getestet werden können, bevor die Änderungen dem Nutzer präsentiert werden. Im Umkehrschluss kann eine Staging Site dabei behilflich sein, Probleme und Fehler des Liveservers zu beheben, ohne dass das System noch weiter in seinen Funktionen beeinträchtigt wird oder womöglich sogar ganz abstürzt. Häufig werden hierbei bestimmte Plugins und Addons deaktiviert, um herauszufinden, wo der Konflikt liegt. Somit dient eine Staging Site auch der gezielten, systematischen Fehlersuche und dem Troubleshooting.

Staging Site aufsetzen

Eine Staging ist keine unabhängige Softwarelösung oder eine spezielle Website, die mit dem Gesamtsystem (Hosting, Server, Backend, Frontend und CMS) nicht in Verbindung steht. Vielmehr ist sie eine Replikation der bestehenden Website – inklusive der Infrastruktur und des Systems, das dahinter steht. Aus diesem Grund ist die Erzeugung einer Staging Site wesentlich davon abhängig, was für ein Content Management System oder welche Shopsoftware zum Einsatz kommt.

Es gibt unterschiedliche Möglichkeiten, Staging Sites zu erzeugen:

  • Mithilfe des Providers oder des Hosting-Anbieters
  • Mit einem CMS oder einer Shopsoftware
  • Mit einer extra dafür vorgesehen Staging Anwendung

Einige Provider bieten Staging Sites als Service für ihre Kunden an. Website-Replikation können innerhalb ihres Systems installiert werden und die Kunden erhalten einen Zugang. Das CMS WordPress bietet eine eigene Engine (WPEngine) an, mit der mit wenigen Klicks eine Staging Site erzeugt werden kann.[2] Auch Drupal, Joomla und andere Content Management Systeme bieten Staging Sites, Staging Areas oder Staging Environments an. Die Begrifflichkeiten sind bei den Systemen oft unterschiedlich, haben aber den gleichen Zweck.

Bei der Shopsoftware Magento beispielsweise gestaltet sich das Aufsetzen einer Staging Area aufgrund der Komplexität des Systems schwieriger. Hier müssen Subdomains eingerichtet, Datenbanken aufgesetzt und kopiert sowie Konfigurationen und Updates übertragen werden, bevor die Kopie des Onlineshops getestet werden kann.[3]

Eine weitere Option, Staging Sites einzusetzen, sind spezielle, unabhängige Plugins und Anwendungen wie Flywheel oder Siteground. Mit wenigen Klicks können Änderungen vorgenommen und bei voller Funktionsfähigkeit übertragen werden. Doch auch hier ist auf das jeweilige CMS zu achten, da es keine Staging Software gibt, die mit allen Programmiersprachen, Datenbanken, Servern und Plattformen umgehen kann. Dies ist ebenfalls relevant, wenn eine Versionskontrollsoftware verwendet wird, da dann die Anwendung eine entsprechende Implementierung bieten muss – zum Beispiel für Git.[4]

Bedeutung für die Programmierung

Staging ist ein unverzichtbarer Schritt beim Testen von neuen Websites und der Fehlersuche bei bestehenden Websites. Zwar gibt es bezüglich des Umfangs wesentliche Unterschiede zwischen einer Staging Site und einer Staging Environment. Aber der Kerngedanke bleibt gleich: Änderungen an einem System sollen sich nicht auf das andere System automatisch übertragen. Jegliche Änderungen am Quellcode soll zunächst durch das Sandbox-Prinzip abgeschirmt sein.[5] Wenn zum Beispiel eine Fehlersuche auf einem Liveserver durchgeführt werden würde, könnten dadurch Konflikte bei der Interaktion zwischen Nutzern und Website auftreten. Andersherum: Ein neues Plugin soll den Liveserver nicht tangieren und erst auf der Staging Site getestet werden. Prinzipiell arbeiten Entwickler seit Jahrzehnten mit der Entkoppelung von Livesystem und Testumgebung. Lediglich die Vielzahl an Staging-Möglichkeiten (Staging Sites, Content Staging, Staging Environments), die Nutzung grafischer Benutzeroberflächen und die Implementierung von Staging Sites in unterschiedliche Entwicklungsparadigmen haben sich verändert.

Einzelnachweise

  1. The importance of having a staging site for your e-commerce business easydigitaldownloads.com. Abgerufen am 19.10.2015
  2. How to create and use the staging area wpengine.com. Abgerufen am 19.10.2015
  3. Setting Up A Magento Staging Area crucialwebhost.com. Abgerufen am 19.10.2015
  4. Shh… I’m dating several WordPress hosts carriedils.com. Abgerufen am 19.10.2015
  5. Web Development: What is Staging? commonplaces.com. Abgerufen am 19.10.2015

Weblinks