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 以及带 fabric-cicd 的 Terraform。

参考体系结构

以下企业参考架构展示了这些层如何相互关联。 开发人员工具构建在 Fabric REST API 基础层之上。 内容通过Fabric集成和交付层,包含变量库、Git集成和部署流水线。 源代码控制和CI自动化运行在GitHub或Azure DevOps中,使用CI/CD运行器。 配套的 Azure 和 Fabric 租户资源包括开发、测试和生产容量、Azure 密钥保管库、专用网络、租户设置、连接、域,以及通过分支拆分创建的父工作区和分支工作区。

企业参考架构图,展示了开发者对Fabric REST API基础层的控制工具,Fabric集成与交付层(含变量库)、Git集成和部署流水线,源控和CI自动化(GitHub)、Azure DevOps和CI/CD运行器,以及Azure和Fabric租户资源计划,具备开发、测试和生产环境容量,Azure 密钥保管库,私有网络,以及父级和分支工作区。

Fabric REST API:基础

所有 Fabric CI/CD 功能都基于 Fabric REST API,这些 API 提供了对核心操作的程序访问:项目创建、读取、更新和删除、项目定义、容量、工作区和访问管理以及作业调度。 所有高级体验,从Git集成到部署流水线,都使用这些API,所以你在门户中做的任何操作都可以自动化。

Fabric集成与交付

该层通过三种互补功能可靠地从开发到生产传输内容。

注意

CI/CD 的部分项目目前处于预览状态。 请参阅支持的 Git 集成部署流水线 功能的项目列表。

Git 集成

显示远程 Git 分支和实时工作区之间的连接的流程图。

通过使用 Fabric 的 Git 集成,多个开发者可以频繁且可靠地进行增量式工作区更新。 通过应用Git的优势和最佳实践,开发者能够协作,确保内容变更快速且可靠地进入工作区。 内容准备好后,交付流程即可将其送入部署管道进行测试和分发。

部署管道

示意图显示了部署管道中从数据到应用的数据流。

Fabric 的部署管道可自动将修改后的内容交付到测试和生产等环境。 团队在短周期内高效、高频率且可靠地发布更新。 你可以通过简单、可重复的部署流程随时发布内容。

为了在 Fabric 中获得最高效的 CI/CD 体验,建议将你的开发工作区连接到 Git,并通过部署管道从连接的工作区部署。

变量库

通过使用 变量库,你可以:

  • 统一地定义和管理所有工作区项目的用户自定义变量。
  • 在产品中的不同位置使用变量:在项定义中(例如查询),作为对其他项的引用(例如湖屋 ID),等等。
  • 在 Fabric 工作负载和项目间重复使用变量。 例如,工作区中的多个项目可以指向同一个变量。
  • 根据CI/CD的发布流程阶段调整数值。

源代码控制与CI自动化

Fabric Git 集成将工作区连接到 GitHub 或 Azure DevOps 中的 Git 仓库。 持续集成自动化(例如验证拉取请求或从 Git 更新集成工作区)可在任意 CI/CD 运行器中运行:GitHub Actions、Azure Pipelines 或自托管运行器。 服务主体支持允许这些自动化流程在没有登录用户的情况下通过 Azure DevOps 提供者进行认证。

开发者工具与基础设施即代码

开发者通过基于 Fabric REST API 构建的可脚本工具驱动平台。

Fabric命令行界面

Fabric CLIfab)是一个开源、可编写脚本的命令行工具,提供构建于 Fabric 之上的文件系统式界面。 它在 GitHub Actions 和 Azure DevOps 中运行良好,用于自动化 Git 同步、部署和项目管理。

Terraform 与 fabric-cicd

对于基础设施即代码,可以使用 Terraform 提供商的 Fabric 来配置 Fabric 环境,如工作区和容量。 使用Python库fabric-cicd,从源代码控制的仓库部署项目定义。 fabric-cicd 是 Fabric CI/CD 最广泛采用的部署工具。