aggiornamenti in sequenza.

Apigee Hybrid supporta due tipi di aggiornamenti. Il primo è un aggiornamento in loco in cui applichi una modifica alla configurazione e ibrido 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 pod con quelle nuove.

Apigee hybrid supporta anche un aggiornamento in stile canary o A/B. In un aggiornamento AB, viene eseguito il deployment della nuova revisione, ma inizialmente solo una piccola percentuale di traffico viene indirizzata a quest'ultima. Nel tempo, questa percentuale aumenta fino a quando tutto il traffico non viene indirizzato alla revisione.

Aggiornamenti in loco

Per attivare un aggiornamento sul posto, modifica semplicemente le impostazioni desiderate nel file di override e applicalo al cluster. Ad esempio, supponi di voler modificare la memoria attuale runtime 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 A/B

Per eseguire un aggiornamento A/B, utilizza il tag revision nel file di override. Ad esempio, supponi di voler modificare la memoria runtime attuale 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 modifichi revision in green, indichi che vuoi eseguire un aggiornamento in sequenza quando la modifica viene applicata. Il valore impostato per revision non è importante. Puoi utilizzare qualsiasi stringa, purché la modifichi rispetto al valore precedente.

...
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, una quantità maggiore di traffico viene indirizzata alla nuova revisione fino a raggiungere il 100%. A quel punto, la vecchia revisione viene eliminata.

Per attivare l'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 di override per attivare un lancio A/B.

La tabella seguente mostra la pianificazione di un lancio AB:

Fase Percentuale di traffico Tempo di attesa
1 5% 60 secondi
2 20% 10 secondi
3 100% 10 secondi

Nella versione attuale, le percentuali e i tempi di attesa non sono configurabili.