Actualizaciones progresivas

Apigee hybrid admite dos tipos de actualizaciones. El primero es una actualización local en la que aplicas un cambio de configuración y hybrid inicia una actualización progresiva de Kubernetes. En Kubernetes, las actualizaciones progresivas permiten que las actualizaciones de implementación se realicen sin tiempo de inactividad mediante la actualización incremental de las instancias de pods con instancias nuevas.

Apigee Hybrid también admite una actualización a la versión canary o de estilo AB. En una actualización AB, se implementa la revisión nueva, sin embargo, primero se dirige a un pequeño porcentaje de tráfico. Con el tiempo, este porcentaje aumenta hasta que todo el tráfico se envía a la revisión.

Actualizaciones locales

Para activar una actualización local, solo modifica la configuración deseada en el archivo de anulación y aplícala al clúster. Por ejemplo, supongamos que deseas cambiar la memoria actual runtime de 1Gi a 5G:

Esta es la configuración inicial:

...
runtime:
  replicaCountMin: 2
  replicaCountMax: 20
  resources:
    requests:
      cpu: 1000m
      memory: 1Gi
...

En la nueva configuración, la memoria se cambia a 5Gi:

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

Cuando aplica el cambio, los Pods actualizados se inician y reemplazan a los existentes. Debido a la característica de actualización progresiva de Kubernetes, los clientes no experimentan tiempo de inactividad.

Cómo realizar una actualización AB

Para realizar una actualización AB, usa la etiqueta revision en tu archivo de anulaciones. Por ejemplo, supongamos que deseas cambiar la memoria actual runtime de 1Gi a 5Gi:

En la configuración actual, revision está establecido en blue:

...
revision: blue
...
runtime:
  replicaCountMin: 2
  replicaCountMax: 20
  resources:
    requests:
      cpu: 1000m
      memory: 1Gi
...

En la configuración nueva, si cambias revision a green, indicas que deseas realizar una actualización progresiva cuando se aplica el cambio. El valor establecido para revision no importa. Puedes usar cualquier string que desees, siempre y cuando la cambies del valor anterior a otro.

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

Cuando aplique el cambio, aparecerá un pequeño porcentaje de tráfico con la revisión nueva. Con el tiempo, más tráfico se envía a la revisión nueva hasta que alcanza el 100%. En ese momento, se borra la revisión anterior.

Para activar un lanzamiento de AB, agrega la etiqueta revision si no está presente o cambia el valor de la etiqueta revision si ya está presente. No es necesario realizar otros cambios en el archivo de anulación para activar un lanzamiento de AB.

En la siguiente tabla, se muestra el programa de lanzamiento de AB:

Etapa Porcentaje de tráfico Tiempo de espera
1 5% 60 segundos
2 20% 10 segundos
3 100% 10 segundos

En la versión actual, los porcentajes y tiempos de espera no son configurables.