Skip to main content
Databricks Asset Bundles (DABs) 를 사용하면 앱을 Infrastructure as Code로 관리하고, CI/CD 파이프라인과 통합할 수 있습니다.

DABs 프로젝트 구조

my-app-bundle/
├── databricks.yml          # Bundle 설정 파일
├── src/
   ├── app.py              # 앱 코드
   ├── app.yaml            # 앱 런타임 설정
   └── requirements.txt    # 의존성
└── resources/
    └── my_app.yml           # 앱 리소스 정의

databricks.yml 예시

bundle:
  name: my-dashboard-app

workspace:
  host: https://<workspace-url>

targets:
  dev:
    mode: development
    default: true
    workspace:
      host: https://<dev-workspace-url>

  prod:
    mode: production
    workspace:
      host: https://<prod-workspace-url>

include:
  - resources/*.yml

앱 리소스 정의 (resources/my_app.yml)

resources:
  apps:
    my_dashboard_app:
      name: "my-dashboard-app"
      description: "매출 분석 대시보드"
      source_code_path: ../src
      config:
        command:
          - streamlit
          - run
          - app.py
        env:
          - name: DATABRICKS_WAREHOUSE_ID
            value: ${var.warehouse_id}
      resources:
        - name: sql_warehouse
          sql_warehouse:
            id: ${var.warehouse_id}
            permission: CAN_USE
      permissions:
        - level: CAN_MANAGE
          user_name: admin@company.com
        - level: CAN_USE
          group_name: data-team

DABs 배포 명령

# Bundle 유효성 검사
databricks bundle validate -t dev

# 개발 환경에 배포
databricks bundle deploy -t dev

# 프로덕션 환경에 배포
databricks bundle deploy -t prod

# 배포 상태 확인
databricks bundle summary -t dev

DABs의 장점

장점설명
환경 분리targets로 dev/staging/prod 환경을 코드로 관리
변수 치환${var.warehouse_id}로 환경별 설정 자동 적용
CI/CD 통합GitHub Actions, Azure DevOps 등과 자연스러운 연동
버전 관리Git으로 인프라 설정 포함 전체 이력 관리
권한 관리permissions로 앱 접근 권한을 코드로 선언
참고 DABs vs CLI 직접 배포: 소규모 프로젝트나 프로토타이핑에서는 databricks apps deploy CLI가 더 빠릅니다. 프로덕션 환경이나 여러 환경에 배포하는 경우에는 DABs가 훨씬 효율적입니다.