이 문서에서는 SaaS 런타임을 사용하여 버전을 출시하는 방법을 설명합니다.
SaaS 런타임에서는 출시를 사용하여 프로비저닝된 여러 단위에 걸쳐 업데이트를 사용 설정할 수 있습니다. 롤아웃은 UnitKind를 기반으로 단위를 타겟팅하며, 선택적으로 Google Cloud CLI를 사용하여 필터 (unit_filter)를 적용하여 특정 단위 하위 집합을 타겟팅할 수 있습니다 . 이를 통해 배포된 기반 전반에서 관리형 업데이트가 가능합니다. 롤백은 단위를 이전 출시 버전으로 업그레이드하여 실행할 수 있습니다.
단일 특정 단위에 대한 작업을 수행하려면 단위 세부정보 페이지에서 제공되는 컨트롤을 사용하세요.
시작하기 전에
SaaS 제품을 업데이트하기 전에 다음 사항을 확인하세요.
- SaaS 런타임이 사용 설정되어 있는지 확인합니다.
- SaaS 제품을 만드는 데 필요한 IAM 권한이 있는지 확인합니다.
- SaaS 제품 만들기
- UnitKind 만들기
- 단위 만들기 및 프로비저닝
- 새 Terraform 청사진 또는 수정된 Terraform 청사진을 준비합니다.
출시 버전 만들기
SaaS 제품을 업데이트하려면 먼저 버전을 만들어야 합니다. 릴리스는 청사진 패키지 및 연결된 구성으로 정의된 SaaS 애플리케이션의 특정 버전을 나타냅니다. 기본적으로 출시 버전에는 단위에 대한 업데이트가 포함됩니다.
콘솔
SaaS 런타임으로 이동합니다.
발표곡을 클릭합니다.
발표 페이지에서 만들기를 클릭합니다.
버전 만들기 페이지에서 다음을 수행합니다.
- 버전 이름 상자에 버전의 고유한 이름을 입력합니다.
- 단위 종류 상자에서 이 출시 버전과 연결된 단위 종류를 선택합니다.
- 업그레이드 가능 대상(선택사항) 섹션에서 단위를 이 출시 버전으로 업그레이드할 수 있는 출시 버전을 선택할 수 있습니다(선택사항). 이를 통해 업그레이드 경로를 제어할 수 있습니다.
- 블루프린트 만들기 및 블루프린트 저장 단계에서 블루프린트를 선택하거나 만듭니다. 블루프린트 생성 옵션에 관한 자세한 내용은 블루프린트 문서를 참고하세요.
변수 (선택사항) 섹션에서 이 버전에 대한 입력 변수를 선택적으로 설정할 수 있습니다. 변수 설정에 대한 자세한 내용은 변수 문서를 참고하세요.
만들기를 클릭합니다.
버전을 만들었습니다. 출시 세부정보 페이지에서 출시 세부정보를 확인할 수 있습니다. 출시를 만들 때 이 버전을 참조할 수 있습니다.
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 참조를 확인하세요.
출시 종류 만들기
출시를 만들려면 먼저 출시가 단위에 배포되는 방식을 템플릿으로 사용하는 출시 종류를 만들어야 합니다.
콘솔
SaaS 런타임으로 이동합니다.
출시 종류를 클릭합니다.
출시 종류 페이지에서 만들기를 클릭합니다.
출시 종류 만들기 페이지에서 다음을 수행합니다.
- 출시 종류 이름 상자에 출시 종류의 이름을 입력합니다.
- 단위 종류 상자에서 출시를 출시할 단위 유형을 자세히 설명하는 단위 종류를 선택합니다.
출시 전략 드롭다운에서 기기에 버전을 배포하는 데 사용할 전략을 선택합니다.
- 한 번에 한 위치 (단순): 한 번에 한 위치를 업데이트합니다 (소크 시간 없음). 최대 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가 설정되지 않은 경우 SaaS 런타임은 발생한 실패 수와 관계없이 모든 단위를 업데이트하려고 시도합니다.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 참조를 확인하세요.
오류 예산 기능
SaaS 런타임에는 보호 장치로 오류 예산 기능 (RolloutKind의 ErrorBudget)이 포함되어 있습니다. 이렇게 하면 인프라 적용 중에 단위 업데이트 실패 수 또는 비율이 구성된 기준점을 초과하는 경우 출시가 자동으로 일시중지되어 업데이트 중에 발생할 수 있는 문제의 영향을 제한할 수 있습니다.
출시 만들기
출시 종류를 만든 후에는 단위 업데이트에 사용할 버전을 지정하는 출시를 만들 수 있습니다.
출시가 생성되면 SaaS 런타임은 단위 종류에 정의된 전략에 따라 단위를 업데이트합니다.
콘솔
SaaS 런타임으로 이동합니다.
출시를 클릭합니다.
출시 목록 페이지에서 만들기를 클릭합니다.
출시 만들기 페이지에서 다음을 수행합니다.
- 출시 종류 상자에서 지정된 단위에 출시 버전을 출시하는 방법을 자세히 설명하는 출시 종류를 선택합니다.
- 버전 상자에서 단위를 업데이트할 버전을 지정합니다.
- 출시 이름 상자에 출시 이름을 입력합니다.
만들기를 클릭합니다.
출시가 생성되었습니다.
전역 출시 세부정보 페이지에서 출시 상태, 출시 진행률 (단위 수별), 출시 실패 등 출시 세부정보를 모니터링할 수 있습니다.
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 참조를 확인하세요.
다음 단계
- SaaS 런타임에 대해 자세히 알아보려면 SaaS 런타임 개요를 참고하세요.
- 튜토리얼을 사용해 보려면 SaaS 런타임으로 VM 배포를 참고하세요.
- 서비스 계정이 사용되는 방식과 이러한 계정에 세부적인 권한을 부여하는 방법을 알아보려면 SaaS 런타임 서비스 계정을 참고하세요.