Databricks の CI/CD とは何ですか?
この記事は、Databricks 上の CI/CD の概要です。 継続的インテグレーションと継続的デリバリー (CI/CD) とは、自動化パイプラインを使用して、短い頻繁なサイクルでソフトウェアを開発および配信するプロセスを指します。 CI/CDソフトウェア開発では一般的ですが、データエンジニアリングやデータサイエンスでもその必要性がますます高まっています。 コードの構築、テスト、デプロイを自動化することで、開発チームは、データエンジニアリング チームやデータサイエンス チームに依然として一般的な手動プロセスよりも確実にリリースを提供できます。
、 プラットフォーム向けの複雑なデータ分析および プロジェクトの開発と展開を可能にする、 用のDatabricks DatabricksAsset Bundles CI/CDMLの使用を推奨しています。Databricksバンドルを使用すると、多くのカスタム構成を簡単に管理し、ビルド、テスト、プロジェクトのDatabricks開発、ステージング、本番運用ワークスペースへのデプロイを自動化できます。
Databricks の機械学習プロジェクトの CI/CD の概要については、 「Databricks は機械学習の CI/CD をどのようにサポートしていますか?」を参照してください。
Databricks の CI/CD パイプラインには何が含まれていますか?
Databricks アセット バンドルを使用すると、通常次のものを含む Databricks CI/CD 実装を定義し、プログラムで管理できます。
ノートブック: Databricks ノートブックは、多くの場合、 データエンジニアリング およびデータサイエンス ワークフローの重要な部分です。 ノートブックのバージョン管理を使用し、CI/CD パイプラインの一部として検証およびテストすることもできます。 ノートブックに対して自動テストを実行して、期待どおりに機能しているかどうかを確認できます。
ライブラリ: デプロイされたコードを実行するために必要なライブラリの依存関係を管理します。 ライブラリのバージョン管理を使用し、自動テストと検証に含めます。
ワークフロー: Databricks ジョブは、ノートブックまたは Spark ジョブを使用して自動化されたタスクをスケジュールおよび実行できるジョブで構成されています。
データパイプライン : データパイプラインを宣言するためのCI/CD Delta Live Tablesのフレームワークである を使用して、Databricks オートメーションにデータパイプラインを組み込むこともできます。
インフラストラクチャ: インフラストラクチャ構成には、ターゲット環境のクラスター、ワークスペース、ストレージの定義とプロビジョニング情報が含まれます。 インフラストラクチャの変更は、CI/CD パイプラインの一部として検証およびテストできるため、一貫性がありエラーがないことが保証されます。
の のステップCI/CDDatabricks
Databricks CI/CDパイプラインの一般的なフローには、次のステップが含まれます。
保存: Databricks コードとノートブックを Git などのバージョン管理システムに保存します。 これにより、時間の経過に伴う変更を追跡し、他のチーム メンバーと共同作業を行うことができます。 CI/CDGitとDatabricksGit フォルダー (Repos ) Gitを使用した テクニック と バンドルの 設定を 参照してください。
コード: ワークスペース内の Databricks ノートブックまたは外部 IDE を使用してローカルでコードと単体テストを開発します。 Databricks は、Databricks ワークスペースへの変更の開発とデプロイを容易にするVisual Studio Code 拡張機能を提供します。
Build: アセットバンドルの設定を使用して Databricks デプロイ中に特定のアーティファクトを自動的にビルドします。 アーティファクトを参照してください。さらに、 Databricks Labs の pylint プラグイン で拡張された Pylint は、Databricks ノートブックとアプリケーションコードのコーディング標準を適用し、バグを検出するのに役立ちます。
デプロイ: Azure DevOps、Jenkins、GitHub Actions などのツールと組み合わせて Databricks アセット バンドルを使用して、Databricks ワークスペースに変更をデプロイします。 Databricks Asset Bundle のデプロイ モードを参照してください。
テスト: 自動テストを開発して実行し、 pytest などのツールを使用してコードの変更を検証します。 ワークスペース APIsとの統合をテストするには、 Databricks Labs pytest プラグイン を使用してワークスペース オブジェクトを作成し、テストの終了後にクリーンアップできます。
実行: Databricks CLIをDatabricksアセット バンドルと組み合わせて使用し、 Databricksワークスペースでの実行を自動化します。 「バンドルを実行する」を参照してください。
監視: Azure Monitor や Datadog などのツールを使用して、Databricks 内のコードとワークフローのパフォーマンスを監視します。 これにより、本番運用環境で発生する問題を特定して解決できるようになります。
反復: データエンジニアリングまたはデータサイエンス プロジェクトを改善および更新するために、小規模で頻繁な反復を行います。 小さな変更は、大きな変更よりもロールバックが容易です。