Ich weiß, dass wir bei der Entwicklung einer Lösung mindestens drei verschiedene Umgebungen haben sollten:
- Entwicklung : Die Programmierer können Änderungen jederzeit ändern und verschieben, um ihren Code schnell zu testen und in andere Änderungen zu integrieren, ohne befürchten zu müssen, dass etwas kaputt geht. Dies ist mit den TEST-Datenbanken und -Diensten verbunden.
- UAT : Sollte von den Entwicklern mit Ehrfurcht behandelt werden, da es eine "so gut wie möglich" Kopie der Produktionsumgebung in Bezug auf Hardware enthalten sollte, mit dem Unterschied, dass diese Umgebung mit einer bearbeitbaren Kopie der Produktionsdaten mit UAT-Datenbanken verbunden ist - Es wird sowohl vom Q & A-Team als auch von den Benutzern verwendet, um Änderungen zu validieren, die in die Produktion gehen
- Produktion : Das echte Geschäft.
Ich habe mich mit dieser Frage zu SoftwareEngineering und dieser Frage zu ServerFault befasst , und sie scheinen sich hinsichtlich der Bedeutung der Staging-Umgebung zu unterscheiden. Auf der Wikipedia-Seite zum Thema heißt es außerdem:
Die Hauptverwendung einer Staging-Umgebung besteht darin, alle Installations- / Konfigurations- / Migrationsskripts und -verfahren zu testen, bevor sie auf die Produktionsumgebung angewendet werden. Dies stellt sicher, dass alle größeren und kleineren Upgrades der Produktionsumgebung in kürzester Zeit zuverlässig und fehlerfrei durchgeführt werden.
Für mich ist Staging gleich UAT, wo Sie die Anwendungs- und Bereitstellungsverfahren testen müssen, bevor Sie in die reale Welt wechseln. Also schieben wir das Paket mit den Änderungen an UAT genauso voran wie mit der Produktion, vollautomatisch und mit all den Zeremonien, die wir mit der Produktionsumgebung haben sollten.
Was ist der richtige Unterschied zwischen einer UAT-Umgebung und einer Staging-Umgebung?
- -
EDIT: Um ganz klar zu sein, ich denke an eine Webanwendung, sei es eine Internet-Website oder eine Intranet-Website. Keine "Formular" -App oder mobile App.