App 의 무정지 재배포 - TheOpenCloudEngine/uEngine-cloud GitHub Wiki

무정지 재배포

무정지 재배포의 종류

Recreate

  • 신규버전을 아예 별도 인스턴스로 완전히 Roll out 한후 기존버전과 대치함

Ramped (also known as rolling-update or incremental)

  • 신규버전 인스턴스 1개와 구버전 인스턴스 1개씩 교체해가면서 롤아웃 함. 총 인스턴스개수가 유지되기 때문에 추가 리소스 없이 배포가능하지만 재배포시에 사용량이 폭주하면 시스템 안정성에 문제가 생길 수 있다

Blue/Green

  • 신규버전을 신규 인스턴스로 완전히 롤아웃한후 라우터를 통하여 해당 인스턴스로 포워드한다. 기존버전은 롤백을 위하여 원하는 기간 동안 유지하고 롤백이 요청되면 곧바로 라우터로 요청 포워드를 기존버전으로 보낸다.

Canary

  • Blue/Green과 같으나, 신규버전이 롤아웃되는 시간 동안 랜덤으로 혹은 지리적으로 순차적으로 신규버전을 노출하여 신규버전에서 발생할 수 있는 오류를 가능한 국지적으로 노출시킴과 동시에 가능한 조기에 발견하여 롤백이 가능하도록 하는 배포전략

OCE 무정지 재배포 방법

1. 공통 방법

  1. 앱을 Production으로 배포 image

  2. 태그 또는 브랜치 링크를 클릭하여 배포할 git 태그 또는 브랜치를 선택한다. image

2. 종류별 무정지 재배포 방법

아래는 배포 버전을 선택 후 보여지는 화면이다.

탭 별 배포 방법 설명

  • 기본 탭은 Recreate 배포를 한다.
  • 롤 아웃 탭은 ramped 배포 방법으로 한 개씩 순차적으로 배포를 한다.
  • 타이머 탭은 canary 디플로이 방법으로 시간이 갈수록 이전버전과 신규버전의 노출 빈도를 퍼센테이지로 바뀌는 모습을 확인 할 수있다.
  • 타이머 탭의 상태 선택 버튼을 수동으로 놓는다면, 시간에 따라 증가가 아닌, 관리자가 직접 이전 배포와 신규배포의 퍼센테이지를 변경하여 배포를 관리 할 수있다.

image