데이터 처리 워크플로에 CI/CD 파이프라인 사용

Last reviewed 2023-05-12 UTC

이 배포에서는 Google Cloud에서 관리 제품으로 CI/CD 메서드를 구현하여 데이터 처리를 위한 지속적 통합/지속적 배포(CI/CD) 파이프라인을 설정하는 방법을 설명합니다. 데이터과학자와 분석가들이 CI/CD 방식의 방법론을 채택하면 데이터 프로세스 및 워크플로의 고품질, 유지 관리성, 조정 가능성을 보장하는 데 도움이 될 수 있습니다. 다음과 같은 응용이 가능합니다.

  • 소스 코드의 버전 관리
  • 앱의 자동 빌드, 테스트, 배포
  • 프로덕션에서의 환경 격리 및 분리
  • 복제 가능한 환경 설정 절차

이 배포는 데이터 처리 워크로드를 체계적이고 자동으로 유지관리할 수 있도록 연구 개발(R&D)을 구조화하는 데 도움이 될 반복 실행되는 데이터 처리 작업을 빌드하는 데이터과학자 및 분석가를 대상으로 작성되었습니다.

아키텍처

다음 다이어그램은 CI/CD 파이프라인 단계를 자세히 보여줍니다.

CI/CD 파이프라인의 아키텍처 다이어그램

테스트 및 프로덕션 환경에 대한 배포가 2개의 Cloud Build 파이프라인, 즉 테스트 파이프라인과 프로덕션 파이프라인으로 구분되어 있습니다.

앞의 다이어그램에서 테스트 파이프라인은 다음과 같은 단계로 구성됩니다.

  1. 개발자가 Cloud Source Repositories에 코드 변경사항을 커밋합니다.
  2. 코드 변경사항으로 인해 Cloud Build에 테스트 빌드가 트리거됩니다.
  3. Cloud Build가 자체 실행되는 JAR 파일을 빌드하여 Cloud Storage의 테스트 JAR 버킷에 배포합니다.
  4. Cloud Build가 테스트 파일을 Cloud Storage의 테스트-파일 버킷에 배포합니다.
  5. Cloud Build가 새로 배포된 JAR 파일을 참조하도록 Cloud Composer에 변수를 설정합니다.
  6. Cloud Build가 데이터 처리 워크플로 Directed Acyclic Graph(DAG)를 테스트하여 Cloud Storage의 Cloud Composer 버킷에 배포합니다.
  7. 워크플로 DAG 파일이 Cloud Composer에 배포됩니다.
  8. Cloud Build가 새로 배포된 데이터 처리 워크플로가 실행되도록 트리거합니다.
  9. 데이터 처리 워크플로 통합 테스트에 통과하면 메시지 데이터 필드의 최신 자체 실행 JAR(Airflow 변수에서 가져온)에 대한 참조가 포함된 메시지가 Pub/Sub에 게시됩니다.

앞의 다이어그램에서 프로덕션 파이프라인은 다음과 같은 단계로 구성됩니다.

  1. 메시지가 Pub/Sub 주제에 게시되면 프로덕션 배포 파이프라인이 트리거됩니다.
  2. 개발자가 프로덕션 배포 파이프라인을 수동으로 승인하고 빌드가 실행됩니다.
  3. Cloud Build가 자체 실행되는 최신 JAR 파일을 Cloud Storage의 테스트 JAR 버킷에서 프로덕션 JAR 버킷으로 복사합니다.
  4. Cloud Build가 프로덕션 데이터 처리 워크플로 DAG를 테스트하여 Cloud Storage의 Cloud Composer 버킷에 배포합니다.
  5. 프로덕션 워크플로 DAG 파일이 Cloud Composer에 배포됩니다.

이 배포에서는 모든 데이터 처리 워크플로에 대한 통합 뷰를 제공하기 위해 프로덕션 데이터 처리 워크플로를 테스트 워크플로와 동일한 Cloud Composer 환경에 배포합니다. 이 참조 아키텍처의 목적에 맞게 이와 같은 환경은 입력 및 출력 데이터를 보관하는 서로 다른 Cloud Storage 버킷을 사용해 구분합니다.

환경을 완전히 구분하기 위해서는 다양한 프로젝트에서 생성되어 기본적으로 서로 분리된 여러 Cloud Composer 환경이 필요합니다. 이렇게 분리하면 프로덕션 환경의 보안에 도움이 됩니다. 이 접근 방식은 이 튜토리얼에서는 다루지 않습니다. 여러 Google Cloud 프로젝트에서 리소스에 액세스하는 방법에 대한 자세한 내용은 서비스 계정 권한 설정을 참조하세요.

데이터 처리 워크플로

Cloud Composer가 데이터 처리 워크플로를 실행하는 방법에 대한 안내는 Python으로 작성된 Directed Acyclic Graph(DAG)에서 제공하고 있습니다. DAG에는 데이터 처리 워크플로의 전 단계가 종속 항목과 함께 정의되어 있습니다.

CI/CD 파이프라인에서 DAG 정의를 Cloud Source Repositories에서 각 빌드의 Cloud Composer로 자동으로 배포합니다. 이 프로세스는 수동 작업 없이 Cloud Composer가 항상 최신 워크플로 정의를 통해 최신 상태를 유지하도록 보장합니다.

테스트 환경용 DAG 정의에는 데이터 처리 워크플로 외에 엔드 투 엔드 테스트 단계가 정의되어 있습니다. 테스트 단계는 데이터 처리 워크플로가 올바르게 실행되는 데 도움을 줍니다.

다음 다이어그램은 데이터 처리 워크플로를 보여줍니다.

4단계 데이터 처리 워크플로

데이터 처리 워크플로는 다음과 같은 단계로 구성됩니다.

  1. Dataflow에서 WordCount 데이터 처리를 실행합니다.
  2. WordCount 프로세스의 결과 파일을 다운로드합니다. WordCount 프로세스는 3개의 결과 파일을 생성합니다.

    • download_result_1
    • download_result_2
    • download_result_3
  3. download_ref_string이라는 참조 파일을 다운로드합니다.

  4. 참조 파일을 기준으로 결과를 확인합니다. 이 통합 테스트에서는 결과 3개를 모두 집계하여 집계된 결과를 참조 파일과 비교합니다.

  5. 통합 테스트가 통과한 후 Pub/Sub에 메시지를 게시합니다.

Cloud Composer와 같은 태스크 조정 프레임워크를 사용해 데이터 처리 워크플로를 관리하면 워크플로의 코드 복잡성을 완화하는 데 도움이 됩니다.

비용 최적화

이 문서에서는 비용이 청구될 수 있는 다음과 같은 Google Cloud 구성요소를 사용합니다.

배포

이 아키텍처를 배포하려면 데이터 처리 워크플로를 위한 CI/CD 파이프라인 배포를 참조하세요.

다음 단계