Welche Möglichkeiten gibt es, um die Bereitstellung von der Veröffentlichung zu entkoppeln?


13

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 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?


Pete Hodgson hat ausführlich über die verschiedenen Kategorien von Feature-Toggles geschrieben, einschließlich Bugfixes und anderer Situationen, in denen diese geeignet sind. martinfowler.com/articles/feature-toggles.html
Evgeny

Antworten:


7

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 :

Sie können die Datenverkehrsaufteilung verwenden, um eine prozentuale Verteilung des Datenverkehrs auf zwei oder mehr Versionen innerhalb eines Dienstes anzugeben. Durch Aufteilen des Datenverkehrs können Sie A / B-Tests zwischen Ihren Versionen durchführen und die Geschwindigkeit beim Rollout von Funktionen steuern.

Vom Migrieren des Datenverkehrs :

Durch die Datenverkehrsmigration wird das Anforderungsrouting zwischen den Versionen innerhalb eines Dienstes Ihrer Anwendung umgeschaltet und der Datenverkehr von einer oder mehreren Versionen auf eine einzelne neue Version verschoben.


5

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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.