Google Cloud Deploy 서비스 아키텍처

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

이 문서에서는 Google Cloud Deploy와 애플리케이션 배포를 위해 Google Cloud Deploy와 함께 작동하는 외부 시스템 사이의 관계를 설명합니다. 이러한 시스템에는 기타 Google Cloud 서비스 및 타사 도구가 있습니다.

개요 보기

다음 다이어그램은 Google Cloud Deploy와 Google Cloud Deploy에 사용되는 개별 시스템 간의 관계를 보여줍니다.

Cloud Deploy 구성요소 간 관계

이 다이어그램에 표시된 것처럼 Google Cloud Deploy가 상호작용하는 시스템은 다음과 같습니다.

  • CI 시스템

    Google Cloud Deploy는 CI 프로세스의 한 출력이 출시 버전 만들기를 위한 Google Cloud Deploy API 또는 CLI 호출일 수 있는 한 대부분의 CI 도구를 지원합니다.

  • Cloud Build

    Google Cloud Deploy는 매니페스트를 렌더링하고 대상 런타임에 배포하기 위해 Cloud Build를 호출합니다.

  • Skaffold

    Google Cloud Deploy는 Cloud Build를 통해 Skaffold를 사용해서 매니페스트를 렌더링 및 배포하여 애플리케이션을 배포합니다.

  • Cloud Storage

    Google Cloud Deploy는 렌더링 소스 및 렌더링된 매니페스트를 Cloud Storage 버킷에 저장합니다.

  • Google Cloud 운영 제품군Cloud 감사 로그.

    Google Cloud 운영 제품군은 Google Cloud Deploy에 대해 로깅 데이터를 수집하고 사용 설정합니다.

    또한 감사 로깅을 참조하세요.

  • Pub/Sub

    Google Cloud Deploy는 메시지를 여러 Pub/Sub 주제에 게시합니다. 이 서비스를 사용해서 외부 워크플로, 테스트, 기타 관련 시스템과 통합할 수 있습니다.

    자세한 내용은 Google Cloud Deploy 알림 구독을 참조하세요.

  • 대상 런타임

    Google Cloud Deploy는 Cloud Build를 통해 skaffold apply를 사용하여 대상 런타임(GKE 또는 Anthos)에 애플리케이션을 배포합니다.

Google Cloud Deploy 리소스

다음 다이어그램은 Google Cloud Deploy에서 애플리케이션을 배포하는 데 사용하는 리소스와 해당 리소스 간의 관계를 보여줍니다.

Cloud Deploy 리소스 간의 관계

이 다이어그램과 같이 리소스 간의 관계는 다음과 같습니다.

  • 배포 파이프라인은 0개 이상의 출시 버전을 생성할 수 있으며 1개 이상의 대상을 참조할 수 있습니다.

  • 출시 버전에는 출시 버전이 생성될 때 구성된 배포 파이프라인 및 대상의 '스냅샷'인 파이프라인 인스턴스가 포함됩니다.

  • 각 출시 버전은 0개 이상의 출시를 생성할 수 있으며 0개 이상의 아티팩트를 참조할 수 있습니다.

    각 출시에는 배포 또는 배포 및 확인과 같이 논리적으로 그룹화된 작업 컬렉션을 나타내는 단계가 하나 포함됩니다.

    각 단계에는 출시에서 수행해야 할 작업(배포 또는 확인)을 나타내는 하나 이상의 작업이 포함됩니다. 각 작업에는 작업의 인스턴스인 작업 실행이 하나 이상 포함될 수 있습니다(예: 배포 시도). 작업 실행은 출시의 하위 리소스입니다.

  • 각 출시는 하나의 대상과 연결됩니다.

  • 각 대상은 하나의 GKE 또는 Anthos 클러스터 또는 애플리케이션의 다른 런타임 대상과 연결됩니다.

  • 대상은 하나 이상의 배포 파이프라인과 연결될 수 있습니다.

  • 아티팩트는 출시의 일부로 대상 런타임에 배포되는 CI 프로세스의 출력(예: 컨테이너 이미지)입니다.

또한 출시에는 단계가 한 개 이상 있고 단계에는 한 개 이상의 작업 및 작업 실행이 있습니다.

출시 리소스

이 다이어그램과 같이 출시에는 다음이 포함됩니다.

  • 단계

    단계에는 하나 이상의 작업(예: 배포 또는 배포 및 확인)이 포함됩니다. 각 출시에는 하나 이상의 단계가 포함됩니다. 단계는 출시의 하위 메시지입니다.

  • 작업

    출시 시 수행할 특정 작업(예: 배포 또는 확인). 작업은 출시의 하위 메시지입니다.

  • JobRuns

    작업 인스턴스(예: 확인 시도). 각 작업에는 0개 이상의 JobRuns가 있을 수 있습니다. JobRun은 출시의 하위 리소스입니다.

