Eine Methode für die kontinuierliche Bereitstellung besteht darin, die Bereitstellung von der Freigabe zu entkoppeln, dh Aktualisierungen bereitzustellen, ohne die Änderungen sofort zu aktivieren.
Ich weiß, dass Feature-Toggles dafür verwendet werden können, aber ich frage mich, ob es andere Techniken für "Nicht-Features" gibt.
Würden Sie zum Beispiel ein Feature-Toggle für einen Bugfix erstellen? Wahrscheinlich nicht und man könnte argumentieren, dass Bugfixes so schnell wie möglich bereitgestellt werden sollten, weil es nur besser werden kann. Und nachdem ein Bugfix veröffentlicht wurde, möchte ich ihn auf keinen Fall mehr ausschalten. Aber ist das der Fall? Es könnte eine riskante Änderung sein, die Sie auf kontrollierte Weise veröffentlichen möchten. Und wenn es sind unerwartete Nebenwirkungen, ist es gut, um es zurück zu rollen. Also, Merker für jede Änderung?
Und was ist mit visuellen Veränderungen? Können Sie beispielsweise so etwas wie ein Feature-Flag in CSS implementieren? Macht es überhaupt Sinn?
quelle
Antworten:
Für Software in der Web - App - Kategorie, je nach Sie infra / Hosting - Provider eine solche Entkopplung könnte möglich sein , eingehenden Datenverkehr zu wechseln über (oder teilen es zwischen) verschiedenen eingesetzten Versionen des sw, praktisch jede der Änderungen abdeckt Sie erwähnen: Fehlerbehebungen, Visuals , etc.
Für eine solche Unterstützung sind normalerweise keine Funktionsumschaltungen erforderlich. Und es könnte anwendbar sein, unabhängig davon, ob die App monolithisch oder in Mikrodienste unterteilt ist.
Zum Beispiel unterstützt das App Engine Paas-Angebot von Google die Aufteilung und Migration des Datenverkehrs.
Vom Aufteilen des Verkehrs :
Vom Migrieren des Datenverkehrs :
quelle
Während Sie bei Monolithen möglicherweise auf Switches beschränkt sind, können Sie bei Microservice-Architekturen jeden Bereitstellungspool von Knoten, die einen Service bereitstellen (dh Pods), aufteilen. Anschließend aktivieren Sie die Bereitstellung des neu geänderten Produkts in einer Teilmenge des Pools und überwachen ihn sorgfältig. Sie können sogar auswählen, welche Menge des Pools die Änderung bereitstellen soll, um beispielsweise die Änderung für 15% des Datenverkehrs zu aktivieren. Möglicherweise finden Sie die Funktion "Rollendes Update" in der Literatur.
quelle