이 문서는 배포 자동화의 개요입니다.
특정 배포 파이프라인에 대한 출시 버전 관련 및 출시 관련 태스크를 자동으로 수행하도록 Cloud Deploy를 구성할 수 있습니다. 이러한 태스크에는 출시 버전 승격 및 단계별 진행이 포함됩니다.
Cloud Deploy에서 출시 버전 자동화에 사용되는 리소스에 대해 자세히 알아보세요.
이러한 자동화의 작동 방식을 정의하는 규칙을 설정하는 방법에 대해 자세히 알아보세요.
자동화할 수 있는 작업
Cloud Deploy에서 다음 출시 버전 및 출시 활동을 자동화할 수 있습니다.
-
대상에 성공적으로 출시되면 출시 버전을 자동으로 승격하도록 Cloud Deploy를 구성할 수 있습니다. 예를 들어
dev
,staging
,prod
와 같이 3개의 대상이 있는 경우staging
에 성공적으로 배포되는 즉시 추가적인 인적 상호작용 없이 그러한 출시 버전이prod
로 승격되도록 자동화를 구성할 수 있습니다. 지연 시간을 지정할 수도 있습니다. -
크론 일정에 따라 출시 버전을 승격하도록 Cloud Deploy를 구성할 수 있습니다.
-
이전 대상으로 성공적으로 출시한 후 한 단계에서 다음 단계로 출시를 진행하도록 Cloud Deploy를 구성할 수 있습니다. 단계별 진행은 카나리아 배포 전략을 사용하는 대상에서만 사용할 수 있습니다.
-
실패한 출시를 자동으로 재시도하도록 Cloud Deploy를 구성할 수 있습니다. 여기에는 지정된 횟수만큼 출시를 재시도하고 해당 재시도 횟수가 실패한 경우 자동으로 롤백하는 작업이 포함됩니다.
이러한 작업 및 이를 구성하는 방법에 대한 자세한 내용은 자동화 규칙을 참조하세요.
자동화는 어떻게 작동하나요?
각 자동화는 해당 자동화가 사용되는 전달 파이프라인에 연결됩니다. 여러 배포 파이프라인 간에 자동화를 공유할 수 없습니다.
다음은 자동화를 구성 및 실행하는 일반적인 프로세스입니다.
-
이 자동화는 하나의 배포 파이프라인과 연결됩니다.
gcloud deploy apply
를 사용하여 해당 자동화를 등록합니다.그러면 자동화 리소스가 생성됩니다.
출시를 만들어서 이 자동화와 연결된 배포 파이프라인을 호출합니다.
출시가 하나 이상의 대상에서 성공하거나 실패합니다.
출시가 성공하면 자동화가
promoteReleaseRule
입니다.실행은 소스 대상으로의 출시가 성공할 때까지 대기합니다. 소스 대상은
AutomationRule
이 아닌 자동화를 위해 구성된selector.targets
입니다.wait
시간이 구성되어 있으면 실행도 해당 시간 동안 대기합니다.출시 버전은 파이프라인 진행의 다음 대상으로 또는 지정된 경우 특정 대상으로 자동 승격됩니다.
출시가 성공하면 자동화가
advanceRolloutRule
이고 대상에 카나리아 배포 전략이 사용됩니다.실행 시 식별된 소스 단계가 있으면 이를 기다립니다.
sourcePhase
속성은 선택사항이며, 소스 단계를 지정하지 않으면 출시의 각 단계가 자동으로 진행됩니다. 자동 단계 진행은 소스 단계가IN_PROGRESS
인 경우 발생하며wait
시간이 적용됩니다.wait
시간이 구성되어 있으면 실행도 해당 시간 동안 대기합니다.카나리아 배포를 자동화할 때는 이 대기 시간을 사용하여 각 카나리아 단계의 기간을 지정합니다.
출시는 해당 소스 단계에서 출시의 다음 단계로 자동으로 진행됩니다.
추가 소스 단계가 있고 해당하는 경우 동일한 대기 시간을 포함하여 동일하게 처리됩니다.
출시가 실패하면
repairRollout
규칙을 포함한 자동화가 수행됩니다.출시는 구성된
wait
시간(있는 경우) 이후에 재시도됩니다.이
repairRollout
규칙에 특정 단계 또는 작업이 구성된 경우 그러한 단계 또는 작업만 재시도됩니다. 작업 또는 단계가 지정되지 않은 경우에는 기본적으로 출시에 있는 모든 단계 및 작업을 재시도합니다.재시도는 선택사항이기 때문에 재시도할 자동화가 구성되지 않았으면 이 단계가 수행되지 않습니다.
첫 번째 재시도가 실패하면 구성된
wait
시간 동안 실행을 기다린 후 다시 시도합니다.재시도는 Cloud Deploy에서 재시도
attempts
가 소진될 때까지 반복됩니다.각 시도가 실패하고
attempts
가 소진되면 출시가 실패합니다.재시도 중 출시 상태는 최종 재시도 이후 출시가 성공하거나 실패할 때까지
IN_PROGRESS
입니다. 단계 상태는 재시도 중IN_PROGRESS
이지만 각 출시가 실패한 후에는FAILED
입니다.모든 재시도가 실패하거나 아무 것도 구성되지 않았으면 대사에서 최근 성공한 출시 버전으로 롤백하는 새로운 출시가 생성됩니다.
자동화 리소스
특히 자동화를 위한 2개의 Cloud Deploy 리소스가 있습니다.
자동화
Automation
은 배포 파이프라인의 하위 리소스이며, 다음 정보를 포함합니다.- 자동화가 사용되는 대상에 대한 포인터
- 자동화가 수행하는 작업과 수행 방법을 제어하는 규칙
자동화 리소스의 구성은 자동화 리소스 정보 문서에 설명되어 있습니다.
자동화 구성(
kind: Automation
)이 포함된 파일에 대해gcloud deploy apply
를 실행하면 Cloud Deploy에서 배포 파이프라인과 대상을 하나 이상의 자동화 규칙과 연결하는 자동화 리소스를 생성합니다.자동화 실행
AutomationRun
은 자동화의 인스턴스로, 해당 자동화 리소스에 대한 포인터와 이를 생성한 출시 관련 정보 및 기타 메타데이터입니다.자동화 실행은 자동화가 트리거될 때 생성됩니다.
자동화 규칙
자동화 규칙은 배포 파이프라인에서 자동으로 수행할 수 있는 작업과 자동화 수행 방법에 대한 세부정보를 정의합니다.
필수 Identity and Access Management 역할 및 권한
Cloud Deploy 배포 파이프라인을 실행하고 자동화 태스크(예: 출시 진행)를 수행할 때 필요한 권한 외에도 Automation
및 AutomationRun
리소스에 대한 특정 작업을 수행하는 데 필요한 몇 가지 권한이 있습니다.
clouddeploy.automations.create
clouddeploy.automations.delete
clouddeploy.automations.get
clouddeploy.automations.list
clouddeploy.automations.update
clouddeploy.automationRuns.cancel
clouddeploy.automationRuns.get
clouddeploy.automationRuns.list
이러한 권한 외에도 각 자동화 규칙에는 자동화된 작업을 수행하기 위한 추가 권한이 필요할 수 있습니다. 자동화 규칙별로 필요한 특정 권한에 대해서는 자동화 규칙 구성을 참조하세요.
이러한 권한이 포함된 Cloud Deploy 역할을 비롯한 자세한 내용은 IAM 역할 및 권한을 참조하세요.
자동화 만들기
자동화를 구성한 다음 gcloud deploy apply
를 사용하여 자동화 리소스를 만들어 사용 가능한 자동화 규칙을 사용하는 자동화를 만들 수 있습니다.
다음 섹션(자동 구성) 및 자동화 규칙 구성을 참조하세요.
자동화 구성
Automation
리소스 구성 방법에 대한 자세한 내용은 구성 파일 스키마를 참조하세요.
자동화 규칙 구성
이 자동화 구성 외에도 자동화 규칙을 지정합니다. 구성은 사용 가능한 각 규칙마다 다릅니다.
사용 가능한 각 규칙에 대한 설명은 자동화 규칙 사용을 참조하세요.
자동화 일시중지
기존 리소스를 삭제하지 않고 일시중지할 수 있습니다. 이는 배포 파이프라인에 영향을 주지 않고 자동화를 테스트하는 데 유용할 수 있습니다. 자동화를 정지하면 자동화가 실행되지 않지만 플랫폼 로그는 계속 생성됩니다.
Automation
구성에서suspended
속성을true
로 업데이트합니다.이 구성 파일에 대해
gcloud deploy apply
를 실행합니다.플랫폼 로그는 자동화가 정지된 경우에도 자동화가 인스턴스화되면 계속 생성됩니다. 이를 통해 배포 파이프라인에 영향을 주지 않고 자동화를 테스트하고 디버깅할 수 있습니다.
다음 단계
빠른 시작: 출시 버전 생성 및 출시 진행 사용해보기
Cloud Deploy 자동화 규칙에 대해 자세히 알아보기
Cloud Deploy 자동화 리소스에 대해 자세히 알아보기
자동화 구성 파일에 대한 자세한 내용은 구성 파일 스키마 문서를 참조하세요.