Upgrade to Pro — share decks privately, control downloads, hide ads and more …

データプロダクトにおけるCI/CD: Databricks Asset Bundleとは?

データプロダクトにおけるCI/CD: Databricks Asset Bundleとは?

データプロダクトのCI/CDを管理する機能であるDatabricks Asset Bundleについて説明します。

Databricks Japan

July 17, 2024
Tweet

More Decks by Databricks Japan

Other Decks in Technology

Transcript

  1. ©2023 Databricks Inc. — All rights reserved Databricksにおけるプロジェクトの解剖学 コード: ノートブック,

    Pythonの .whl, JAR, dbt, etc. 実行環境: Databricksワーク スペース、計算資源の設定 リソース: Databricksワーク フロー、MLflowトラッキング サーバーやレジストリ、Delta Live Tables… 説明しましょう テーブルやパイプライン、機械学 習モデル、ダッシュボードを作成、 外部サービス呼び出し、etc. シンプルなレポートはシングル ノードのコンピュート上で実行され る一つのノートブックかもしれませ ん 完全なMLOpsパイプラインにお いては、MLflow、Feature Store、モデルサービングの コンポーネントが必要となる ことでしょう さまざまなコンポーネントから 構成 さまざまなデータ製品を 製造 タスクがコンポーネントを決 定
  2. ©2023 Databricks Inc. — All rights reserved プロダクションへのジャーニー commit pull

    request deploy as test merge release deploy to prod check out Devの設定 : シングルノード スケジュールなし ユーザーとして実行 … Prodの設定 : Sparkクラスター 週次のスケジュール サービスプリンシパルとして実行 … Stagingの設定 : Sparkクラスター 週次のスケジュール ユーザーとして実行 … 8
  3. ©2023 Databricks Inc. — All rights reserved ©2023 Databricks Inc.

    — All rights reserved このジャーニーを オーケストレートするには? 9
  4. ©2023 Databricks Inc. — All rights reserved Databricksプロジェクトデプロイのステップ REST APIを用いてプログラムで

    1. どこで実行したいのか? 2. 何を実行したいのか? a. コード成果物: ノートブック、PythonパッケージやJAR b. ワークフロータスク、依存関係や設定 c. リソース: DLT、MLflowエクスペリメント、etc. 3. 実行しましょう! a. コードのアップロード、リソースの作成、設定 b. ワークフローのスケジュール、実行 Workspace, Jobs API Clusters, MLflow API Jobs, Clusters API DBFS, Jobs API Jobs API Workspace API 10
  5. ©2023 Databricks Inc. — All rights reserved CI/CD: 問題を解決、本当に? 👍

    使いやすい 👍 PythonとScalaのコードを サポート 😥 汎用的なソリューションで はありません: ノートブックで はなくPython/Scalaコードのみ 😥 Labsのプロジェクト 😥 ネイティブサポートでは ありません 11 dbx: Databricks labsのプロジェクト
  6. ©2023 Databricks Inc. — All rights reserved 💪 エンジニアのサポート (Deco

    team) 💪 とてもパワフル、表現豊か 💪 汎用的: ノートブック、ダッシュボード サービスプリンシパル… 💪 ワークスペース設定のために選択可能な管理ツール 😥 データサイエンティストの課題: HCL言語 😥 データサイエンティストの課題: Terraform stateファイル 😥 データサイエンティストの課題: 完全な開発ループではなく、デプロイ のみに最適化 CI/CD: 問題を解決、本当に? Terraform 12
  7. ©2023 Databricks Inc. — All rights reserved どうすればシンプルに? 一度コードを書いたら、容易に複数ワークスペースにデプロイ •

    シンプルで理解しやすいフォーマット(YAMLなど)で全ての設定とコードをバージョン管理 • 既存のREST APIパラメーターを用いてDatabricksリソースを定義 • 環境ベースの上書きや変数を指定 • デプロイメントにおけるユーザー分離を保証 設定と一緒にデプロイする標準的かつ全体的な手段の実装 … DAB 13
  8. ©2023 Databricks Inc. — All rights reserved Databricksプロジェクトのアー ティファクト、 リソース、設定を指定する

    YAMLファイル bundle.ymlファイルを用いる Databricksアセットバンドルを 検証、デプロイ、実行 するため の機能を提供する新たな Databricks CLI バンドルは開発やCI/CD プロセスで有用です Databricksアセット バンドルとは? バンドルは何の役に立つ のか? どこでバンドルを使うのか? 15 Databricksアセットバンドル 一度コードを書けば どこでもデプロイ
  9. ©2023 Databricks Inc. — All rights reserved 詳細 リソースの設定 •

    ジョブ、DLTパイプライン、MLflow、 etc. • REST APIのスキーマに準拠 環境ベースの仕様 • 異なる環境における挙動を制御 16 名前とデフォルトの ワークスペース
  10. ©2023 Databricks Inc. — All rights reserved どのようにバンドルを使うのか? $ databricks

    bundle deploy -t “development” $ databricks bundle run pipeline –refresh-all -t “development” ★ あなたのプロジェクトのデプロイと実行、設定の 調整、変更のテスト ★ 差異をテストするために複数ワークスペースに デプロイ ★ IDE、ターミナル、Databricksからデプロイ、実行 Alice アクティブな開発の一部として 17
  11. ©2023 Databricks Inc. — All rights reserved どこでバンドルを使うのか? As part

    of CI/CD processes ★ CI/CDサーバー(GitHub Actionsなど) で実行 ★ CIやリリースパイプラインから起動 ★ サービスプリンシパルとしての実行が理 想的 commit pull request deploy as test merge release deploy to prod check out ➜ databricks bundle deploy -t “staging” ➜ databricks bundle run pipeline –refresh-all -t “staging” ➜ databricks bundle deploy -t “production” ➜ databricks bundle run pipeline –refresh-all -t “production” 18 🔗 Github Actionsのサンプル: https://docs.databricks.com/ja/dev-tools/bundles/ci-cd.html
  12. ©2023 Databricks Inc. — All rights reserved DAB: 一度コードを書いたらどこでもデプロイ •

    CI/CDとプロジェクト管理のベストプラクティスの民主化 • コードとリソース、設定のバージョン管理 • 自動化をフレンドリーに (CLI vs. 1000のRESTコール) • 自信を持ってコラボレーション、デプロイ (分離、テスト自動化、etc) • あなたのプロジェクトを定義、デプロイするために統一された方法 サマリー 19
  13. ©2023 Databricks Inc. — All rights reserved Call to Action

    • DABウォークスルーを確認: https://app.getreprise.com/launch/W68Ng9X/ • 試してみる • 質問してください 24