Apigee Hybrid supporta due tipi di aggiornamenti. Il primo è un aggiornamento in loco in cui applichi una modifica alla configurazione e il processo ibrido avvia un rolling di Kubernetes aggiorna. In Kubernetes, gli aggiornamenti in sequenza consentono di eseguire gli aggiornamenti del deployment senza di inattività aggiornando in modo incrementale le istanze dei pod con nuove istanze.
Apigee hybrid supporta anche un aggiornamento di tipo canary o AB. In un aggiornamento AB, la nuova revisione viene implementata, ma inizialmente viene indirizzata solo a una piccola percentuale di traffico. Nel tempo, questa percentuale aumenta fino a quando tutto il traffico non viene indirizzato alla revisione.
Aggiornamenti in loco
Per attivare un aggiornamento in loco, è sufficiente modificare le impostazioni desiderate nel file degli override e applicare
al cluster. Ad esempio, supponiamo che tu voglia modificare la memoria runtime
corrente da 1 Gi a 5 Gi:
Ecco la configurazione iniziale:
... runtime: replicaCountMin: 2 replicaCountMax: 20 resources: requests: cpu: 1000m memory: 1Gi ...
Nella nuova configurazione, la memoria viene modificata in 5 Gi:
... runtime: replicaCountMin: 2 replicaCountMax: 20 resources: requests: cpu: 1000m memory: 5Gi ...
Quando applichi la modifica, i pod aggiornati vengono avviati e sostituiscono quelli esistenti. Grazie alla funzionalità di aggiornamento in sequenza di Kubernetes, i client non subiscono tempi di inattività.
Come eseguire un aggiornamento AB
Per eseguire un aggiornamento AB, utilizza il tag revision
nel file delle sostituzioni.
Ad esempio, supponiamo che tu voglia modificare la memoria runtime
corrente da 1 Gi a 5 Gi:
Nella configurazione attuale, revision
è impostato su blue
:
... revision: blue ... runtime: replicaCountMin: 2 replicaCountMax: 20 resources: requests: cpu: 1000m memory: 1Gi ...
Nella nuova configurazione, se cambi revision
in green
, indichi
che vuoi eseguire un aggiornamento in sequenza quando
la modifica viene applicata. Il valore impostato revision
non ha importanza; puoi
puoi utilizzare la stringa che desideri, purché tu la modifichi dal valore precedente a qualcos'altro.
... revision: green ... runtime: replicaCountMin: 2 replicaCountMax: 20 resources: requests: cpu: 1000m memory: 5Gi ...
Quando applichi la modifica, una piccola percentuale di traffico alla nuova revisione. Nel tempo, più traffico viene indirizzato alla nuova revisione fino a raggiungere il 100%. A quel punto, la revisione precedente viene eliminato.
Per attivare un'implementazione AB, aggiungi il tag revision
se non è presente o modifica il valore del tag revision
se è già presente. Stai
Non è necessario apportare altre modifiche al file degli override per attivare un'implementazione AB.
Nella tabella seguente è riportata la pianificazione di un'implementazione AB:
Fase | Percentuale di traffico | Tempo di attesa |
---|---|---|
1 | 5% | 60 secondi |
2 | 20% | 10 secondi |
3 | 100% | 10 secondi |
Nella versione corrente, le percentuali e i tempi di attesa non sono configurabili.