Come fare Kubernetes Blue Green Deployment

Come fare Kubernetes Blue Green Deployment
In questo articolo, parleremo delle distribuzioni blu-verde di Kubernetes e perché usarli è la scelta migliore. Kubernetes è senza dubbio la piattaforma ideale per le distribuzioni blu-verde. Ad esempio, potremmo utilizzare la piattaforma per distribuire l'applicazione, cambiare il traffico dell'utente e quindi eliminare l'ambiente blu dopo aver creato dinamicamente quello verde. Possiamo usare Kubernetes per gestire l'intero processo blu-verde con un solo strumento. Kubernetes ha notevolmente aumentato la standardizzazione, ma il suo ambiente dinamico richiede un adattamento in corso. Quindi, iniziamo discutendo di come Kubernetes viene utilizzato per costruire distribuzioni.

Strategia di distribuzione blu verde in kubernetes

È anche noto come metodo di distribuzione "zero tempi di inattività" perché, in questo tipo di processo, K8s produce un nuovo pod in un nuovo ambiente insieme a una distribuzione esistente anziché eliminare o sostituire un pod esistente.

Questo approccio di distribuzione consente il funzionamento simultaneo di due ambienti di produzione identici. Uno è l'ambiente di produzione che è attualmente in uso. Ottiene ogni traffico utente indicato come blu. Il suo clone nell'altro ambiente è libero (verde). La configurazione dell'app viene utilizzata da entrambi.

La nuova versione dell'applicazione è impostata in un'impostazione verde e messa al test in termini di prestazioni e funzionalità. Il traffico dell'applicazione viene deviato da blu a verde dopo che i risultati del test hanno esito positivo. La nuova produzione è quindi verde.

Qual è il processo di distribuzione blu verde in kubernetes?

In Kubernetes, il processo di distribuzione blu verde è il seguente:

  1. Il colore indica la versione corrente dell'applicazione (E.g blu)
  2. I nuovi pod vengono utilizzati per la distribuzione ed è etichettato nel nuovo colore (i.e., verde)
  3. Sebbene entrambe le versioni siano contemporaneamente disponibili, il servizio Kubernetes sta ancora puntando alla versione più vecchia/blu, quindi non tutti gli utenti di sistema sono stati ancora a conoscenza della modifica.
  4. Nella nuova versione, molti test possono essere condotti senza influire sui clienti attuali.
  5. Il servizio Kubernetes è cambiato e ora indica la nuova versione dopo un periodo definito dall'utente. Ora, la nuova capacità è disponibile per tutti gli utenti attivi senza interruzioni.

Esaminiamo in modo più dettagliato l'intero processo di distribuzione blu-verde. Immagina che stiamo attualmente utilizzando la versione 1 di un programma, che viene visualizzato in blu. Usiamo distribuzioni e pod per eseguire app in kubernetes. Nella figura seguente, puoi vedere la distribuzione blu in cui viene utilizzata la "versione 1". 'Pod 1', 'pod 2' e 'pod 3' possono anche essere visti all'interno della distribuzione.

La versione seguente, designata "versione 2", viene quindi preparata per l'uso. Pertanto, stiamo sviluppando un nuovissimo ambiente di produzione chiamato Green (vedi figura sotto).

In Kubernetes, si scopre, dobbiamo semplicemente specificare una nuova distribuzione; La piattaforma fa il resto. A causa della continua operazione normale dell'ambiente blu, gli utenti non sono ancora a conoscenza dell'alterazione. Non noteranno alcun cambiamento fino a quando non trasformiamo il blu a traffico verde.

Solo gli sviluppatori che amano assumere rischi sono noti per testare in produzione. Ma in questo posto, chiunque può farlo senza assumere alcun pericolo. Nello stesso cluster di Kubernetes di Blue, possiamo testare il verde a nostro piacimento.

La versione 1 è in modalità standby, come mostrato di seguito. Considerando che la versione 2 è attiva sul verde. Guarda la figura seguente per capire meglio questo concetto. Qui, puoi vedere che la distribuzione verde è messa al lavoro ora. Tutte le risorse utilizzate dalla distribuzione blu sono ora utilizzate dalla distribuzione verde. Puoi vedere che non sta accadendo nulla in blu schieramento.

Una volta che gli utenti sono stati passati dal blu al verde e siamo soddisfatti del risultato, possiamo eliminare il blu per rilasciare le risorse. Nella figura seguente, è possibile vedere solo la distribuzione verde che funziona correttamente.

Le distribuzioni blu-verde sono difficili, come ci si potrebbe aspettare. Dobbiamo gestire la rete mentre si destreggiano due distribuzioni contemporaneamente. Fortunatamente, Kubernetes semplifica notevolmente il processo. Tuttavia, dovremmo fare ogni sforzo per automatizzare il ciclo di rilascio.

Aggiornamento Distribuzione blu verde

Ci vuole più tempo per finire uno schieramento blu-verde che un normale aggiornamento. Questo perché abbiamo dovuto impostare i nuovi cluster e reinstallare tutte le nostre app; e sono necessari ulteriori finanziamenti per gli aggiornamenti. Di conseguenza, dove è fattibile, favoriamo un aggiornamento standard. Il metodo di distribuzione blu-verde può essere utilizzato per aggiornare alcune versioni o per aumentare la nostra fiducia negli aggiornamenti che includono la rottura delle modifiche. Dobbiamo analizzare attentamente tutti i mutande dei componenti che verranno aggiornati per determinare se esistono eventuali modifiche di rottura.

Vantaggi dell'utilizzo di distribuzioni blu-verdi

Quando si dispiega alla produzione, impiegare questa strategia ha molti vantaggi.

Meno tempi di inattività

Prima che un sistema vada online, le distribuzioni richiedono sempre un po 'di tempo. Blue Green ci dà la possibilità di distribuire in produzione e dirigere il traffico verso la nuova distribuzione una volta che è operativa e vivi. Di conseguenza, non ci saranno tempi di inattività per gli utenti.

Rollback immediato

Se l'ambiente blu in questo scenario è quello difettoso, possiamo reindirizzare tutto il nostro traffico verso l'ambiente verde, che avrà la versione stabile più recente. Possiamo anche consentire ai nostri sviluppatori di risolvere eventuali difetti nella versione più recente. Una volta che il bug è stato riparato, il traffico verrà nuovamente reindirizzato e un'altra distribuzione verrà effettuata a Blue.

Non influisce sugli utenti

Il tuo utente non sarà nemmeno consapevole che una distribuzione non è riuscita.

Conclusione

Le distribuzioni sono una delle fasi più cruciali del ciclo di vita dello sviluppo del software, quindi ogni attività coinvolta in esse deve essere attentamente considerata e testata per assicurarsi che sia la soluzione ideale per la nostra architettura e operazioni del sistema. Abbiamo particolarmente coperti distribuzioni di verde blu in questo post. Uno dei potenziali metodi per distribuire un'applicazione alla produzione è questo. Come qualsiasi altro approccio, ha svantaggi. Abbiamo discusso del suddetto argomento in dettaglio e della rappresentazione grafica per aiutarti a capirlo meglio.