출시 버전 전달을 위한 통합 방법

이 섹션에서는 애플리케이션 출시 버전 전달을 자동화하기 위해 Google Cloud Deploy가 이 문서에 나열된 구성요소들과 상호작용하는 방법을 설명합니다.

  1. CI 시스템은 Google Cloud Deploy 전달 파이프라인을 호출합니다.

    CI 프로세스는 CLI 또는 API를 사용해서 Google Cloud Deploy를 호출하여 새 출시 버전을 만들고 빌드 아티팩트 또는 참조를 이미지에 전달합니다.

    CI 시스템 통합에 대한 자세한 내용은 기타 시스템과 Google Cloud Deploy 통합을 참조하세요.

  2. 새 출시 버전이 생성되면 Google Cloud Deploy가 다음을 수행합니다.

    1. 전달 파이프라인의 인스턴스를 출시 버전의 일부로 저장합니다.

      전달 파이프라인 구성이 변경되더라도 이 파이프라인 인스턴스는 이 출시 버전에 대해 변경되지 않은 상태로 유지됩니다. 자세한 내용은 출시 버전별 파이프라인 인스턴스를 참조하세요.

      또한 Skaffold 버전도 출시 버전의 일부로 저장됩니다.

    2. Cloud Build를 호출하여 Cloud Storage에서 Skaffold 렌더링 소스를 가져옵니다.

      Google Cloud Deploy는 기본 또는 대체 Cloud Storage 버킷에 렌더링 소스를 저장합니다.

    3. 단일 유효 매니페스트를 생성하려면 skaffold diagnose를 호출합니다(출시 버전 생성 시 저장되는 Skaffold 버전 사용).

    4. 제공된 이미지 또는 빌드 아티팩트를 사용해서 매니페스트를 렌더링하려면 skaffold render를 호출합니다.

      Google Cloud Deploy는 spec.templates.spec.containers.image의 이미지 이름을 gcloud deploy releases create 명령어에 제공되었거나 해당 명령어로 참조되는 빌드 아티팩트 파일에 있는 전체 이미지 경로(다이제스트 또는 태그 포함)로 바꿉니다.

      Google Cloud Deploy는 기본 또는 대체 Cloud Storage 버킷에 렌더링된 매티페스트를 저장합니다.

      Google Cloud Deploy는 기본 또는 대체 실행 환경을 사용해서 이러한 작업을 수행합니다.

    5. skaffold apply를 호출하여 출시를 자동으로 만들고 첫 번째 대상에 배포합니다.

      CLI에서 Google Cloud Deploy를 호출하여 출시를 만드는 경우에만 해당됩니다.

      첫 번째 대상에 대한 배포 프로세스는 다음 단계에 설명된 승격과 동일합니다.

    6. 배포 파이프라인 구성verifytrue이고 확인이 Skaffold 구성에 지정된 경우 skaffold verify를 호출합니다.

  3. 다음 대상으로 출시 버전을 승격할 때 Cloud Build는 Cloud Storage에서 대상 특정 매니페스트를 검색합니다. 그런 후 Cloud Build가 skaffold apply를 호출해서 렌더링된 매니페스트를 지정된 대상 런타임에 적용합니다.

    대상에 승인이 필요하면 CLI 또는 Console을 사용해서 승인 또는 거절할 수 있습니다.

    또한 Google Cloud Deploy는 승인 워크플로 자동 시작을 위해 구독할 수 있는 Pub/Sub 메시지를 생성합니다.

    Google Cloud Deploy는 Skaffold 버전 및 이 출시 버전과 연관된 파이프라인 인스턴스를 사용하고 기본 또는 커스텀 실행 환경에서 이 단계를 수행합니다.

    이 프로세스는 승격뿐만 아니라 롤백 및 재배포를 위해서도 필요합니다.

  4. Google Cloud Deploy 작업을 수행할 때 이 서비스는 알림을 일부 Pub/Sub 주제에 게시합니다(예: 출시에 승인이 필요한 경우).

    이 통합 및 기타 통합에 대한 자세한 내용은 외부 시스템과 Google Cloud Deploy 통합을 참조하세요.

  5. Google Cloud Deploy 작업 중 이 서비스는 플랫폼 로그 및 감사 로그를 Google Cloud 운영 제품군 및 Cloud 감사 로그에 기록합니다.

이러한 모든 단계에서 제어 흐름 및 리소스 액세스는 Identity and Access Management를 사용해서 제한됩니다.

다음 단계