Microsoft Fabricにおける継続的インテグレーションおよび継続的デリバリー(CI/CD)は、開発チームが迅速かつ信頼性を持ってコンテンツを構築、レビュー、リリースするための標準化された方法を提供します。 手動更新の代わりに、チームはソース管理を通じて頻繁に変更を統合し、自動化パイプラインを通じて提供することで、新機能やバグ修正を迅速かつ安全に本番環境に届けます。
Fabric CI/CDプラットフォームはFabric REST APIを基盤とし、ソース管理、配信、設定、開発者ツールを一つの統合された体験にまとめています。 この記事の残りはプラットフォームを層ごとに解説します。
Fabric CI/CDプラットフォームの概要
Fabric CI/CDプラットフォームは、Fabric REST APIの基盤の上に構築された複数のコア機能にまたがっています。
- Git統合 - ワークスペースをAzure DevOpsまたはGitHubのGitリポジトリと同期し、サービスプリンシパルサポートを利用できます。
- デプロイメントパイプライン - 構成ルールやコンテンツ比較を用いて、開発、テスト、本番の各段階でコンテンツを推進します。
- Fabric REST API - アイテムCRUD、アイテム定義、容量、ワークスペース、アクセス、ジョブ操作の基盤層です。
- 変数ライブラリ - コードとして構成され、CI/CDの各ステージ値セットを持ち、APIまたはUIを通じて管理されます。
- Fabric CLI - オープンソースでスクリプト可能なファイルシステムに似たコマンドラインツールで、GitHub ActionsやAzure DevOpsに対応しています。
- TerraformおよびFabric-CICD - 環境向けのコードとしてのインフラストラクチャ。ここで最も広く採用されている展開ツールはFabric-cicdです。
リファレンス アーキテクチャ
以下のエンタープライズ参照アーキテクチャは、これらのレイヤーがどのように組み合わさっているかを示しています。 開発者ツールはFabric REST APIの基盤層に基づいて構築されています。 コンテンツはVariableライブラリ、Git統合、デプロイパイプラインを含むFabricの統合および配信層を経由します。 ソース管理とCI自動化はGitHubまたはAzure DevOpsで、CI/CDランナーで動作します。 サポートするAzureおよびFabricのテナントリソースには、Dev、Test、Prodの各容量、Azure Key Vault、プライベートネットワーク、テナント設定、接続、ドメイン、そして分岐によって作成された親および分岐ワークスペースが含まれます。
Fabric REST API:基盤
すべてのFabric CI/CD機能はFabric REST APIに基づいて構築されており、アイテムの作成、読み取り、更新、削除、アイテム定義、容量、ワークスペースおよびアクセス管理、ジョブスケジューリングなどのコア操作へのプログラム的アクセスを提供します。 Git統合からデプロイパイプラインまで、すべての上位レベルの体験はこれらのAPIを使っているため、ポータル内で行うことはすべて自動化可能です。
Fabricの統合と配信
このレイヤーは、3つの補完的な機能を通じて、開発から本番までコンテンツを確実に処理します。
注
CI/CD の一部の項目はプレビュー段階です。 Git統合およびデプロイメントパイプライン機能のサポート項目一覧をご覧ください。
Git 統合
FabricのGit連携を活用することで、複数の開発者が頻繁かつ確実にワークスペースのインクリメンタル更新を行うことができます。 Gitの利点とベストプラクティスを適用することで、開発者は協力し、コンテンツの変更が迅速かつ確実にワークスペースに届くようにします。 コンテンツが準備できれば、配信プロセスはそれをデプロイパイプラインに送り、テストや配布を行います。
デプロイメントパイプライン
Fabricのデプロイメントパイプラインは、テストや本番環境への修正コンテンツの配信を自動化します。 チームは短サイクルで高速かつ頻繁かつ信頼性の高い更新を行います。 シンプルで繰り返し可能な展開プロセスで、いつでもコンテンツをリリースできます。
Fabricで最も効率的なCI/CD体験を得るために、開発者ワークスペースをGitに接続し、デプロイパイプラインを使って接続されたワークスペースからデプロイしてください。
変数ライブラリ
変数ライブラリを使用することで、以下が可能です:
- すべてのワークスペース項目に対してユーザー定義変数を統一的に定義・管理します。
- 変数は製品のさまざまな場所で活用できます。クエリなどのアイテム定義や、lakehouse IDなど他のアイテムへの参照として。
- Fabricのワークロードやアイテム間で変数を再利用します。 例えば、ワークスペース内の複数のアイテムが同じ変数を参照することができます。
- CI/CDのリリースパイプライン段階に基づいて値を調整してください。
ソース制御およびCI自動化
Fabric Git統合は、ワークスペースをGitHubまたはAzure DevOpsのGitリポジトリに接続します。 プルリクエストの検証やGitからの統合ワークスペースの更新などの継続的統合自動化は、GitHub Actions、Azure Pipelines、またはセルフホスト型ランナーなど、あらゆるCI/CDランナーで動作します。 サービスプリンシパルサポートにより、これらの自動化されたフローはサインインしたユーザーなしでAzure DevOpsプロバイダーと認証できます。
開発者向けツールとコードとしてのインフラストラクチャ
開発者はFabric REST APIを基盤としたスクリプト可能なツールを通じてプラットフォームを駆動します。
Fabric コマンドラインインターフェース (CLI)
Fabric CLI(fab)は、ファイルシステムのようなインターフェースを備えたオープンソースのスクリプト可能なコマンドラインツールで、Fabric上に置かれています。 GitHub ActionsやAzure DevOpsでGitの同期、デプロイ、アイテム管理の自動化にうまく機能します。
Terraform と fabric-cicd
インフラストラクチャ・アズ・コードの場合は、Microsoft FabricのTerraformプロバイダーを使ってワークスペースやキャパシティなどのFabric環境をプロビジョニングします。 Pythonライブラリであるfabric-cicdを使って、ソース管理リポジトリからアイテム定義をデプロイしてください。 fabric-cicdは、Fabric CI/CDで最も広く採用されている展開ツールです。