순차적 업데이트

Apigee Hybrid는 두 가지 종류의 업데이트를 지원합니다. 첫 번째는 구성 변경사항을 적용하고 Hybrid를 통해 Kubernetes 순차적 업데이트를 시작하는 인플레이스 업데이트입니다. Kubernetes에서 순차적 업데이트를 사용하면 포드 인스턴스를 새 인스턴스로 점진적으로 업데이트하여 다운타임 없이 배포 업데이트를 수행할 수 있습니다.

Apigee Hybrid는 카나리아 또는 AB 스타일 업데이트도 지원합니다. AB 업데이트에는 새 버전이 배포됩니다. 하지만 처음에는 적은 비율의 트래픽이 전달됩니다. 시간 경과에 따라 이 비율은 모든 트래픽이 버전에 도달할 때까지 증가합니다.

인플레이스 업데이트

인플레이스 업데이트를 트리거하려면 재정의 파일에서 원하는 설정을 수정하고 클러스터에 적용하면 됩니다. 예를 들어 현재 runtime 메모리를 1Gi에서 5Gi로 변경한다고 가정해보겠습니다.

초기 구성은 다음과 같습니다.

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

새 구성에서 메모리는 5Gi로 변경됩니다.

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

변경사항을 적용하면 업데이트된 포드가 시작되고 기존 포드를 대체합니다. Kubernetes 순차적 업데이트 기능으로 인해 클라이언트에 다운타임이 발생하지 않습니다.

AB 업데이트를 수행하는 방법

AB 업데이트를 수행하려면 재정의 파일에서 revision 태그를 사용합니다. 예를 들어 현재 runtime 메모리를 1Gi에서 5Gi로 변경한다고 가정해보겠습니다.

현재 구성에서 revisionblue로 설정됩니다.

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

새 구성에서 revisiongreen으로 변경하면 변경사항이 적용되었을 때 순차적 업데이트를 수행한다는 신호입니다. revision으로 설정한 값은 중요하지 않습니다. 이전 값에서 다른 값으로 변경하기만 하면 원하는 문자열을 사용할 수 있습니다.

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

변경사항을 적용할 경우 적은 비율의 트래픽만 새 버전으로 전달됩니다. 시간이 지남에 따라 더 많은 트래픽이 100%에 도달할 때까지 새 버전으로 이동합니다. 이 경우 이전 버전은 삭제됩니다.

AB 출시를 트리거하려면 revision 태그가 없는 경우 추가하거나, revision 태그 값이 이미 있는 경우 값을 변경합니다. AB 출시를 트리거하기 위해 재정의 파일을 별도로 변경할 필요는 없습니다.

다음 표에는 AB 출시 일정이 나와 있습니다.

단계 트래픽 비율 대기 시간
1 5% 60초
2 20% 10초
3 100% 10초

현재 버전에서는 백분율 및 대기 시간을 구성할 수 없습니다.