你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

教程:将具有 CI/CD 的应用程序部署到 Service Fabric 群集

本教程是一个系列的第四部分,介绍了如何使用 Azure Pipelines 为 Azure Service Fabric 应用程序设置持续集成和部署。 需要一个现有的 Service Fabric 应用程序,将使用在生成 .NET 应用程序中创建的应用程序作为示例。

在该系列的第三部分中,你会学习如何:

  • 向项目中添加源代码管理
  • 在 Azure 管道中创建生成管道
  • 在 Azure 管道中创建发布管道
  • 自动部署和升级应用程序

这些教程介绍以下知识:

先决条件

在开始学习本教程之前:

下载投票示例应用程序

如果未生成本教程系列的第一部分中的投票示例应用程序,可以下载它。 在命令窗口中,运行以下命令,将示例应用程序存储库克隆到本地计算机。

git clone https://github.com/Azure-Samples/service-fabric-dotnet-quickstart

准备一个发布配置文件

你已创建了一个应用程序并已将该应用程序部署到了 Azure,现在可以设置持续集成了。 首先,在应用程序中准备一个发布配置文件,供要在 Azure Pipelines 中执行的部署进程使用。 应当将发布配置文件配置为以你之前创建的群集为目标。 启动 Visual Studio 并打开一个现有的 Service Fabric 应用程序项目。 在“解决方案资源管理器”中,右键单击该应用程序并选择“发布...”。

在应用程序项目中选择一个要用于持续集成工作流的目标配置文件,例如 Cloud。 指定群集连接终结点。 选中“升级应用程序”复选框,以便应用程序针对 Azure DevOps 中的每个部署进行升级。 选择“保存”超链接将设置保存到发布配置文件,然后选择“取消”关闭对话框。

推送配置文件

将你的 Visual Studio 解决方案共享到一个新的 Azure DevOps Git 存储库

将你的应用程序源文件共享到 Azure DevOps 中的一个项目,以便可以生成内部版本。

在 Git 菜单中选择:“Git”->“创建 Git 存储库”,从 Visual Studio 2022 IDE 创建新的 GitHub 存储库和 Azure DevOps 存储库

在下拉列表中选择你的帐户,输入存储库名称,然后选择“创建并推送”按钮

创建新 Git 存储库的屏幕截图。

发布存储库会在你的 Azure DevOps Services 帐户中创建一个与本地存储库同名的新项目。

查看新建的存储库:导航到 https://dev.azure.com/\<组织名称>,将鼠标悬停在项目名称上,然后选择“存储库”图标

使用 Azure Pipelines 配置持续交付

Azure Pipelines 生成管道描述了由按顺序执行的一组生成步骤组成的工作流。 创建一个生成管道,以生成要部署到 Service Fabric 群集的 Service Fabric 应用程序包和其他项目。 请详细了解 Azure Pipelines 生成管道

Azure Pipelines 发布管道描述了将应用程序程序包部署到群集的工作流。 一起使用时,生成管道和发布管道将执行从开始到结束的整个工作流,即一开始只有源文件,结束时群集中会有一个运行的应用程序。 请详细了解 Azure Pipelines 发布管道

创建生成管道

打开 Web 浏览器并导航到新项目:https://dev.azure.com/\<组织名称>/VotingSample

选择“管道”选项卡,然后选择“创建管道”

新建管道

选择“使用经典编辑器”在没有 YAML 的情况下创建一个管道。

经典编辑器

选择“Azure Repos Git”作为源,选择“VotingSample”团队项目、“VotingApplication”存储库和“master”默认分库作为手动的和计划的生成。 然后选择“继续”。

选择存储库

在“选择模板”中,选择“Azure Service Fabric 应用程序”模板,然后选择“应用”

选择“生成模板”

在“任务”中,输入“Azure Pipelines”作为代理池,输入“windows-2022”作为代理规范

选择“任务”

在“触发器”下,选中“启用持续集成”来启用持续集成。 在“分库筛选器” 中, ,“分库规格” 默认为“master”。 选择“保存并排队” 以手动启动生成。

选择“触发器”

