本教程是一个系列中的第四部分。 它演示如何使用 Azure Pipelines 为 Azure Service Fabric 应用程序设置持续集成和持续部署 (CI/CD)。 若要完成本教程,必须拥有一个现有的 Service Fabric 应用程序。 本教程使用本教程系列第一部分中所述的应用程序。
本教程介绍如何执行下列操作:
- 向项目中添加源代码管理
- 在 Azure Pipelines 中创建生成管道
- 在 Azure 管道中创建发布管道
- 自动部署和升级应用程序
本教程系列介绍如何:
- 构建 .NET Service Fabric 应用程序
- 将应用程序部署到远程群集
- 向 ASP.NET Core 前端服务添加 HTTPS 终结点
- 使用 Azure Pipelines 配置 CI/CD(本教程)
- 为应用程序设置监视和诊断
先决条件
在开始学习本教程之前:
- 如果没有 Azure 订阅,请创建一个试用版版订阅。
- 安装 Visual Studio 2019,包括 Azure 开发工作负载以及 ASP.NET 和 Web 开发工作负载。
- 安装 Service Fabric SDK。
- 在 Azure 中创建一个 Windows Service Fabric 群集(例如根据本教程创建)。
- 创建 Azure DevOps 组织,使你可在 Azure DevOps 中创建项目并使用 Azure Pipelines。
下载投票示例应用程序
如果你没有在本系列的第一部分中构建投票示例应用程序,可以下载该应用程序。 在命令窗口中,运行以下命令,将示例应用程序存储库克隆到本地计算机。
git clone https://github.com/Azure-Samples/service-fabric-dotnet-quickstart
准备发布配置文件
创建应用程序后,即可设置持续集成。 首先,在应用程序内准备一个发布配置文件,供在 Azure Pipelines 中执行的部署过程使用。 应当将发布配置文件配置为以你之前创建的群集为目标。 启动 Visual Studio 并打开一个现有的 Service Fabric 应用程序项目。 在“解决方案资源管理器”中,右键单击该应用程序并选择“发布”。
在您的应用项目中,选择一个用于持续集成工作流的目标配置文件,例如 Cloud。 指定群集连接终结点。 选中“升级应用程序”复选框,以便应用程序针对 Azure DevOps 中的每个部署进行升级。 选择“保存配置文件”链接将设置保存到发布配置文件,然后选择“取消”关闭对话。
将你的 Visual Studio 解决方案共享到一个新的 Azure DevOps Git 存储库
将你的应用程序源文件共享到 Azure DevOps 中的一个项目,使你可生成内部版本。
若要在 Visual Studio 2022 中创建新的 GitHub 存储库和 Azure DevOps 存储库,请在 Git 菜单上选择“Git”“创建 Git 存储库”>。
选择帐户并输入存储库名称。 选择创建并推送。
发布存储库会在你的 Azure DevOps Services 帐户中创建一个与本地存储库同名的新项目。
若要查看新创建的存储库,请转到 https://dev.azure.com/><organizationname>。 将鼠标悬停在项目名称上,然后选择Repos图标。
使用 Azure Pipelines 配置持续交付
Azure Pipelines 生成管道描述了一个工作流,其中包含一组按顺序执行的生成步骤。 若要部署到 Service Fabric 群集,请创建一个生成管道,以生成 Service Fabric 应用程序包和其他项目。 请详细了解 Azure Pipelines 生成管道。
Azure Pipelines 发布管道描述了将应用程序程序包部署到群集的工作流。 一起使用时,生成管道和发布管道将执行从开始到结束的整个工作流,即一开始只有源文件,结束时群集中会有一个运行的应用程序。 请详细了解 Azure Pipelines 发布管道。
创建生成管道
打开 Web 浏览器,前往位于 https://dev.azure.com/<organization-name>/VotingSample 的新项目。
选择“管道”选项卡,然后选择“创建管道”。
选择“使用经典编辑器”,在不使用 YAML 的情况下创建一个管道。
对于源,选择“Azure Repos Git”。 对于团队项目,请选择VotingSample。 对于“存储库”,选择“VotingApplication”。 将默认分支保留用于手动构建和计划构建。 然后选择“继续”。
在“选择模板”中,选择“Azure Service Fabric 应用程序”模板,然后选择“应用”。
在任务中,在代理池中输入Azure Pipelines。 在代理规格中,输入windows-2022。
在“触发器”下,选中“启用持续集成”复选框。 在分支筛选器中,分支说明默认为master。 选择保存并排队以手动启动生成。
在推送或签入时也会触发构建。 若要检查生成进度,请选择“生成”选项卡。在验证生成成功执行后,请定义用于将应用程序部署到群集的发布管道。
创建发布管道
选择管道选项卡,然后选择发布>新建管道。 在选择模板页上,选择Azure Service Fabric 部署模板,然后选择应用。
选择“任务”“新建”,以添加新的群集连接>。
在“新建 Service Fabric 连接”中,选择“基于证书”或“Microsoft Entra 凭据”身份验证。 指定 tcp://mysftestcluster.chinaeast2.cloudapp.chinacloudapi.cn:19000 的群集终结点(或要部署到的群集的终结点)。
对于基于证书的身份验证,添加用来创建群集的服务器证书的服务器证书指纹。 在“客户端证书”中,添加客户端证书文件的 base-64 编码。 请参阅该字段的帮助信息,了解如何获取证书的 base-64 编码表示形式。 此外,添加证书的密码。 如果没有单独的客户端证书,可使用群集证书或服务器证书。
对于 Microsoft Entra 凭据,为 服务器证书指纹 添加一个值。 在 用户名 和 密码 中,输入用于创建群集的服务器证书,以及要用于连接到该群集的凭据。
选择“保存”。
接下来,向管道添加一个生成项目,使发布管道可找到生成的输出。 选择管道>工件>添加。 在“源(生成定义)”中,选择之前创建的生成管道。 选择“添加”以保存生成工件。
启用持续部署触发器,以便在生成完成后自动创建发布。 选择构件中的闪电图标,启用触发器,然后选择保存以保存发布管道。
选择创建版本>创建以手动创建版本。 若要监视发布进度,请选择“发布”选项卡。
验证部署是否已成功且应用程序是否正在群集中运行。 打开 Web 浏览器并转到 https://mysftestcluster.chinaeast2.cloudapp.chinacloudapi.cn:19080/Explorer/。 记下应用程序版本。 在此示例中,它是 1.0.0.20170616.3。
提交并推送更改以触发发布
若要验证持续集成管道是否正常工作,请将一些代码更改签入到 Azure DevOps。
当你编写代码时,Visual Studio 会在 Git Changes 窗格的 Changes 部分跟踪项目中的文件更改。
在“更改”上,输入一条消息来描述更新,然后提交更改。
在 Git 更改 中,选择 推送(向上箭头)以更新 Azure Pipelines 中的代码。
将更改推送到 Azure Pipelines 会触发一次构建。 若要查看构建进度,请在 https://dev.azure.com/organizationname/VotingSample 上的应用程序中选择流水线选项卡。
构建完成后,会自动创建一个发布版本,并开始升级群集上的应用程序。
验证部署是否已成功且应用程序是否正在群集中运行。 打开 Web 浏览器并转到 https://mysftestcluster.chinaeast2.cloudapp.chinacloudapi.cn:19080/Explorer/。 记下应用程序版本。 在此示例中,它是 1.0.0.20170815.3。
更新应用程序
在应用程序中进行代码更改。 保存并提交更改。
应用程序升级开始时,可在 Service Fabric Explorer 中跟踪升级进度:
应用程序升级可能要花费几分钟时间才能完成。 升级完成后,应用程序将运行下一版本。 在此示例中,它将运行版本 1.0.0.20170815.4。
下一步
转到下一教程: