aggiornamenti in sequenza.

Apigee Hybrid supporta due tipi di aggiornamenti. Il primo è un aggiornamento in situ in cui applichi una modifica alla configurazione e l'ambiente ibrida avvia un aggiornamento in sequenza di Kubernetes. In Kubernetes, gli aggiornamenti in sequenza consentono di eseguire gli aggiornamenti del deployment senza tempi di inattività aggiornando in modo incrementale le istanze di pod con quelle nuove.

Apigee hybrid supporta anche un aggiornamento canary o di tipo 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-place

Per attivare un aggiornamento in situ, modifica le impostazioni desiderate nel file delle sostituzioni e applicalo 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 per revision non ha importanza; puoi utilizzare qualsiasi stringa, purché la modifichi dal valore precedente in un altro.

...
revision: green
...
runtime:
  replicaCountMin: 2
  replicaCountMax: 20
  resources:
    requests:
      cpu: 1000m
      memory: 5Gi
...

Quando applichi la modifica, una piccola percentuale di traffico viene indirizzata alla nuova revisione. Nel tempo, un volume maggiore di traffico viene indirizzato alla nuova revisione fino a raggiungere il 100%. A quel punto, la vecchia revisione viene eliminata.

Per attivare un'implementazione AB, aggiungi il tag revision se non è presente o modifica il valore del tag revision se è già presente. Non è necessario apportare altre modifiche al file delle sostituzioni per attivare l'implementazione di un test A/B.

La tabella seguente mostra 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.