실습: 릴리스 승격 파이프라인
릴리스 승격(Release promotion)은 제품 릴리스를 다른 릴리스 채널(Release channel)에 추가하는 작업입니다. 환경 편집자는 환경이나 개별 배포 개체가 추적할 채널을 정하여 새 버전을 받는 시점을 조절합니다.
이 실습은 RELEASE에서 사용자 지정 STABLE로 이동하는 단계를 만듭니다. 첫 환경에서 새 릴리스를 관찰한 뒤 둘째 환경에 전달하는 구성입니다. 두 채널은 포함 관계가 아니라 서로 다른 릴리스 집합이며, 승격된 릴리스는 여러 채널에 함께 속할 수 있습니다.
STABLE 채널 생성
- Settings 또는 Settings & Configuration에서 Release channels를 엽니다.
- Create release channel을 선택합니다.
- Details에
STABLE과 예시 설명Releases ready for production을 입력하고 Next를 선택합니다. - Requirements는 이 실습에서는 비워 둡니다. 이후 보안 검사 통과, 이미지 준비 상태 등 레이블 요구사항을 추가할 수 있습니다.
- Permissions에서 사용할 팀과 관리할 팀을 확인한 뒤 Create channel을 선택합니다.
RELEASE, RELEASE_CANDIDATE, DEV는 기본 채널이므로 파이프라인의 도착 채널로 지정하지 않습니다. STABLE처럼 사용자 지정 채널을 사용합니다.
승격 단계 설정
제품의 Promotion pipeline에서 Edit → Add stage를 선택하고 출발 채널은 RELEASE, 도착 채널은 STABLE로 지정합니다.
Canary promotion을 선택하여 시험 개체의 상태와 관찰 기간으로 승격을 판단합니다. 이 실습에서는 Entity filters에 특정 환경을 지정하지 않고, 다음 조건을 설정합니다.
| 설정 | 실습 값 |
|---|---|
| Promote when healthy | 개체 수 1, 관찰 기간 1시간 |
| Recall when unhealthy | 개체 수 1, 관찰 기간 1시간(이 실습의 예시 설정) |
| 제품 Upgrades의 Healthy threshold | 정상 시간 비율 0.95 |
| 제품 Upgrades의 Unhealthy threshold | 비정상 시간 비율 0.05 |
개체 수는 조건을 충족해야 하는 시험 대상 수이며, 정상 및 비정상 시간 비율과는 별도입니다. Confirm으로 저장합니다. 상세 조건과 허용 기간은 승격 파이프라인 설정에 설명되어 있습니다.
상태 기반 실패와 자동 회수를 사용하려면 서비스가 Health를 보고해야 합니다. Health를 보고하지 않는 개체는 생존 상태와 시간으로 성공 또는 평가 중 상태를 판단하지만, Health를 근거로 실패하거나 자동 회수되지는 않습니다.
환경별 채널 구독
환경이 하나뿐이면 그 환경을 RELEASE로 유지하고 평가 과정을 확인합니다. 별도 시험 환경이 없으면 다단계 승격의 운영상 효과가 제한됩니다.
환경의 기본 채널을 바꾸려면 환경 페이지의 Actions → Set default release channel...에서 선택합니다. 개체가 별도 채널을 지정하지 않았으면 환경 기본값을 따릅니다. 개체별 재정의가 있으면 그 값을 사용합니다.
두 환경을 사용하는 실습에서는 다음처럼 구성합니다.
- 환경 1의 Entities에서 제품의 CHANNEL이
RELEASE인지 확인합니다. - 환경 2에서 같은 제품의 개체 상세를 엽니다.
Actions → Set default release channel...에서STABLE을 선택하고 Change channel로 변경합니다.- 환경 2의 Entities에서 해당 개체의 CHANNEL을 다시 확인합니다.
환경 전체 기본값과 개체별 재정의를 구분하여 원하는 대상만 바꿉니다. 해당 UI의 메뉴 이름이 기본 채널을 언급하더라도 현재 열어 둔 리소스가 환경인지 개체인지 확인해야 합니다.
새 릴리스로 관찰
접근 가능한 차트의 다음 버전을 게시합니다. 실습 버전 예시는 13.1.5에서 13.1.6이며 제품 이름과 차트 이름은 소문자를 사용합니다. 실제 차트 버전과 이미지가 저장소에 있어야 합니다. 개체의 지원 버전 범위도 새 버전을 허용해야 합니다.
조건을 충족하면 RELEASE를 구독하는 환경 1이 새 릴리스를 설치합니다. 관찰 기준을 충족하고 제품 유지보수 시간대 안에 들어오면 릴리스를 STABLE에 추가합니다. 이후 환경 2에서도 별도의 배포 제약을 만족해야 업그레이드가 실행됩니다.
단계의 1 total entity는 평가 대상 개체 한 개를 의미합니다. 환경 수와 항상 같지는 않습니다. 정상 및 비정상 시간 집계에서는 주말을 제외하므로 설정한 한 시간이 단순한 벽시계 한 시간과 같지 않을 수 있습니다. 릴리스 상세에서 실제 평가 결과와 차단 조건을 확인합니다.