Skip to main content

5. 환경별 배포 (Targets)

dev / staging / prod 타겟 설정

mode: development vs mode: production

권한(Permissions) 설정


6. 배포 워크플로

배포 3단계

validate 출력 예시

GitHub Actions CI/CD 연동

인증 방법: 프로덕션 배포에는 Personal Access Token 대신 Service Principal + OAuth M2M 인증을 사용합니다. GitHub Secrets에 DATABRICKS_CLIENT_ID, DATABRICKS_CLIENT_SECRET을 저장하고 DATABRICKS_TOKEN 대신 사용합니다.

7. 실전 패턴

7-1. 모노레포(Monorepo) 구조

여러 팀/도메인의 파이프라인을 하나의 Git 저장소에서 관리하는 패턴입니다.
각 도메인 디렉토리에서 독립적으로 databricks bundle deploy를 실행합니다. GitHub Actions에서는 paths 필터로 변경된 도메인만 선택적으로 배포합니다.

7-2. 다중 Job 오케스트레이션

한 번들 내에서 여러 Job이 서로를 참조할 수 있습니다.

7-3. 대시보드 코드화

이렇게 하면 대시보드도 Git 이력 관리가 가능하고, 환경 간 일관된 대시보드 배포가 가능합니다.

7-4. include로 설정 분리

큰 프로젝트에서는 리소스 파일을 분리하여 가독성을 높입니다.

8. 장단점과 트레이드오프

DABs vs 수동 배포(UI)

DABs vs Terraform

학습 곡선


9. 베스트 프랙티스와 흔한 실수

베스트 프랙티스

1. 항상 validate 먼저 실행
2. Service Principal로 CI/CD 인증 Personal Access Token은 사용자와 연결되어 있어 퇴직 시 파이프라인이 중단됩니다. CI/CD에서는 반드시 Service Principal을 사용합니다. 3. run_as를 prod에 명시
4. 변수 기본값은 dev 기준으로 설정 개발자가 -t 옵션 없이 명령을 실행하면 기본 타겟(dev)이 사용됩니다. 실수로 prod에 영향을 주는 것을 방지합니다. 5. 리소스 이름에 ${bundle.target} 포함
같은 Workspace를 여러 환경이 공유할 때 이름 충돌을 방지합니다.

흔한 실수


정리


참고 링크