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. 공통 방법
-
앱을 Production으로 배포
-
태그 또는 브랜치 링크를 클릭하여 배포할 git 태그 또는 브랜치를 선택한다.
2. 종류별 무정지 재배포 방법
아래는 배포 버전을 선택 후 보여지는 화면이다.
탭 별 배포 방법 설명
-
기본 탭은 Recreate 배포를 한다.
-
롤 아웃 탭은 ramped 배포 방법으로 한 개씩 순차적으로 배포를 한다.
-
타이머 탭은 canary 디플로이 방법으로 시간이 갈수록 이전버전과 신규버전의 노출 빈도를 퍼센테이지로 바뀌는 모습을 확인 할 수있다.
-
타이머 탭의 상태 선택 버튼을 수동으로 놓는다면, 시간에 따라 증가가 아닌, 관리자가 직접 이전 배포와 신규배포의 퍼센테이지를 변경하여 배포를 관리 할 수있다.