이 문서에서는 App Lifecycle Manager를 사용하여 출시를 출시하는 방법을 설명합니다.
App Lifecycle Manager를 사용하면 출시를 통해 프로비저닝된 여러 단위에서 업데이트를 사용 설정할 수 있습니다. 출시는 UnitKind를 기반으로 단위를 타겟팅하며 선택적으로 Google Cloud CLI를 사용하여 특정 단위 하위 집합을 타겟팅하는 필터 (unit_filter)를 적용할 수 있습니다 . 이를 통해 배포된 기반에서 관리형 업데이트를 사용할 수 있습니다. 단위를 이전 출시 버전으로 업그레이드하여 롤백 을 수행할 수 있습니다.
단일 특정 단위에 대한 작업은 단위 세부정보 페이지에서 사용할 수 있는 컨트롤을 사용합니다.
시작하기 전에
SaaS 제품을 업데이트하기 전에 다음을 수행해야 합니다.
- App Lifecycle Manager를 사용 설정했는지 확인합니다.
- SaaS 제품을 만드는 데 필요한 IAM 권한이 있는지 확인합니다.
- SaaS 제품을 만듭니다.
- UnitKind를 만듭니다.
- 단위를 만들고 프로비저닝합니다.
- 새 Terraform 청사진 또는 수정된 Terraform 청사진을 준비합니다.
출시 만들기
SaaS 제품을 업데이트하려면 먼저 출시 를 만들어야 합니다. 출시는 청사진 패키지 및 연결된 구성으로 정의되는 SaaS 애플리케이션의 특정 버전을 나타냅니다. 기본적으로 출시는 단위에 대한 업데이트를 포함 합니다.
콘솔
App Lifecycle Manager로 이동합니다.
출시 를 클릭합니다.
출시 페이지에서 만들기 를 클릭합니다.
출시 만들기 페이지에서 다음을 수행합니다.
- 출시 이름 상자에 출시의 고유한 이름을 입력합니다.
- 단위 종류 상자에서 이 출시와 연결된 단위 종류를 선택합니다.
- 업그레이드 가능한 출시 버전만 (선택사항) 섹션에서 단위를 이 출시 버전으로 업그레이드할 수 있는 출시 버전을 선택할 수 있습니다. 이를 통해 업그레이드 경로를 제어할 수 있습니다.
- 청사진 만들기 및 청사진 저장 단계에서 청사진을 선택하거나 만듭니다. 청사진 만들기 옵션에 대한 자세한 내용은 청사진 문서 를 참조하세요.
변수 (선택사항) 섹션에서 이 출시의 입력 변수를 선택적으로 설정할 수 있습니다. 변수 설정에 대한 자세한 내용은 변수 문서 를 참조하세요.
만들기 를 클릭합니다.
출시가 생성되었습니다. 출시 세부정보 페이지에서 출시 세부정보를 볼 수 있습니다. 출시를 만들 때 이 출시를 참조할 수 있습니다.
gcloud
콘솔을 사용하여 출시를 만들려면 다음 안내를 따르세요. Google Cloud
gcloud beta saas-runtime releases create RELEASE_NAME --blueprint-package=BLUEPRINT_PACKAGE_URI --unit-kind=UNIT_KIND [--location=LOCATION] [--labels=[KEY=VALUE,...]] [--upgradeable-from-releases=[RELEASE_NAME,...]] [--input-variable-defaults=[variable=VARIABLE,value=VALUE,type=TYPE,...]]
다음을 바꿉니다.
RELEASE_NAME: 만들려는 출시의 ID입니다. 이는 출시의 전체 리소스 이름의 일부가 됩니다.BLUEPRINT_PACKAGE_URI: 이 출시에 사용할 청사진 패키지의 URI입니다. 청사진은 Artifact Registry 또는 다른 OCI 레지스트리에 호스팅된 OCI 이미지입니다.- 청사진 패키지에는 단위를 프로비저닝하는 데 필요한 아티팩트가 포함되어 있으며 사용된 엔진 (Terraform) 및 버전에 대한 메타데이터가 포함되어 있습니다.
- URI에서 호스트 이름을 생략하면 기본적으로 리전 Artifact Registry 경로 (
us-east1-docker.pkg.dev등)가 사용됩니다. - 청사진 만들기에 대한 자세한 내용은 청사진 문서 를 참조하세요.
UNIT_KIND: 이 출시가 해당하는 단위 종류의 ID 또는 정규화된 식별자입니다. UNIT_KIND은 출시를 만든 후에는 변경할 수 없습니다.LOCATION: 출시를 만들려는 위치입니다. 이 플래그는 전체 URI 경로가 제공되지 않은 경우 출시 위치의 대체 값을 제공합니다. 기본적으로 Google Cloud CLI 환경에 구성된 위치로 설정됩니다.LABELS: (선택사항) 분류를 위해 출시에 적용할 라벨입니다. 라벨은 키-값 쌍입니다.- 키는 소문자로 시작해야 하고 하이픈, 밑줄, 소문자, 숫자만 포함할 수 있습니다.
- 값은 하이픈, 밑줄, 소문자, 숫자만 포함해야 합니다.
- 예:
--labels=environment=staging,team=saas-runtime
UPGRADEABLE_FROM_RELEASES: (선택사항) 만들려는 새 출시 버전으로 업데이트할 수 있는 기존 출시 버전을 지정하는 출시 이름의 쉼표로 구분된 목록입니다.- 이 플래그를 비워두면 이 출시 버전으로 업데이트할 수 있는 출시 버전에 제약이 없습니다.
- 제공된 경우 이 출시 버전으로의 단위 업데이트 요청은 이 제약 조건을 적용합니다.
INPUT_VARIABLE_DEFAULTS: (선택사항) 청사진에 필요한 입력 변수의 기본값입니다.- 변수 기본값을 인라인으로 지정하거나 YAML 또는 JSON 파일을 참조하여 지정할 수 있습니다.
- 여기에서 정의된 변수는 출시를 만드는 동안 재정의될 수 있습니다.
변수 설정에 대한 자세한 내용은 변수 문서를 참조하세요.
출시에 대한 자세한 내용은 Release Google Cloud CLI 참조를 확인하세요.
출시 종류 만들기
출시를 만들려면 먼저 출시가 단위에 배포되는 방식을 위한 템플릿 역할을 하는 출시 종류를 만들어야 합니다.
콘솔
App Lifecycle Manager로 이동합니다.
출시 종류 를 클릭합니다.
출시 종류 페이지에서 만들기 를 클릭합니다.
출시 종류 만들기 페이지에서 다음을 수행합니다.
- 출시 종류 이름 상자에 출시 종류의 이름을 입력합니다.
- 단위 종류 상자에서 출시를 출시할 단위의 유형을 자세히 설명하는 단위 종류를 선택합니다.
출시 전략 드롭다운에서 출시를 단위에 배포하는 데 사용할 전략을 선택합니다.
- 한 번에 한 위치 (단순): 한 번에 한 위치를 업데이트합니다 (소크 시간 없음). 최대 20% 의 단위를 동시에 업데이트합니다.
- 한 번에 모두 (단순): 모든 위치에서 동시에 출시를 시작합니다 (개발 환경 및 비상 시나리오에 적합).
- 점진적 (점진적): 여러 위치에서 지수적으로 백분율 일괄 처리로 업데이트를 점진적으로 출시합니다 (소크 시간 포함).
- 점진적 (단일 위치): 단일 위치 내에서 문제를 감지하기 위해 소크 시간이 연장된 백분율 일괄 처리로 단위를 업데이트합니다.
출시 전략에 대한 자세한 내용은 출시 전략을 참조하세요.
만들기 를 클릭합니다.
출시 종류가 생성되었습니다. 출시 종류 세부정보 페이지에서 출시 종류의 매개변수를 보고 수정할 수 있습니다.
gcloud
콘솔을 사용하여 출시 종류를 만들려면 다음 안내를 따르세요. Google Cloud
gcloud beta saas-runtime rollout-kinds create ROLLOUT_KIND_NAME --unit-kind=UNIT_KIND --location=LOCATION --rollout_strategy=ROLLOUT_STRATEGY --error_budget=ERROR_BUDGET --unit_filter=UNIT_FILTER --update_unit_kind_default=UPDATE_UNIT_KIND_DEFAULT
다음을 바꿉니다.
ROLLOUT_KIND_NAME: 출시 종류의 이름입니다.UNIT_KIND: 출시를 적용할 단위를 정의합니다. 출시는 선택한 단위 종류의 모든 단위에 적용됩니다.LOCATION: 출시 종류를 만들려는 위치입니다.ROLLOUT_STRATEGY: 출시 종류의 출시 전략을 정의합니다. 가능한 값은 다음과 같습니다.Google.Cloud.Simple.OneLocationAtATime: 한 번에 한 위치를 업데이트합니다 (소크 시간 없음). 최대 20% 의 단위를 동시에 업데이트합니다.Google.Cloud.Simple.AllAtOnce: 모든 위치에서 동시에 출시를 시작합니다 (개발 환경 및 비상 시나리오에 적합).Google.Cloud.Progressive.Gradual.v1: 여러 위치에서 지수적으로 백분율 일괄 처리로 업데이트를 점진적으로 출시합니다 (소크 시간 포함).Google.Cloud.Progressive.SingleLocation.v1: 단일 위치 내에서 문제를 감지하기 위해 소크 시간이 연장된 백분율 일괄 처리로 단위를 업데이트합니다.
출시 전략에 대한 자세한 내용은 출시 전략을 참조하세요.
ERROR_BUDGET: 오류 예산의 구성입니다. 실패한 단위 수가error_budget최댓값 (allowed_count,allowed_ratio*total_units로 정의됨)을 초과하면 출시가 일시중지됩니다.error_budget이 설정되지 않은 경우 App Lifecycle Manager는 발생한 실패 수와 관계없이 모든 단위를 업데이트하려고 시도합니다.UNIT_FILTER: CEL 단위에 대해 사용되는 형식화된 필터 문자열입니다. 필터가 적용되어 적격 단위 모집단을 결정합니다. 이 필터는 출시의 범위를 줄일 수만 있습니다. 출시의 범위를 확장할 수는 없습니다.UPDATE_UNIT_KIND_DEFAULT: 단위 종류 업데이트의 구성입니다. 기본적으로 출시 시작 시 단위 종류가 업데이트됩니다. 가능한 값은 다음과 같습니다.UPDATE_UNIT_KIND_STRATEGY_UNSPECIFIED: 단위 종류 업데이트 전략이 지정되지 않았습니다.UPDATE_UNIT_KIND_STRATEGY_ON_START: 출시 시작 시 단위 종류 전략을 업데이트합니다.UPDATE_UNIT_KIND_STRATEGY_NEVER: 단위 종류 전략을 업데이트하지 않습니다.
자세한 내용은
RolloutKind
Google Cloud CLI 참조를 확인하세요.
오류 예산 기능
App Lifecycle Manager에는 보호 장치로 오류 예산 기능 (RolloutKind의 ErrorBudget)이 포함되어 있습니다. 단위 업데이트 실패 수 또는 비율 (예: 인프라 애플리케이션 중)이 구성된 기준점을 초과하면 출시를 자동으로 일시중지하여 업데이트 중에 발생할 수 있는 문제의 영향을 제한할 수 있습니다.
출시 만들기
출시 종류를 만든 후에는 단위를 업데이트할 출시 버전을 지정하는 출시를 만들 수 있습니다.
출시가 생성되면 App Lifecycle Manager는 단위 종류에 정의된 전략에 따라 단위를 업데이트합니다.
콘솔
App Lifecycle Manager로 이동합니다.
출시 를 클릭합니다.
출시 목록 페이지에서 만들기 를 클릭합니다.
출시 만들기 페이지에서 다음을 수행합니다.
- 출시 종류 상자에서 출시를 지정된 단위에 출시하는 방법을 자세히 설명하는 출시 종류를 선택합니다.
- 출시 상자에서 단위를 업데이트할 출시 버전을 지정합니다.
- 출시 이름 상자에 출시의 이름을 입력합니다.
만들기 를 클릭합니다.
출시가 생성되었습니다.
전역 출시 세부정보 페이지에서 출시 상태, 출시 진행률 (단위 수 기준), 출시 실패를 비롯한 출시 세부정보를 모니터링할 수 있습니다.
gcloud
콘솔을 사용하여 출시를 만들려면 다음 안내를 따르세요. Google Cloud
gcloud beta saas-runtime rollouts create ROLLOUT_NAME --rollout-kind=ROLLOUT_KIND_NAME --release=RELEASE_NAME --location=LOCATION
다음을 바꿉니다.
ROLLOUT_NAME: 출시의 이름입니다.ROLLOUT_KIND_NAME: 단위에 출시를 적용하는 데 사용할 출시 종류를 정의합니다. 출시는 출시 종류에 정의된 단위 종류의 모든 단위에 적용됩니다.RELEASE_NAME: 단위에 배포할 출시 바이너리를 정의합니다.LOCATION: 출시를 만들려는 위치입니다.
자세한 내용은
Rollout
Google Cloud CLI 참조를 확인하세요.
다음 단계
- App Lifecycle Manager에 대해 자세히 알아보려면 App Lifecycle Manager 개요를 참조하세요.
- 튜토리얼을 사용해 보려면 App Lifecycle Manager로 VM 배포를 참조하세요.
- 서비스 계정이 사용되는 방식과 이러한 계정에 세분화된 권한을 부여하는 방법을 알아보려면 App Lifecycle Manager 서비스 계정을 참조하세요.