Greyscale Release ist eine effektive Strategie für die Softwareveröffentlichung. Durch schrittweise Übergabe neuer Versionen an einige Benutzer können Versionsaktualisierungen durchgeführt werden, während die Systemstabilität sicherstellt. Im Vergleich zu herkömmlichen Freisetzungen können Graustufen-Releases den Betrieb der neuen Version flexibel überwachen und schnell zurückrollen, wenn eine Ausnahme auftritt. Dieser Artikel konzentriert sich darauf, wie PHP für Verpackungen und Bereitstellungen verwendet und die Release- und Rollback -Vorgänge implementiert werden kann.
Die Verpackung ist der erste Schritt im Graustufen -Veröffentlichungsprozess. Komponist oder PHAR -Tools, die üblicherweise in Packungspaketanwendungen von PHP -Projekten und deren Abhängigkeiten für die einfache Verteilung und Bereitstellung verwendet werden.
Schreiben Sie zunächst die Datei composer.json in das Projekt Root -Verzeichnis, um die Anwendung und ihre Abhängigkeiten zu deklarieren, z. B.:
{
"name": "myapp",
"version": "1.0.0",
"require": {
"php": "^7.0",
"vendor/package": "^1.0"
}
}
Führen Sie als Nächstes den Befehl aus, um die Abhängigkeit zu installieren und das Lieferantenverzeichnis zu generieren:
composer install
Erstellen Sie dann den Eintragsdateieintrag.php, der für das Laden der Abhängigkeiten und zum Starten der Anwendung verantwortlich ist:
<?php
require __DIR__ . '/vendor/autoload.php';
use MyNamespaceMyClass;
$app = new MyClass();
$app->run();
Schließlich können Sie PHAR verwenden, um das Projekt in eine einzelne ausführbare Datei zu verpacken:
php -d phar.readonly=0 box.phar compile
Dieser Befehl generiert eine myapp.phar -Datei, mit der die Anwendung direkt ausgeführt und starten kann.
Der Kern der Graustufen -Freisetzung besteht darin, den Verkehr zwischen mehreren Servern zuzuordnen und eine reibungslose Wechsel zwischen neuen und alten Versionen zu erreichen. In PHP -Projekten wird diese Funktion häufig durch NGINX -Konfiguration oder Lastausgleich ausgeführt.
Beispiel nginx -Konfiguration:
http {
upstream backend {
server 10.0.0.10:8000; # Hauptserver
server 10.0.0.20:8000; # Hilfserver
}
server {
listen 80;
server_name myapp.com;
location / {
proxy_pass http://backend;
}
}
}
In dieser Konfiguration verteilt Nginx Anforderungen an die primären und sekundären Server gemäß der Lastausgleichsrichtlinie. Die neue Version der Anwendung wird auf dem Sekundärserver bereitgestellt, und das Verkehrsverhältnis kann schrittweise angepasst werden, um die Leistung der neuen Version zu überwachen, um einen reibungslosen Übergang zu gewährleisten.
Rollback bezieht sich auf die Wiederherstellung der App in die alte Version, um mit der neuen Versionsausnahme umzugehen. Zu den allgemeinen Praktiken gehören die Sturz- und Backup -Wiederherstellung der Versionskontrolle.
Beispiel für einen Rollback -Prozess bei der Verwendung von Git für das Versionsverwaltung:
# Wechseln Sie zur alten Versionszweig
git checkout old_version
# Abhängigkeiten neu installieren
composer install
# Verpackung und Bereitstellung
php -d phar.readonly=0 box.phar compile
Wenn eine Sicherungsstrategie angewendet wird, sollten die Anwendungsdateien und Datenbanken regelmäßig gesichert werden und schnell in einen stabilen Zustand zurückgeführt werden, wenn Probleme auftreten, um die Auswirkungen der Geschäftstätigkeit zu verringern.
Durch die rationalere Verwendung von PHP -Verpackungswerkzeugen und den Verkehrsmanagementmechanismus von NGINX in Kombination mit der Versionskontrolle und Sicherungstechnologie kann ein flexibler und sicherer Grautrupping und Rollback -System erstellt werden. Dies verbessert nicht nur die Kontrollierbarkeit von Freisetzungen, sondern garantiert auch Benutzererfahrung und Systemstabilität effektiv.