Cloud Deploy 출시에는 단계가 포함됩니다. 단계는 출시에서 수행할 정렬된 논리적인 작업 그룹입니다.
각 단계에는 작업이 포함되며, 이러한 작업은 각 단계에서 수행할 작업입니다(예: deploy
또는 verify
). 각 작업에는 0개 이상의 작업이 실행될 수 있습니다.
작업 실행은 작업의 인스턴스입니다. 작업이 실행되지 않았으면 작업이 실행되지 않은 것입니다.
이 문서에서는 단계, 작업, 작업 실행 및 이를 관리하는 방법을 설명합니다.
출시의 구조
출시는 출시 버전을 대상과 연결하는 Cloud Deploy 리소스입니다.
단계
출시는 하나 이상의 단계로 구성됩니다.
표준 배포 전략에는 stable
한 단계만 있습니다.
카나리아 배포 전략의 경우 구성된 백분율마다 별도의 단계가 있습니다. 예를 들어 25%, 50%, 100%를 차례로 배포하는 카나리아를 구성하는 경우 3단계로 진행됩니다.
canary-25
canary-50
stable
이러한 단계 이름은 표준: 카나리아 단계의 경우 canary-[PERCENTAGE]
이고 100% 단계의 경우 stable
입니다. 그러나 수동 또는 커스텀 카나리아를 구성하는 경우 단계 이름을 제어할 수 있습니다.
작업 및 작업 실행
각 출시 단계에는 하나 이상의 작업이 포함됩니다.
배포 확인이 사용 설정되지 않은 표준 배포 전략의 출시에는 1단계(stable
)가 있습니다.
카나리아 출시의 경우 카나리아의 각 단계(예:canary-25
,canary-50
,stable
)가 있고 각 단계에 대해deploy
작업이 있습니다. 확인이 사용 설정되면 각 단계에 대해 verify
작업도 있습니다.
작업 실행은 작업의 인스턴스입니다. 예를 들어 deploy
작업의 작업 실행이 실행되고, 성공하면 해당 작업에 대한 추가 작업 실행이 없습니다. 실패하면 다른 작업 실행으로 다시 시도할 수 있습니다.
처음인 경우 단계 건너뛰기
일부 배포 전략(예: 카나리아)은 이전 버전과 새 버전 간에 트래픽을 할당합니다. 처음으로 대상에 배포하는 경우 이전 버전이 없으므로 트래픽을 할당할 수 없습니다.
이러한 이유로 카나리아를 처음 배포하면 카나리아 단계를 건너뛰고 stable
단계를 실행합니다. 그러면 애플리케이션이 배포되고 이후 카나리아 배포에는 카나리아 단계가 포함됩니다.
애플리케이션이 이미 실행 중인 실제 상황에서는 일반적으로 카나리아 배포를 실행하므로 이 단계를 건너뛰는 것은 드물게 수행됩니다.
출시 내 상태
출시, 단계, 작업, 작업 실행에는 모두 상태가 포함됩니다. 이 섹션에서는 각 상태에 대해 설명합니다.
출시 상태
출시는 다음 상태 중 하나를 갖습니다.
APPROVAL_REJECTED
출시에 승인이 필요했지만 승인이 거부되었습니다.
CANCELLED
사용자가 취소한 출시의 종결 상태입니다.
CANCELLING
사용자가 출시를 취소했지만 취소 처리가 완료되지 않았습니다.
HALTED
동시 배포에서 하나 이상의 하위 출시가 실패하지만 하위 출시 중 하나라도 성공하는 경우, 현재 단계 이후에 단계가 더 있으면 컨트롤러 출시는 중단됩니다.
다음 중 하나를 수행하여 중단된 컨트롤러 출시를 재개할 수 있습니다.
컨트롤러 출시 취소
하위 출시에서 실패한 작업 재시도 또는 무시
IN_PROGRESS
작업 실행이 처리 중입니다.
FAILED
작업이 실패하고 사용자가 실패를 무시하도록 선택하지 않았습니다.
PENDING
출시에서 처리를 시작하지 않았습니다. 이 상태는
IN_PROGRESS
또는CANCELED
로 전환됩니다.PENDING_APPROVAL
출시에 승인이 필요하지만 아직 승인되지 않았습니다.
PENDING_RELEASE
출시가 출시 버전이 렌더링될 때까지 기다리는 중입니다.
SUCCEEDED
출시가 실패 없이 완료되었습니다.
단계 상태
단계는 다음과 같습니다.
PENDING
출시의 다른 단계가 완료되기를 기다리는 단계입니다.
IN_PROGRESS
단계가 시작되었습니다.
SUCCEEDED
단계가 완료되었습니다.
FAILED
단계의 작업이 실패했지만 사용자가 실패를 무시하지 않았습니다.
ABORTED
이전 단계가 실패했습니다.
SKIPPED
카나리아와 같은 배포 전략을 실행하는 경우 트래픽을 분할할 애플리케이션의 실행 버전이 아직 없는 경우 Cloud Deploy는
stable
단계로 건너뜁니다. 이 경우 상태가SKIPPED
로 설정됩니다.
작업 상태
작업 상태는 다음 중 하나입니다.
ABORTED
단계가 실패하면 후속 단계가 취소됩니다.
작업이 실패하고 그 실패가 무시되지 않으면 후속 작업이 중단됩니다. 예를 들어 단계에 배포 작업 및 확인 작업이 포함되어 있고 배포 작업이 실패하면 확인 작업이 취소됩니다.
DISABLED
단계의 일부 작업이 사용 중지될 수 있습니다. 예를 들어 단계에는 확인의 사용 설정 여부에 관계없이 항상 확인 작업이 포함됩니다. 확인이 사용 설정되지 않은 경우 확인 작업이
DISABLED
로 설정됩니다.FAILED
이 작업의 작업 실행이 실패했으며 사용자가 실패를 무시하도록 선택하지 않았습니다.
사용자가 이 작업에 대해 작업 실행을 종료하도록 선택했습니다.
IGNORED
이 작업의 작업 실행이 실패했으며 사용자가 실패를 무시하도록 선택했습니다.
IN_PROGRESS
이 작업에 대한 작업이 현재 실행 중입니다.
PENDING
다른 단계 또는 작업이 완료되지 않았기 때문에 이 작업에 대한 작업 실행이 시작되기를 기다리고 있습니다.
SKIPPED
카나리아와 같은 배포 전략을 실행하는 경우 트래픽을 분할할 애플리케이션의 실행 버전이 아직 없는 경우 Cloud Deploy는
stable
단계로 건너뜁니다. 이 경우 건너뛴 단계에 있는 작업의 상태가SKIPPED
로 설정됩니다.SUCCEEDED
작업 실행이 성공적으로 완료되었고, 단계의 다음 작업이 시작되었거나, 다음 단계가 시작되었거나, 시작될 준비가 되었거나(사용자 입력 대기 중) 출시가 완료되었습니다.
작업 실행 상태
FAILED
실행 중에 작업 실행이 실패했습니다.
IN_PROGRESS
작업 실행이 시작되었지만 완료되지 않았습니다.
TERMINATED
사용자가 작업 실행을 종료했습니다.
TERMINATING
사용자가 작업 실행을 종료했지만 아직 종료가 완료되지 않았습니다.
SUCCEEDED
작업 실행이 실패하거나 사용자에 의해 종료되지 않고 성공적으로 완료되면
SUCCEEDED
상태가 됩니다.
출시 관리
Google Cloud 콘솔 또는 Google Cloud SDK를 사용하여 Cloud Deploy 출시와 관련하여 다음 작업을 할 수 있습니다.
카나리아 배포 전략과 함께 동시 배포를 사용하는 경우 이 문서를 참조하세요.
출시 진행
'표준' 이외의 배포 전략을 사용하도록 구성된 대상의 경우 출시를 단계별로 진행해야 합니다.
예를 들어 50% 및 stable
(100%) 단계만 있는 간단한 카나리아 배포를 수행하도록 구성된 대상이 있는 경우 canary-50
단계에서 stable
(100%) 단계로 출시를 한 번 진행해야 합니다.
gcloud
gcloud deploy rollouts advance ROLLOUT_NAME \
--release=RELEASE_NAME \
--delivery-pipeline=PIPELINE_NAME \
--region=REGION
각 항목의 의미는 다음과 같습니다.
ROLLOUT_NAME
은 다음 단계로 진행하려는 현재 출시의 이름입니다.
RELEASE_NAME
은 이 출시가 속한 출시 버전의 이름입니다.
PIPELINE_NAME
은 이 출시 버전의 배포를 관리하는 데 사용하는 배포 파이프라인의 이름입니다.
REGION
은 출시 버전이 생성된 리전의 이름입니다(예: us-central1
). 필수 항목입니다.
gcloud deploy rollouts advance
명령어에 대한 자세한 내용은 Google Cloud SDK 참조를 확인하세요.
콘솔
배포 파이프라인 목록에 표시된 파이프라인을 클릭합니다.
배포 파이프라인 세부정보 페이지에는 배포 파이프라인의 진행 상태가 그래픽으로 표시됩니다.
출시 탭의 배포 파이프라인 세부정보에서 출시 이름을 클릭합니다.
해당 출시의 출시 세부정보 페이지가 표시됩니다.
이 예시에서는 출시에
canary-50
단계와stable
단계가 있습니다. 출시에 더 많은 단계나 다른 단계가 있을 수 있습니다.출시 진행을 클릭합니다.
출시가 다음 단계로 진행됩니다.
출시 취소
완료되지 않은 출시를 취소할 수 있습니다. 또한 실패한 출시를 취소하여 추가 작업(예: 무시 또는 재시도)을 방지할 수 있습니다. 출시는 다음 상태 중 하나에 있어야 합니다.
FAILED
HALTED
IN_PROGRESS
PENDING
PENDING_APPROVAL
PENDING_RELEASE
출시를 취소하면 대기 중인 모든 작업 실행이 완료될 때까지 롤아웃이 CANCELLING
상태가 됩니다. 기다리지 않으려는 미해결 작업 실행을 종료할 수 있습니다. 출시가 CANCELLED
상태가 되면 더 이상 진행하거나 수정할 수 없습니다.
출시를 취소하려면 다음 안내를 따르세요.
gcloud
gcloud deploy rollouts cancel ROLLOUT_NAME \
--release=RELEASE_NAME \
--delivery-pipeline=PIPELINE_NAME \
--region=REGION
각 항목의 의미는 다음과 같습니다.
ROLLOUT_NAME
은 다음 단계로 진행하려는 현재 출시의 이름입니다.
RELEASE_NAME
은 이 출시가 속한 출시 버전의 이름입니다.
PIPELINE_NAME
은 이 출시 버전의 배포를 관리하는 데 사용하는 배포 파이프라인의 이름입니다.
REGION
은 출시 버전이 생성된 리전의 이름입니다(예: us-central1
). 필수 항목입니다.
gcloud deploy rollouts cancel
명령어에 대한 자세한 내용은 Google Cloud SDK 참조를 확인하세요.
콘솔
배포 파이프라인 목록에 표시된 파이프라인을 클릭합니다.
배포 파이프라인 세부정보 페이지에는 배포 파이프라인의 진행 상태가 그래픽으로 표시됩니다.
출시 탭의 배포 파이프라인 세부정보에서 출시 이름을 클릭합니다.
해당 출시의 출시 세부정보 페이지가 표시됩니다.
이 예시에서는 출시에
canary-50
단계와stable
단계가 있습니다. 출시에 더 많은 단계나 다른 단계가 있을 수 있습니다.출시 취소를 클릭합니다.
출시가 취소됩니다.
작업 실행 종료
현재 진행 중인 작업 실행을 종료할 수 있습니다. 예를 들어 작업 실행이 너무 오래 걸리거나 예상대로 작동하지 않는 경우 이 작업을 실행할 수 있습니다. 작업을 종료하려면 작업이 IN_PROGRESS
여야 합니다.
gcloud
gcloud deploy job-runs terminate JOB_RUN_ID \
--release=RELEASE_NAME \
--delivery-pipeline=PIPELINE_NAME \
--rollout=ROLLOUT_NAME \
--region=REGION
각 항목의 의미는 다음과 같습니다.
JOB_RUN_ID
는 종료하려는 작업 실행의 (UUID)입니다. Cloud Deploy의 Google Cloud 콘솔의 출시 페이지에서 작업 실행 ID를 찾을 수 있습니다.
gcloud deploy rollouts
describe
명령어를 사용하여 작업 실행 ID를 가져올 수도 있습니다.
RELEASE_NAME
은 이 작업 실행이 속한 출시 버전의 이름입니다.
PIPELINE_NAME
은 이 출시 버전의 배포를 관리하는 데 사용하는 배포 파이프라인의 이름입니다.
ROLLOUT_NAME
은 이 작업 실행이 속한 출시의 이름입니다.
REGION
은 출시 버전이 생성된 리전의 이름입니다(예: us-central1
). 필수 항목입니다.
gcloud deploy job-runs terminate
명령어에 대한 자세한 내용은 Google Cloud SDK 참조를 확인하세요.
콘솔
배포 파이프라인 목록에 표시된 파이프라인을 클릭합니다.
배포 파이프라인 세부정보 페이지에는 배포 파이프라인의 진행 상태가 그래픽으로 표시됩니다.
출시 탭의 배포 파이프라인 세부정보에서 출시 이름을 클릭합니다.
해당 출시의 출시 세부정보 페이지가 표시됩니다.
이 예시에서는 출시에
canary-50
단계와stable
단계가 있습니다. 출시에 더 많은 단계나 다른 단계가 있을 수 있습니다.단계에서 작업 실행을 종료할 작업이 포함된 포함하는 단계를 클릭합니다.
작업 실행에서 종료하려는 특정 작업 실행을 선택한 다음 종료를 클릭합니다.
작업 실행이 종료되고 단계 표에 표시된 것처럼 작업 상태가
Failure
입니다.
작업 실행을 종료한 후에는 작업이 실패한 것으로 간주되어 다음 중 하나를 수행할 수 있습니다.
- 그대로 두고 실패한 출시는 무시합니다.
- 작업 재시도
- 작업을 무시하고 출시의 다음 작업 또는 단계로 계속 진행
작업 무시
실패한 작업을 무시하고 단계에서 다음 작업으로 즉시 이동할 수 있습니다. 사용자 또는 다른 사람이 해당 작업에 대해 작업 실행을 종료한 등의 이유로 작업이 실패했을 수 있습니다.
실패한 작업은 실패한 단계와 실패한 출시를 의미합니다. 하지만 실패를 무시하면 단계와 출시를 둘 다 진행할 수 있으며 결국 SUCCEEDED
상태가 될 수 있습니다.
gcloud
gcloud deploy rollouts ignore-job ROLLOUT_NAME \
--release=RELEASE_NAME \
--delivery-pipeline=PIPELINE_NAME \
--job-id=JOB_ID \
--phase-id=PHASE_ID \
--region=REGION
각 항목의 의미는 다음과 같습니다.
ROLLOUT_NAME
은 이 작업 실행이 속한 출시의 이름입니다.
RELEASE_NAME
은 이 작업이 포함된 현재 출시의 이름입니다.
PIPELINE_NAME
은 이 출시 버전의 배포를 관리하는 데 사용하는 배포 파이프라인의 이름입니다.
JOB_ID
은 무시할 작업의 이름입니다(예: DEPLOY
). Google Cloud 콘솔에서 출시의 단계 테이블에서 작업 이름을 찾을 수 있습니다.
PHASE_ID
는 무시하는 작업이 포함된 단계의 이름입니다.
REGION
은 출시 버전이 생성된 리전의 이름입니다(예: us-central1
).
gcloud deploy rollouts ignore-job
명령어에 대한 자세한 내용은 Google Cloud SDK 참조를 확인하세요.
콘솔
배포 파이프라인 목록에 표시된 파이프라인을 클릭합니다.
배포 파이프라인 세부정보 페이지에는 배포 파이프라인의 진행 상태가 그래픽으로 표시됩니다.
출시 탭의 배포 파이프라인 세부정보에서 출시 이름을 클릭합니다.
해당 출시의 출시 세부정보 페이지가 표시됩니다.
무시할 실패한 작업을 선택합니다.
실패 무시 버튼을 클릭합니다.
실패한 작업 실행은 무시되고 작업이 성공한 것처럼 출시가 계속 진행됩니다. 즉, 동일한 단계에 다른 작업이 있으면 실행됩니다. 그렇지 않으면 출시가 다음 단계로 진행할 준비가 된 것입니다.
실패한 작업 재시도
실패한 작업 실행을 재시도할 수 있습니다. 다음과 같은 이유로 작업이 실패할 수 있습니다.
작업 실행을 완료할 수 없습니다.
예를 들어 권한 오류가 발생했을 수 있습니다.
사용자가 해당 작업에서 작업 실행을 종료했습니다.
작업 실행을 종료하면 작업 실패가 발생하며, 이를 다시 시도할 수 있습니다.
확인 테스트가 실패했습니다.
확인 작업의 경우 확인 테스트가 실패했습니다. 확인 작업은 올바르게 완료되었지만 확인 테스트 중 하나가 실패하여 확인 작업에 다시 적용됩니다. 이 경우 애플리케이션에서 실패한 테스트를 디버깅하는 과정에서 작업을 다시 시도하세요.
실패한 작업을 다시 시도하려면 다음 단계를 따르세요.
gcloud
gcloud deploy rollouts retry-job JOB_NAME \
--release=RELEASE_NAME \
--delivery-pipeline=PIPELINE_NAME \
--rollout=ROLLOUT_NAME \
--phase=PHASE_ID \
--region=REGION
각 항목의 의미는 다음과 같습니다.
JOB_NAME
은 재시도할 작업의 이름입니다. 예를 들어 확인 실패 후 확인 작업을 재시도하는 경우 verify
됩니다.
RELEASE_NAME
은 이 작업 실행이 속한 출시 버전의 이름입니다.
PIPELINE_NAME
은 이 출시 버전의 배포를 관리하는 데 사용하는 배포 파이프라인의 이름입니다.
ROLLOUT_NAME
은 이 작업 실행이 속한 출시의 이름입니다.
PHASE_ID
은 이 작업이 속한 단계의 이름입니다. 예를 들면 canary-50
또는 stable
입니다.
REGION
은 출시 버전이 생성된 리전의 이름입니다(예: us-central1
). 필수 항목입니다.
gcloud deploy rollouts retry-job
명령어에 대한 자세한 내용은 Google Cloud SDK 참조를 확인하세요.
콘솔
배포 파이프라인 목록에 표시된 파이프라인을 클릭합니다.
배포 파이프라인 세부정보 페이지에는 배포 파이프라인의 진행 상태가 그래픽으로 표시됩니다.
출시 탭의 배포 파이프라인 세부정보에서 출시 이름을 클릭합니다.
해당 출시의 출시 세부정보 페이지가 표시됩니다.
단계 및 작업에서 재시도하려는 작업이 포함된 단계를 클릭합니다.
재시도할 작업을 선택합니다.
재시도를 클릭하고 확인합니다.
작업 실행이 다시 실행되고 단계 표에 표시된 대로 작업 상태가 '진행 중'입니다. 동일한 단계에 다른 작업이 있는 경우 해당 작업이 실행됩니다. 그렇지 않으면 출시가 다음 단계로 진행될 준비가 된 것입니다.
다음 단계
Cloud Deploy에서 배포 전략 작동 방법에 대해 자세히 알아보기
출시, 단계, 작업, 작업 실행이 나머지 Cloud Deploy에서 어떻게 작동하는지 자세히 알아보려면 Cloud Deploy 서비스 아키텍처 문서를 참조하세요.