it-swarm.dev

Staging-Umgebung vs. Produktionsumgebung

Ich arbeite für ein Unternehmen, in dem wir Unternehmensanwendungen erstellen und drei Umgebungen verwalten: Entwicklung (oder dev), Staging (oder Stufe) und 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 Produktion Umgebungen?

86
rdasxy

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

Diese gliedern sich normalerweise wie folgt:

dev: Arbeitscode kopieren. Von Entwicklern vorgenommene Änderungen werden hier bereitgestellt, damit Integration und 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 für die Qualitätssicherung; Dies bietet eine weniger häufig geänderte Version der Anwendung, anhand derer Tester Überprüfungen durchführen können. Auf diese Weise können Sie über eine allgemeine Revision berichten, sodass Entwickler wissen, ob bestimmte von Testern festgestellte Probleme 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 vor dem Start für endgültige Stresstests und Kunden-/Manager-Genehmigungen verwendet.

Produktion: Dies ist die aktuell veröffentlichte Version der Anwendung, auf die der Client/Endbenutzer zugreifen kann. Diese Version ändert sich vorzugsweise nur während geplanter Releases.

130
Mike

Ich bin ein bisschen überrascht, dass auch keine Testumgebung als Speicherort für Code vorhanden ist, bevor er zum Staging 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 Bereitstellungsverfahren verwendet, um sicherzustellen, dass Code, wenn er produktionsbereit ist, ohne Probleme bereitgestellt werden kann.

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

13
Oded

Die Bühnenumgebung ist eine vorgefertigte Umgebung, die die Produktion widerspiegelt. Oft sind einige Produktionsdaten vorhanden, sodass eine Testgruppe, die sich aus tatsächlichen Benutzern und QS-Testern zusammensetzt, bestätigen kann, dass die vorab freigegebene Codebasis/Daten in einer prod-ähnlichen Umgebung bereitgestellt werden und ordnungsgemäß funktionieren, normalerweise durch skriptbasierte Anwendungsfälle und Regression Tests.

Wie @Oded feststellt, ist es normalerweise üblich, eine QS-Umgebung zu haben, die QA-Tester zum Testen des Codes verwenden.

4
JW8

Meine Erfahrung mit der IT der US-Regierung/des US-Verteidigungsministeriums ist folgende:

  1. ENTWICKLUNG/TEST ist für 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 können Benutzertests bis zu einem gewissen Grad durchgeführt werden, um zu überprüfen, ob die Anwendung in einem System, das PRODUCTION repliziert, wie erwartet funktioniert.
  4. Wenn alle Testpläne abgeschlossen sind und einsatzbereit sind, wird die Anwendung in die PRODUKTION verschoben und in den Nachhaltigkeitsmodus (d. H. Betrieb und Wartung oder Betriebs- und Wartungsbetrieb) versetzt.
  5. Neue Updates der Entwickler werden ebenfalls in PACKAGING bereitgestellt und der Prozess wird fortgesetzt.
3
Cmac

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

Produktion: Die Umgebung, in der die endgültige Release-Version eines Produkts für Endbenutzer gehostet wird. Es ist auf Sicherheit und Leistung optimiert. Es wird auf einem Live-Server gehostet. Es erfordert alarmierte und dringende Unterstützung. Es ist datenkritisch. Daher werden die Daten regelmäßig gesichert. Es umfasst auch Risikomanagement und Disaster Recovery. Die Produktionsumgebung ist so konfiguriert, dass Endbenutzern freundliche Fehler angezeigt werden.

Staging: Die Umgebung, die so konfiguriert ist, dass der Release-Kandidat der Anwendung nach dem Deklarieren eines Code-Freeze gehostet wird. Es richtet sich an den Projektmanager/Eigentümer zusammen mit dem Entwicklungsteam, um den Umfang des Release-Kandidaten zu vereinbaren. Die Qualitätssicherung und auch das Entwicklungsteam müssen die endgültigen Korrekturen und die endgültige Einrichtung vornehmen, bevor sie in die Produktion freigegeben werden. Die beste Vorgehensweise besteht darin, die Produktionsumgebung zu imitieren, indem die neuesten Daten verwendet werden, die von einer aus der Produktionsumgebung kopierten Live-Datenbank verfügbar sind. Normalerweise ist die Staging-Umgebung nur für das interne Team und die Stakeholder zugänglich. Daher wird sie entweder auf einem öffentlichen Server gesichert oder in einer Intranetumgebung 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 seine 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 vollständige technische Fehler angezeigt werden.

2
Shadi Namrouti