Quali sono i modi per disaccoppiare la distribuzione dal rilascio?


13

Un metodo di distribuzione continua consiste nel disaccoppiare la distribuzione dal rilascio, ovvero distribuire gli aggiornamenti senza attivare immediatamente le modifiche.

So che le possono essere utilizzate per questo, ma mi chiedo se ci siano altre tecniche per le "non funzioni".

Ad esempio, creeresti una funzione per attivare una correzione? Probabilmente no e si potrebbe sostenere che le correzioni di bug dovrebbero essere implementate il prima possibile, perché può solo migliorare. E dopo che è stato rilasciato un bugfix, sicuramente non voglio più disattivarlo. Ma è così? Potrebbe essere un cambiamento rischioso che si desidera rilasciare in modo controllato. E se ci sono effetti collaterali imprevisti, è bene poterlo ripristinare. Quindi, caratteristiche flag per ogni modifica?

E i cambiamenti visivi? Ad esempio, puoi implementare qualcosa come un flag di funzionalità nei CSS? Ha senso?


Pete Hodgson ha scritto ampiamente sulle varie categorie di funzioni di commutazione, incluse correzioni di bug e altre situazioni in cui sono adatte. martinfowler.com/articles/feature-toggles.html
Evgeny

Risposte:


7

Per i software nella categoria delle app Web, a seconda del provider di servizi di infra / hosting tale disaccoppiamento potrebbe essere possibile per scambiare il traffico in entrata (o dividerlo tra) diverse versioni distribuite del software, praticamente coprendo tutte le modifiche menzionate: correzioni di bug, effetti visivi , eccetera.

Tale supporto in genere non richiede l'attivazione / disattivazione delle funzionalità. E potrebbe essere applicabile indipendentemente dal fatto che l'app sia monolitica o suddivisa in microservizi.

Ad esempio, l' offerta Paas di Google App Engine offre supporto per la suddivisione del traffico e la migrazione.

Da Traffic Splitting :

È possibile utilizzare la suddivisione del traffico per specificare una distribuzione percentuale del traffico tra due o più versioni all'interno di un servizio. La suddivisione del traffico ti consente di condurre test A / B tra le tue versioni e ti fornisce il controllo del ritmo durante l'implementazione delle funzionalità.

Dal traffico di migrazione :

La migrazione del traffico cambia il routing delle richieste tra le versioni all'interno di un servizio dell'applicazione, spostando il traffico da una o più versioni a una singola nuova versione.


5

Mentre con i monoliti potresti essere limitato agli switch, con le architetture di microservizi, puoi dividere ogni pool di distribuzione di nodi fornendo un servizio (ad es. Pod). Quindi attivare la distribuzione del prodotto appena modificato in un sottoinsieme di pool e monitorarlo attentamente; puoi persino scegliere in quale quantità del pool distribuire la modifica, ad esempio, per attivare la modifica per il 15% del traffico. In letteratura potresti trovare la funzione chiamata "aggiornamento progressivo".

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.