Microsoft FabricにおけるCI/CDとは何ですか?

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 CI/CDプラットフォームのコンポーネントの図:Git統合、デプロイメントパイプライン、Fabric REST API、変数ライブラリ、Fabric CLI、Terraformと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 基盤レイヤー上の開発者向け制御ツール、Variable ライブラリ、Git 統合、デプロイ パイプラインを備えた Fabric 統合および配信レイヤー、GitHub、Azure DevOps、CI/CD ランナーによるソース管理と CI 自動化、さらに Dev、Test、Prod の各キャパシティ、Azure Key Vault、プライベート ネットワーク、親およびブランチ ワークスペースを含む Azure と Fabric のテナント リソース プランを示すエンタープライズ参照アーキテクチャ図。

Fabric REST API:基盤

すべてのFabric CI/CD機能はFabric REST APIに基づいて構築されており、アイテムの作成、読み取り、更新、削除、アイテム定義、容量、ワークスペースおよびアクセス管理、ジョブスケジューリングなどのコア操作へのプログラム的アクセスを提供します。 Git統合からデプロイパイプラインまで、すべての上位レベルの体験はこれらのAPIを使っているため、ポータル内で行うことはすべて自動化可能です。

Fabricの統合と配信

このレイヤーは、3つの補完的な機能を通じて、開発から本番までコンテンツを確実に処理します。

CI/CD の一部の項目はプレビュー段階です。 Git統合およびデプロイメントパイプライン機能のサポート項目一覧をご覧ください。

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で最も広く採用されている展開ツールです。