Azure Databricks의 CI/CD란?
이 문서에서는 Databricks의 CI/CD를 소개합니다. CI/CD(연속 통합 및 지속적인 업데이트)는 자동화 파이프라인을 사용하여 짧고 빈번한 주기로 소프트웨어를 개발하고 배달하는 프로세스를 말합니다. CI/CD는 소프트웨어 개발에 일반적이며 데이터 엔지니어링 및 데이터 과학에 점점 더 필요해지고 있습니다. 개발 팀은 코드 빌드, 테스트 및 배포를 자동화하여 데이터 엔지니어링 및 데이터 과학 팀에 여전히 공통적인 수동 프로세스보다 더 안정적으로 릴리스를 제공할 수 있습니다.
Azure Databricks는 Azure Databricks 플랫폼에 대한 복잡한 데이터, 분석 및 ML 프로젝트를 개발 및 배포할 수 있도록 CI/CD용 Databricks 자산 번들을 사용하는 것이 좋습니다. 번들을 사용하면 여러 사용자 지정 구성을 쉽게 관리하고 프로젝트의 빌드, 테스트 및 배포를 Azure Databricks 개발, 스테이징 및 프로덕션 작업 영역에 자동화할 수 있습니다.
Azure Databricks의 기계 학습 프로젝트에 대한 CI/CD에 대한 개요는 Databricks가 기계 학습을 위해 CI/CD를 어떻게 지원하나요?를 참조하세요.
Azure Databricks의 CI/CD 파이프라인에는 무엇이 있나요?
Databricks 자산 번들을 사용하여 일반적으로 다음을 포함하는 Azure Databricks CI/CD 구현을 정의하고 프로그래밍 방식으로 관리할 수 있습니다.
- Notebooks: Azure Databricks Notebook은 종종 데이터 엔지니어링 및 데이터 과학 워크플로의 핵심 부분입니다. Notebook에 버전 제어를 사용하고 CI/CD 파이프라인의 일부로 유효성을 검사하고 테스트할 수도 있습니다. Notebook에 대해 자동화된 테스트를 실행하여 Notebook이 예상대로 작동하는지 확인할 수 있습니다.
- 라이브러리: 배포된 코드를 실행하는 데 필요한 라이브러리 종속성을 관리합니다. 라이브러리에서 버전 제어를 사용하고 자동화된 테스트 및 유효성 검사에 포함합니다.
- 워크플로: Databricks 작업은 Notebook 또는 Spark 작업을 사용하여 자동화된 작업을 예약하고 실행할 수 있는 작업으로 구성됩니다.
- 데이터 파이프라인: 데이터 파이프라인을 선언하기 위해 Databricks의 프레임워크인 Delta Live Tables를 사용하여 CI/CD 자동화에 데이터 파이프라인을 포함할 수도 있습니다.
- 인프라: 인프라 구성에는 대상 환경의 클러스터, 작업 영역 및 스토리지에 대한 정의 및 프로비저닝 정보가 포함됩니다. 인프라 변경 내용은 CI/CD 파이프라인의 일부로 유효성을 검사하고 테스트하여 일관되고 오류가 없는지 확인할 수 있습니다.
Azure Databricks의 CI/CD에 대한 단계
Azure Databricks CI/CD 파이프라인에 대한 일반적인 흐름에는 다음 단계가 포함됩니다.
- 저장소: Azure Databricks 코드 및 Notebook을 Git과 같은 버전 제어 시스템에 저장합니다. 이를 통해 시간에 따른 변경 내용을 추적하고 다른 팀 구성원과 공동 작업할 수 있습니다. Git 및 Databricks Git 폴더(리포지토리)와 번들 Git 설정을 사용하여 CI/CD 기술을 참조하세요.
- 코드: 작업 영역의 Azure Databricks Notebook에서 또는 외부 IDE를 사용하여 로컬로 코드 및 단위 테스트를 개발합니다. Azure Databricks는 Azure Databricks 작업 영역에 변경 내용을 쉽게 개발하고 배포할 수 있는 Visual Studio Code 확장을 제공합니다.
- 빌드: Databricks 자산 번들 설정을 사용하여 배포 중에 특정 아티팩트가 자동으로 빌드됩니다. 아티팩트 참조 또한 Pylint는 Databricks Labs pylint 플러그 인을 사용하여 확장되어 코딩 표준을 적용하고 Databricks Notebook 및 애플리케이션 코드에서 버그를 검색할 수 있습니다.
- 배포: Azure DevOps, Jenkins 또는 GitHub Actions와 같은 도구와 함께 Databricks 자산 번들을 사용하여 Azure Databricks 작업 영역에 변경 내용을 배포합니다. Databricks 자산 번들 배포 모드를 참조 하세요.
- 테스트: pytest와 같은 도구를 사용하여 코드 변경 내용의 유효성을 검사하는 자동화된 테스트를 개발하고 실행합니다. 작업 영역 API 와의 통합을 테스트하기 위해 Databricks Labs pytest 플러그 인 을 사용하면 테스트가 완료된 후 작업 영역 개체를 만들고 정리할 수 있습니다.
- 실행: Databricks 자산 번들과 함께 Databricks CLI를 사용하여 Azure Databricks 작업 영역에서 실행을 자동화합니다. 작업 또는 파이프라인 실행을 참조하세요.
- 모니터: Azure Monitor 또는 Datadog와 같은 도구를 사용하여 Azure Databricks에서 코드 및 워크플로의 성능을 모니터링합니다. 이렇게 하면 프로덕션 환경에서 발생하는 문제를 식별하고 해결할 수 있습니다.
- 반복: 데이터 엔지니어링 또는 데이터 과학 프로젝트를 개선하고 업데이트하기 위해 작고 자주 반복합니다. 작은 변경 내용은 큰 변경 내용보다 롤백하기 쉽습니다.
관련 링크
Azure Databricks 자산 및 데이터의 수명 주기를 관리하는 방법에 대한 자세한 내용은 CI/CD 및 데이터 파이프라인 도구에 대한 다음 설명서를 참조하세요.
영역 | 원하는 경우 다음 도구를 사용합니다. |
---|---|
Databricks 자산 번들 | CI/CD 모범 사례 및 워크플로를 사용하여 Azure Databricks 작업, 델타 라이브 테이블 파이프라인 및 MLOps 스택을 프로그래밍 방식으로 정의, 배포 및 실행합니다. |
Databricks Terraform 공급자 | Terraform을 사용하여 Databricks 인프라 및 리소스를 프로비전하고 관리합니다. |
Git 및 Databricks Git 폴더를 사용하는 CI/CD 워크플로 | 소스 제어 및 CI/CD 워크플로에 GitHub 및 Databricks Git 폴더를 사용합니다. |
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를 사용하여 연속 통합 및 지속적인 업데이트 | Azure Databricks용으로 개발된 GitHub Actions를 사용하는 GitHub CI/CD 워크플로를 개발합니다. |
Azure Databricks에서 Jenkins를 사용하는 CI/CD | Jenkins를 사용하는 Azure Databricks용 CI/CD 파이프라인을 개발합니다. |
Apache Airflow로 Azure Databricks 작업 조정 | Apache Airflow를 사용하는 데이터 파이프라인을 관리하고 예약합니다. |
CI/CD에 대한 서비스 주체 | CI/CD 시스템에서 사용자 대신 서비스 주체를 사용합니다. |