Bereitstellungsübersicht
In diesen Themen wird der Prozess der Bereitstellung der Commerce-Anwendung auf einer Produktions-Site für Adobe Commerce Version 2.2 und höher erläutert. Adobe empfiehlt diese Bereitstellungsmethode für alle Benutzer mit einer großen Site, die keine Ausfallzeiten während der Bereitstellung erleben möchten.
Wenn Sie Commerce auf einem einzelnen Computer bereitstellen und einige Ausfallzeiten während der Bereitstellung tolerieren, finden Sie weitere Informationen unter Bereitstellung auf einem einzelnen Computer.
Pipeline-Bereitstellung
Mit Commerce Version 2.2 führte Adobe Pipeline-Bereitstellung als neue Methode zur Bereitstellung von in der Produktionsumgebung bei minimaler Ausfallzeit ein. Dieser Bereitstellungsprozess erfolgt auf verschiedenen Systemen und bietet die Möglichkeit, konsistente Konfigurationen für alle Pipeline-Bereitstellungssysteme beizubehalten. Es handelt sich dabei um ein einfaches, aber leistungsstarkes Modell, mit dem Sie die üblichen Konfigurationseinstellungen von systemspezifischen Einstellungen (wie Host und Port) oder sensiblen Einstellungen (wie Namen und Kennwörtern) trennen können.
Um die Pipeline-Bereitstellung zu verwenden, geht Adobe davon aus, dass Sie:
- Ein erfahrener Systemintegrator mit hervorragenden Kenntnissen in den Konfigurationsoptionen von Adobe Commerce.
- Verwaltung eines großen Commerce-Standorts (Tausende Lagereinheiten (SKUs)) und Minimierung der Ausfallzeiten des Produktionsstandorts.
- Kenntnisse in der PHP-Programmierung.
- Erfahrung mit Quellcodeverwaltungsmethoden.
- Ihr Code befindet sich in einem Repository der Quell-Code-Verwaltung. In diesem Handbuch gehen wir davon aus, dass Sie ein Git-basiertes Repository verwenden.
Geringere Ausfallzeiten
Wenn Sie statische Assets bereitstellen und Code auf einem Computer kompilieren, der von Ihrem Produktionssystem getrennt ist, minimieren Sie Ausfallzeiten. Die Ausfallzeit auf dem Produktionssystem ist auf den Zeitraum beschränkt, der für die Übertragung statischer Dateien und kompilierten Codes auf den Server erforderlich ist.
Bereitstellungssysteme
Wir verwenden die folgenden Begriffe, um die an der Bereitstellung beteiligten Systeme zu beschreiben.
-
Entwicklungssystem: Computer, auf dem Entwickler Code anpassen und Erweiterungen, Designs und Sprachpakete von Commerce Marketplace installieren. Darüber hinaus nehmen Sie alle Konfigurationsänderungen an Ihrem Entwicklungssystem vor. Es gibt viele Entwicklungssysteme.
-
Build system: Ein System, auf dem Sie statische Assets bereitstellen und Code für Ihr Produktionssystem kompilieren. Da Sie diese Assets auf einem System erstellen, das sich nicht in der Produktion befindet, wird die Ausfallzeit Ihres Produktionssystems minimiert.
Auf Ihrem Build-System muss Commerce nicht installiert sein. Es wird nur der Commerce-Code benötigt, es ist jedoch keine Datenbankverbindung erforderlich. Außerdem muss Ihr Build-System kein physisch separater Server sein.
-
Staging-: Optional. Optional können Sie ein Staging-System einrichten, das für das abschließende Testen des gesamten integrierten Codes verwendet wird, einschließlich Benutzerakzeptanztests (UAT). Richten Sie ein Staging-System auf die gleiche Weise ein wie ein Produktionssystem. Mit Ausnahme der Tatsache, dass die Staging-Umgebung nicht Ihr Live-Store ist und keine Bestellungen von Kunden verarbeitet, ist sie identisch mit der Produktion.
-
Produktionssystem - Ihr Live-Store. Hier sollten Sie minimale direkte Konfigurationsänderungen vornehmen und erst recht nichts, was nicht auf einer Staging-Instanz getestet wurde. Nehmen Sie nach Möglichkeit Konfigurationsänderungen mit Daten-Patches vor, die auf einer Staging-/Entwicklungsinstanz getestet wurden.
Andere Bereitstellungsmethoden
Optional können Sie auch andere Bereitstellungsmethoden verwenden, darunter:
- Sicheres Kopieren mit SCP oder rsync
- Capistrano
- Das Bereitstellungs-Tool
Konfiguration verwalten
Bei der Modellierung nach Faktor 3 im 12-Faktor-AppDesign speichert Commerce jetzt die Konfiguration für jedes System im System selbst. (Entwicklungskonfigurationseinstellungen werden im Entwicklungssystem und Produktionseinstellungen im Produktionssystem gespeichert.)
Wir bieten eine Möglichkeit, die Konfiguration Ihrer Systeme zu synchronisieren:
-
Freigegebene Konfiguration - Einstellungen, die weder systemspezifisch noch sensibel sind.
Freigegebene Einstellungen sind Einstellungen, die in Entwicklungs- und Produktionssystemen konsistent sein sollen. Legen Sie die freigegebene Konfiguration im Admin-System in Ihrer Entwicklungsumgebung (oder Adobe Commerce on Cloud Infrastructure Integration).
Die freigegebene Konfigurationsdatei
app/etc/config.php
sollte in die Quell-Code-Verwaltung aufgenommen werden, damit sie für Entwicklungs-, Build- und Produktionssysteme freigegeben werden kann. -
Systemspezifische Konfiguration - Einstellungen, die je nach System variieren, z. B. Hostnamen und Ports von Suchmaschinen.
-
Sensitive Konfiguration - Einstellungen, die sich nicht der Quell-Code-Verwaltung befinden sollten, da sie personenbezogene Daten (PII) oder Einstellungen wie API-Schlüssel oder Kennwörter bereitstellen.
Die systemspezifische Konfigurationsdatei
app/etc/env.php
sollte nicht in die Quell-Code-Verwaltung aufgenommen oder anderweitig zwischen Systemen freigegeben werden. Verwenden Sie stattdessen die Befehlemagento config:set
undmagento:sensitive:set
um Werte für diese Einstellungen in Ihrem Produktionssystem bereitzustellen.
Meistens können die Konfigurationsoptionen, die Sie in der freigegebenen, systemspezifischen oder sensiblen Konfiguration festlegen, nicht in der Admin bearbeitet werden. Dadurch werden Ihre Einstellungen auf allen Systemen konsistent gehalten. (Sie können optional den Befehl magento config:set
verwenden ohne die Option --lock
, um Einstellungen zu konfigurieren, die in Admin bearbeitet werden können.)
Jede Commerce-Konfigurationsoption hat einen eindeutigen Konfigurationspfad. Um einen Wert für eine Konfigurationsoption festzulegen, können Sie entweder einen CLI-Befehl oder eine Umgebungsvariable verwenden, um den Wert für diesen Konfigurationspfad auf einem bestimmten System festzulegen.