在推送或签入时也会触发生成。 若要检查生成进度,请切换到“生成”选项卡。在验证生成成功执行后,定义用于将应用程序部署到群集的发布管道。

创建发布管道

依次选择“管道”选项卡、“发布”、“+ 新建管道” 。 在“选择模板”中,从列表中选择“Azure Service Fabric 部署”模板,然后单击“应用” 。

选择发布模板

选择“任务”,然后选择“+新建”以添加新的群集连接

添加群集连接

在“新建 Service Fabric 连接”视图中,选择“基于证书”或“Microsoft Entra 凭据”身份验证。 指定 tcp://mysftestcluster.southcentralus.cloudapp.azure.com:19000 群集终结点(或要部署到的群集的终结点)。

对于基于证书的身份验证,添加用来创建群集的服务器证书的服务器证书指纹。 在“客户端证书”中,添加客户端证书文件的 base-64 编码。 有关如何获取证书的 base-64 编码表示形式的信息,请参阅有关该字段的帮助弹出项。 还需要添加证书的密码。 如果没有单独的客户端证书,可以使用群集或服务器证书。

对于 Microsoft Entra 凭据,请添加用来创建群集的服务器证书的服务器证书指纹,并在“用户名”和“密码”字段中添加要用来连接到群集的凭据。

选择“保存”。

接下来,向管道添加一个生成项目,以便发布管道可以找到生成输出。 依次选择“管道”和“项目”->“+添加”。 在“源(生成定义)” 中,选择之前创建的生成管道。 选择“添加”以保存生成工件

添加项目

启用一个持续部署触发器,以便在生成完成时自动创建发布。 选择该工件中的闪电图标,启用触发器,然后选择“保存”以保存发布管道。

启用触发器

选择“创建发布”->“创建”以手动创建发布。 可以在“发布” 选项卡中监视发布进度。

验证部署是否已成功且应用程序是否正在群集中运行。 打开 Web 浏览器并导航到 https://mysftestcluster.southcentralus.cloudapp.azure.com:19080/Explorer/。 记下应用程序版本。 在此示例中,它是 1.0.0.20170616.3

提交并推送更改,触发发布

通过将一些代码更改签入到 Azure DevOps 来验证持续集成管道是否正常工作。

当你编写代码时,Visual Studio 会在“Git 更改”窗口的“更改”部分跟踪项目的文件更改

在“更改”视图中添加一条消息来描述你的更新,然后提交更改。

全部提交

在“Git 更改”窗口中,选择“推送”按钮(向上箭头)来更新 Azure Pipelines 中的代码

推送更改

将更改推送到 Azure Pipelines 会自动触发生成。 若要检查生成进度,请切换到 https://dev.azure.com/organizationname/VotingSample 中的“管道”选项卡

生成完成后,会自动创建一个发布,并开始升级群集上的应用程序。

验证部署是否已成功且应用程序是否正在群集中运行。 打开 Web 浏览器并导航到 https://mysftestcluster.southcentralus.cloudapp.azure.com:19080/Explorer/。 记下应用程序版本。 在此示例中,它是 1.0.0.20170815.3

在浏览器窗口中运行的 Service Fabric Explorer 中的 Voting 应用屏幕截图。突出显示了应用版本“1.0.0.20170815.3”。

更新应用程序

在应用程序中进行代码更改。 按照前面的步骤保存并提交更改。

在应用程序升级开始后,可以在 Service Fabric Explorer 中观察升级进度:

Service Fabric Explorer 中的 Voting 应用的屏幕截图。突出显示了状态消息“正在升级”和消息“升级正在进行”。

应用程序升级可能要花费几分钟时间才能完成。 当升级完成后,应用程序将运行下一版本。 在本示例中为 1.0.0.20170815.4

在浏览器窗口中运行的 Service Fabric Explorer 中的 Voting 应用屏幕截图。突出显示了更新的应用版本“1.0.0.20170815.4”。

后续步骤

在本教程中,你了解了如何执行以下操作:

  • 向项目中添加源代码管理
  • 创建生成管道
  • 创建发布管道
  • 自动部署和升级应用程序

转到下一教程: