다음을 통해 공유


Azure Databricks의 CI/CD

CI/CD(연속 통합 및 지속적인 업데이트)는 자동화 파이프라인을 사용하여 짧고 빈번한 주기로 소프트웨어를 개발하고 배달하는 프로세스를 말합니다. CI/CD는 소프트웨어 개발에 일반적이며 데이터 엔지니어링 및 데이터 과학에 점점 더 필요해지고 있습니다. 개발 팀은 코드 빌드, 테스트 및 배포를 자동화하여 수동 프로세스보다 더 안정적으로 릴리스를 제공할 수 있습니다.

일반적인 도구는 CI/CD 파이프라인을 개발하는 데 사용할 수 있지만 각 조직의 소프트웨어 개발 수명 주기의 고유한 측면 때문에 조직에서 조직으로의 구현 및 접근 방식이 약간 다를 수 있습니다. 이 페이지에서는 Databricks의 CI/CD에 대한 다음 방법 및 각 접근 방식에 대한 장단점을 제공합니다.

Azure Databricks의 기계 학습 프로젝트에 대한 CI/CD에 대한 개요는 Databricks가 기계 학습을 위해 CI/CD를 어떻게 지원하나요?를 참조하세요.

Databricks 자산 번들(권장)

Databricks 자산 번들은 Databricks의 CI/CD에 권장되는 접근 방식입니다. Databricks 자산 번들을 사용하여 작업 및 파이프라인과 같은 Databricks 리소스를 원본 파일로 설명하고 다른 자산과 함께 번들로 묶어 배포 가능한 프로젝트의 엔드투엔드 정의를 제공합니다. 이러한 파일 번들은 원본 제어가 가능하며 Github Actions와 같은 외부 CI/CD 자동화를 사용하여 배포를 트리거할 수 있습니다.

장점 단점
  • 조직 전체에서 일관성 및 모범 사례를 적용하기 위한 사용자 지정 번들 템플릿과 같은 많은 기능이 포함되어 있습니다.
  • 많은 Databricks 리소스에 대한 코드 파일 및 구성 배포에 대한 포괄적인 지원.
  • 번들을 작성하려면 번들 구성 구문에 대한 지식이 필요합니다.
  • 번들 배포 폴더가 원격 Git 커밋과 일치한다는 보장은 없습니다. 프로덕션 번들 폴더가 작업 영역에서 실수로 편집될 수 있습니다.
  • 병합 시 배포를 트리거하려면 GitHub Actions와 같은 외부 CI/CD 파이프라인이 필요합니다.

프로덕션 Git 폴더

아직 Databricks 자산 번들을 채택할 준비가 되지 않았지만 코드를 소스 제어하려는 경우 프로덕션 Git 폴더를 설정할 수 있습니다. 그런 다음 GitHub Actions와 같은 외부 CI/CD 도구를 사용하여 병합 시 Git 폴더를 끌어오거나 외부 CI/CD 파이프라인에 액세스할 수 없는 경우 작업 영역의 Git 폴더로 끌어올 예약된 작업을 만듭니다.

장점 단점
  • Databricks 자산 번들을 채택하지 않은 팀을 위한 간단하고 간단한 배포를 지원합니다.
  • Airflow와 같은 외부 오케스트레이터를 사용하는 작업 영역에 대해 CI/CD를 지원합니다.
  • 프로덕션 Git 폴더를 실수로 편집할 수 있습니다.
  • Notebook 및 대시보드 초안과 같은 코드 파일만 소스 제어에 있습니다. Git 폴더에서 자산을 실행하는 작업에 대한 구성 및 대시보드 게시에 대한 구성은 소스 제어에 없습니다.
  • 병합 시 배포를 트리거하려면 Github 작업과 같은 외부 CI/CD 파이프라인이 필요합니다.

Git에서의 작업

