Databricks での CI/CD
継続的インテグレーションと継続的デリバリー (CI/CD) とは、自動化パイプラインを使用して、ソフトウェアを短時間かつ頻繁なサイクルで開発および配信するプロセスを指します。CI/CDはソフトウェア開発に共通するものであり、データエンジニアリングやデータサイエンスにおいても必要になってきています。コードのビルド、テスト、デプロイを自動化することで、開発チームは手動のプロセスよりも確実にリリースを提供できます。
CI/CD パイプラインの開発には共通のツールを使用できますが、実装とアプローチは、各組織のソフトウェア開発ライフサイクルの固有の側面により、組織によって若干異なる場合があります。このページでは、CI/CD でDatabricks するための次のアプローチと、各アプローチの長所と短所について説明します。
Databricks での機械学習プロジェクトの CI/CD の概要については、「 Databricks で機械学習の CI/CD をどのようにサポートするか」を参照してください。
Databricks アセット バンドル (推奨)
Databricks アセット バンドルは 、Databricks での CI/CD に推奨されるアプローチです。Databricks アセット バンドルを使用して、ジョブやパイプラインなどの Databricks リソースをソース ファイルとして記述し、それらを他のアセットと共にバンドルして、デプロイ可能なプロジェクトのエンドツーエンドの定義を提供します。これらのファイルのバンドルはソース制御でき、CI/CD などの外部GitHub Actions 自動化を使用してデプロイをトリガーできます。
長所 | 短所 |
---|---|
|
|
本番運用 Git フォルダ
Databricksアセットバンドルをまだ採用する準備ができていないが、コードをソース制御したい場合は、本番運用 Git フォルダを設定できます。次に、GitHub Actions などの外部 CI/CD ツールを使用してマージ時に Git フォルダーをプルするか、外部 CI/CD パイプラインにアクセスできない場合は、ワークスペース内の Git フォルダーにプルするスケジュールされたジョブを作成します。
長所 | 短所 |
---|---|
|
|
Git とジョブ
ジョブのCI/CDのみが必要な場合は、 Git with ジョブを使用すると、一部のジョブタイプでリモートGitリポジトリをソースとして使用するように設定できます。ジョブの実行が開始されると、 Databricks はリモートリポジトリのスナップショットコミットを取得し、ジョブ全体が同じバージョンのコードに対して実行されるようにします。
長所 | 短所 |
---|---|
|
|
その他の CI/CD の推奨事項
選択した CI/CD アプローチに関係なく、 サービスプリンシパル for CI/CD. サービスプリンシパル for CI/CDを参照してください。
また、Databricks では、Databricks Terraform プロバイダー を使用して、Databricks ワークスペースと関連するクラウド インフラストラクチャを管理することもお勧めします。
関連リンク
Databricks資産とデータのライフサイクルの管理の詳細については、CI/CD ツールとデータパイプライン ツールに関する次のドキュメントを参照してください。
領域 | これらのツールは、次のような場合に使用します。 |
---|---|
CI/CD のベストプラクティスとワークフローを使用して、Databricks ジョブ、DLT パイプライン、MLOps スタックをプログラムで定義、デプロイ、実行します。 | |
Terraform を使用して、Databricks のワークスペースとインフラストラクチャをプロビジョニングおよび管理します。 | |
GitHub と Databricks の Git フォルダーを使用して、ソース管理と CI/CD ワークフローを行います。 | |
GitHub Actions用に開発されたDatabricks CI/CDを ワークフローに含めます。 | |
Jenkins を使用する Databricks の CI/CD パイプラインを開発します。 | |
Apache Airflow を使用するデータパイプラインを管理およびスケジュールします。 | |
CI/CDシステムでは、ユーザーではなくサービスプリンシパルを使用します。 |