Produktionsserver
Ein Produktionsserver ist ein Server, auf dem Webseiteninhalte und -anwendungen für eine Live-Umgebung gehostet sind. Es ist der wichtigste Server, auf dem Endbenutzer auf Websites und Webanwendungen zugreifen, und wird auch als Live-Server bezeichnet.
Ein Produktionsserver kann eine dedizierte Maschine, ein virtueller Server, ein Basis-PC oder mehrere geografisch verteilte Maschinen sein. Für kleine Unternehmen und einfache Anwendungen können alle für die Bereitstellung notwendigen Aktivitäten auf einem einzigen Computer ausgeführt werden. Bei der Softwarebereitstellung auf Unternehmensebene nutzen IT-Teams in der Regel mehrere Server für das Hosting während der verschiedenen Phasen, die zum Erstellen und Bearbeiten von Software und zum Bereitstellen von Anwendungen für Endbenutzer erforderlich sind.
Eine gängige Aufteilung der Bereitstellungsarchitektur ist Entwicklung, Test, Staging und Produktion (häufig bezeichnet als DEV, TEST, STAGING, PROD oder DTSP). Die Entwicklungsumgebung ist der Computer, auf dem Entwickler Softwareprogramme erstellen und Änderungen am Code vornehmen, normalerweise die Workstation eines Entwicklers. Wenn Entwickler in dieser Architektur mit der Anwendung fertig sind, wechselt sie auf den Test- oder QS-Server. Nach dem Testen wird die Software auf einem Staging-Server bereitgestellt, auf dem alle Elemente einer Webseite oder Anwendung so zusammengestellt werden, wie sie live angezeigt werden. Sobald alles korrekt angezeigt wird und auf dem Staging-Server ordnungsgemäß funktioniert, wird die Software auf dem Produktionsserver bereitgestellt, sodass Endbenutzer darauf zugreifen können.
Traditionell waren Entwicklungs- und Produktionsumgebungen aus mehreren Gründen getrennt. Beispielsweise kann ein Problem mit nicht getesteter Software wie eine Endlosschleife oder ein Speicherverlust die Funktion des Produktionsservers beeinträchtigen und Probleme für Endbenutzer verursachen.
Infolgedessen lange Zeit dringend davon abgeraten, auf demselben Server zu entwickeln und produzieren. In letzter Zeit gibt es jedoch Versuche, Phasen aus der Softwarebereitstellung zu entfernen und die Prozesse effizienter zu gestalten. Ein Ansatz, den in einigen DevOps-Umgebungen verwenden, ist das sogenannte Feature-Flagging, mit dem Entwickler bestimmte Funktionen auswählen können, die sie bestimmten Benutzern testweise zur Verfügung stellen. Dadurch können Entwickler Anwendungen auf dem Produktionsserver testen und anpassen, bis nachgewiesen wurde, dass sie für alle Benutzer betriebsbereit sind.