Staging-Umgebung vs Produktionsumgebung

80

Ich arbeite für ein Unternehmen , in dem wir Enterprise - Anwendungen zu bauen, und wir pflegen drei Umgebungen: Entwicklung (oder Entwickler ), Inszenierung (oder Stufe ) und die Produktion (oder prod ).

Die Bedeutung von dev ist intuitiv: Es ist die Umgebung, die während der Entwicklung der Anwendung verwendet wird.

Was ist der Unterschied zwischen Staging- und Produktionsumgebungen ?

rdasxy
quelle

Antworten:

122

Für kleinere Unternehmen (es ist nicht klar, wie groß Ihre Unternehmen sind) sind drei Umgebungen (Entwickler, Bühne, Produktion) üblich. Größere Unternehmen haben häufig eine QS-Umgebung zwischen Entwickler und Phase.

Diese setzen sich normalerweise wie folgt zusammen:

dev : Arbeitscode kopieren. Von Entwicklern vorgenommene Änderungen werden hier bereitgestellt, damit die Integration und die Funktionen getestet werden können. Diese Umgebung wird schnell aktualisiert und enthält die neueste Version der Anwendung.

qa : (Nicht alle Unternehmen werden dies haben). Umfeld zur Qualitätssicherung; Dadurch wird eine seltener geänderte Version der Anwendung bereitgestellt, mit der Tester Prüfungen durchführen können. Auf diese Weise kann über eine gemeinsame Revision berichtet werden, sodass Entwickler wissen, ob bestimmte Probleme, die von Testern festgestellt wurden, bereits im Entwicklungscode behoben wurden.

Staging : Dies ist der Release-Kandidat, und diese Umgebung ist normalerweise ein Spiegel der Produktionsumgebung. Der Staging-Bereich enthält die "nächste" Version der Anwendung und wird für abschließende Stresstests und Client- / Manager-Genehmigungen vor der Inbetriebnahme verwendet.

Produktion : Dies ist die aktuell veröffentlichte Version der Anwendung, auf die der Client / Endbenutzer zugreifen kann. Diese Version ändert sich vorzugsweise nicht, außer bei geplanten Veröffentlichungen.

Mike
quelle
7
Dies ist in Bezug auf die Software richtig. Es gibt auch die Daten: dev und qa sind mit Testdatenbanken verbunden, sodass sich Entwickler und Tester keine Gedanken über Änderungen machen müssen, während Staging und Produktion Produktionsdatenbanken verwenden. Denken Sie an eine Bank.
Juan Lanus
4
Es gibt noch eine andere Dimension: Wer sind die Benutzer? dev: die Entwickler; qa (ich bevorzuge qc): die Tester; inszenierung und produktion: tatsächliche benutzer. In Geschäftsanwendungen mit mittleren Datenbanken dürfen die Entwickler Produktionsdatenbanken nicht sehen, geschweige denn berühren, sie sind mit anonymisierten Versionen ausgestattet.
Juan Lanus
3
@ JuanLanus: In der Regel wird in der Staging-Umgebung eine Kopie der Produktionsdaten verwendet. Normalerweise möchten Sie Produktionsdaten nicht durch Staging ändern.
Sleske
1
@ JuanLanus: Tut mir leid, ich meinte "Sie möchten nicht, dass Änderungen in der Staging-Umgebung in der Prod-Umgebung sichtbar werden" - daher verwendet Staging eine Kopie der Produktionsdaten, aber (normalerweise) eine bearbeitbare Kopie.
Sleske
2
Wir nennen qa 'test': dev (ich), test (team), inszenierung (client), prod (welt)
Rudie
13

Ich bin ein bisschen überrascht, dass eine Testumgebung nicht vorhanden ist, da sie als Speicherort für den Code dient, bevor er zur Staging-Version befördert wird.

Um die Frage zu beantworten:

Eine Bühnenumgebung sollte die Produktionsumgebung so genau wie möglich widerspiegeln.

Es wird zur Überprüfung von Bereitstellungsprozeduren verwendet - um sicherzustellen, dass Code ohne Probleme bereitgestellt werden kann, wenn er produktionsbereit ist.

Das heißt, Code wird bereitgestellt - dies wird umfassend getestet und zurückgeführt, um sicherzustellen, dass die Bereitstellung wie geplant verlief (und um etwaige Probleme zu beheben, falls dies nicht der Fall ist).

Oded
quelle
1
Genau - es besteht die Möglichkeit, Code aus der Entwicklungsumgebung in eine kontrollierte Umgebung zu überführen, um unter anderem Abhängigkeiten, die in der Dokumentation fehlen, und Verlegenheiten in Bezug auf die Live / Prod-Umgebung aufzuzeigen, die sich auf unsere Maschine ausgewirkt haben.
Danny Staple
Dies hat jedoch nichts mit der Frage zu tun ...
nbro
4