작업에 CI/CD만 필요한 경우 작업이 있는 Git 을 사용하면 원격 Git 리포지토리를 원본으로 사용하도록 일부 작업 유형을 구성할 수 있습니다. 작업 실행이 시작되면 Databricks는 원격 리포지토리의 스냅샷 커밋을 수행하고 전체 작업이 동일한 버전의 코드에 대해 실행되도록 합니다.

장점 단점
  • 가볍고 UI에서 전적으로 작성할 수 있습니다.
  • 최신 코드를 실행하기 위해 GitHub Actions와 같은 외부 CI/CD 파이프라인이 필요하지 않습니다.
  • 프로덕션 작업이 로컬 편집 없이 원격 코드를 실행하여 프로덕션 작업이 의도하지 않게 변경되지 않도록 합니다.
  • 제한된 작업만 지원합니다.
  • Notebook 및 기타 파일과 같은 코드 파일만 소스 제어에 있습니다. 작업 순서, 컴퓨팅 및 일정과 같은 작업 구성은 원본 제어되지 않으므로 이 접근 방식은 다중 환경, 작업 영역 간 배포에 덜 적합합니다.
  • 런타임에 Git 연결이 필요합니다. Git 연결이 중단되면 작업이 실패합니다.

기타 CI/CD 권장 사항

선택한 CI/CD 접근 방식에 관계없이 CI/CD 인증에 워크로드 ID 페더레이션을 사용합니다. 워크로드 ID 페더레이션은 Databricks 비밀이 필요하지 않으므로 Databricks에 인증하는 가장 안전한 방법입니다. OAuth 토큰 페더레이션을 사용하여 Azure Databricks에 대한 액세스 인증을 참조하세요.

Databricks는 Databricks Terraform 공급자를 사용하여 작업 영역과 관련된 클라우드 인프라를 관리할 것을 권장합니다.

다른 CI/CD 권장 사항은 Databricks의 모범 사례 및 권장 CI/CD 워크플로를 참조하세요.

Azure Databricks 자산 및 데이터의 수명 주기를 관리하는 방법에 대한 자세한 내용은 CI/CD 및 데이터 파이프라인 도구에 대한 다음 설명서를 참조하세요.

지역 원하는 경우 다음 도구를 사용합니다.
Databricks 자산 패키지 CI/CD 모범 사례 및 워크플로를 사용하여 Lakeflow 작업, Lakeflow 선언적 파이프라인 및 MLOps 스택을 프로그래밍 방식으로 정의, 배포 및 실행합니다.
Databricks Terraform 공급자 Terraform을 사용하여 Databricks 작업 영역 및 인프라를 프로비전하고 관리합니다.
Git 및 Databricks Git 폴더를 사용하는 CI/CD 워크플로 소스 제어 및 CI/CD 워크플로에 GitHub 및 Databricks Git 폴더를 사용합니다.
Azure Databricks에서 Azure DevOps로 인증 Azure DevOps를 사용하여 인증합니다.
Microsoft Entra 서비스 주체를 사용하여 Azure Databricks Git 폴더로 자동화 수행 MS Entra 서비스 주체를 사용하여 Databricks Git 폴더에 대한 액세스를 인증합니다.
Azure DevOps를 사용하여 Azure Databricks에서 연속 통합 및 업데이트 Azure DevOps를 사용하는 Azure Databricks용 CI/CD 파이프라인을 개발합니다.
GitHub Actions CI/CD 워크플로에 Azure Databricks용으로 개발된 GitHub Action을 포함합니다.
Azure Databricks에서 Jenkins를 사용하는 CI/CD Jenkins를 사용하는 Azure Databricks용 CI/CD 파이프라인을 개발합니다.
Apache Airflow로 Lakeflow 작업을 오케스트레이션하기 Apache Airflow를 사용하는 데이터 파이프라인을 관리하고 예약합니다.
CI/CD에 대한 서비스 주체 CI/CD 시스템에서 사용자 대신 서비스 주체를 사용합니다.