Atualizações graduais

A Apigee híbrida oferece suporte a dois tipos de atualizações. A primeira é uma atualização no local em que você aplica uma alteração de configuração e o híbrido inicia uma atualização gradual do Kubernetes. No Kubernetes, as atualizações graduais permitem que as atualizações de implantação ocorram sem tempo de inatividade atualizando gradualmente as instâncias de pod com novas instâncias.

A Apigee também oferece suporte a uma atualização no estilo canário ou AB. Em uma atualização AB, a nova revisão é implantada. No entanto, no mínimo, uma pequena porcentagem de tráfego é direcionada para ele. Com o tempo, essa porcentagem aumenta até que todo o tráfego vá para a revisão.

Atualizações no local

Para acionar uma atualização no local, basta modificar as configurações pretendidas no arquivo de modificações e aplicá-la ao cluster. Por exemplo, suponha que você queira alterar a memória runtime atual de 1Gi para 5Gi:

Veja a seguir a configuração inicial:

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

Na nova configuração, a memória é alterada para 5Gi:

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

Quando você aplica a alteração, os pods atualizados são iniciados e substituem os existentes. Por causa do recurso de atualização gradual do Kubernetes, os clientes não têm tempo de inatividade.

Como executar uma atualização AB

Para realizar uma atualização AB, use a tag revision no arquivo de modificações. Por exemplo, suponha que você queira alterar a memória runtime atual de 1Gi para 5Gi:

Na configuração atual, revision está definido como blue:

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

Na nova configuração, se você alterar revision para green, sinalizará que quer executar uma atualização gradual quando a alteração for aplicada. O valor definido para revision não importa. Você pode usar qualquer string, desde que a altere do valor anterior para outro item.

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

Quando você aplicar a alteração, uma pequena porcentagem do tráfego será considerada para a nova revisão. Com o tempo, mais tráfego vai para a nova revisão até chegar a 100%. Nesse momento, a revisão antiga é excluída.

Para acionar um lançamento AB, adicione a tag revision se ela não estiver presente ou altere o valor da tag revision se ela já estiver presente. Você não precisa fazer outras alterações no arquivo de modificações para acionar o lançamento AB.

A tabela a seguir mostra a programação de uma implementação do AB:

Etapa Porcentagem de tráfego Tempo de espera
1 5% 60 segundos
2 20% 10 segundos
3 100% 10 segundos

Na versão atual, as porcentagens e os tempos de espera não são configuráveis.