Die Bühnenumgebung ist eine Pre-Prod-Umgebung, die die Produktion widerspiegelt. Häufig sind einige Produktionsdaten vorhanden, sodass eine Testgruppe, die sich aus tatsächlichen Benutzern und QS-Testern zusammensetzt, bestätigen kann, dass die vorab veröffentlichten Codebasen / -daten in einer prod-ähnlichen Umgebung bereitgestellt werden und ordnungsgemäß funktionieren, in der Regel mithilfe von Skriptanwendungen und Regression Tests.

Wie @Oded bemerkt, ist es normalerweise üblich, eine QA-Umgebung zu haben, mit der QA-Tester den Code testen.

JW8
quelle
3

Meine Erfahrung mit der US-Regierung / dem US-Verteidigungsministerium ist folgende:

  1. DEVELOPMENT / TEST richtet sich an Entwickler und Anwendungsentwickler. Sie erstellen und testen Anwendungen außerhalb von Unternehmenssystemen.
  2. Wenn die Anwendungen abgeschlossen sind, werden sie in der IT-Umgebung auf den PACKAGING-Servern bereitgestellt.
  3. Ab diesem Zeitpunkt werden die Anwendungen von der IT unterstützt und in STAGING migriert (wodurch die IT Implementierungsrichtlinien, Konfigurationen usw. entwickeln / überprüfen kann). In diesem Stadium kann es zu einem gewissen Grad zu Benutzertests kommen, um sicherzustellen, dass die Anwendung in einem System, das die PRODUKTION repliziert, erwartungsgemäß funktioniert.
  4. Wenn alle Testpläne abgeschlossen und einsatzbereit sind, wird die Anwendung in die PRODUKTION verschoben und in den Erhaltungsmodus (dh Betriebs- und Wartungsmodus oder Betriebs- und Wartungsmodus) versetzt.
  5. Neue Updates der Entwickler werden ebenfalls in PACKAGING bereitgestellt und der Prozess wird fortgesetzt.
Cmac
quelle
2
Willkommen bei den Programmierern. Unsere Website konzentriert sich auf hochwertige Fragen und Antworten. Es ist nicht wie in typischen Foren. Weitere Informationen finden Sie in der Hilfe. Ich verstehe nicht, wie Ihre Antwort Punkte anspricht, die noch nicht durch andere Antworten auf diese Frage beantwortet wurden.
2

Als Webentwickler sind in der Praxis hauptsächlich drei Umgebungen zu berücksichtigen :

Produktion : Die Umgebung, die für das Hosten der endgültigen Release-Version eines Produkts für Endbenutzer konfiguriert ist. Es ist auf Sicherheit und Leistung optimiert. Es wird auf einem Live-Server gehostet. Es bedarf einer aufmerksamen und dringenden Unterstützung. Es ist datenkritisch. Daher werden seine Daten regelmäßig gesichert. Es beinhaltet auch Risikomanagement und Disaster Recovery. Die Produktionsumgebung ist so konfiguriert, dass Endbenutzern benutzerfreundliche Fehler angezeigt werden.

Staging : Die Umgebung, die so konfiguriert ist, dass sie den Release Candidate der Anwendung hostet, nachdem ein Code-Freeze deklariert wurde. Es zielt darauf ab, dass der Projektmanager / Eigentümer zusammen mit dem Entwicklungsteam den Umfang des Release-Kandidaten festlegt. Die Qualitätssicherung und auch das Entwicklungsteam müssen vor der Freigabe für die Produktion die endgültigen Korrekturen und die endgültige Ausstattung vornehmen. Am besten ahmt man die Produktionsumgebung nach, indem man die neuesten Daten aus einer Live-Datenbank verwendet, die aus der Produktionsumgebung kopiert wurde. Normalerweise ist die Staging-Umgebung nur für das interne Team und die Stakeholder zugänglich. Sie wird daher entweder auf einem öffentlichen Server gesichert oder in einer Intranet-Umgebung veröffentlicht, wenn alle Stakeholder auf ein lokales Netzwerk zugreifen können. Die Staging-Umgebung ist so konfiguriert, dass mittlere oder vollständige technische Fehler angezeigt werden.

Entwicklung : Die private Umgebung, die von einem einzelnen Entwickler auf seinem Computer konfiguriert wurde, um die eigene Arbeit während eines Entwicklungszyklus zu überprüfen. Dies wird normalerweise als Sprint in einer Scrum-Umgebung bezeichnet. Die Entwicklungsumgebung ist so konfiguriert, dass alle technischen Fehler angezeigt werden.

Shadi Namrouti
quelle