跳至主要内容

Azure DevOps 教程:构建、测试与部署应用

本教程带您上手 Azure DevOps,让 CI/CD 前所未有地简单。
· 15分钟 阅读

使用 AI 探索

您刚刚写完一段出色的代码或数据转换脚本,准备部署时却陷入混乱——手动测试、部署错误、团队成员还在使用过时的代码版本。是否似曾相识?这正是 Azure DevOps 大显身手的地方。

从头到尾,开发软件产品所需的一切,Azure DevOps 都已打包提供。

本教程将教您如何设置 Azure DevOps 环境、使用 Azure Repos 进行版本控制、创建与管理 CI/CD 流水线、在 Azure Boards 中跟踪与管理工作项、将 Azure DevOps 与其他工具集成、在 Azure DevOps 中进行监控与报告,以及 Azure DevOps 的最佳实践。

什么是 Azure DevOps?

Azure DevOps 是微软提供的基于云的一套开发工具,可简化软件开发、协作与部署流程。它提供版本控制、持续集成/持续部署(CI/CD)、工作跟踪等功能。

Azure DevOps 具备良好的可扩展性,与 Azure 及其他云平台无缝集成,并促进团队协作。无论是小型项目还是大型企业应用,Azure DevOps 都能满足需求。

这是 Azure DevOps 界面,展示了项目概览的主控制台。屏幕显示了 Boards、Repos、Pipelines 和 Artifacts 等选项卡与选项。您可以看到项目活动摘要,包括最近的提交、工作项和流水线运行。直观的布局有助于您高效浏览与管理项目的各个方面。

Azure DevOps 界面:主控制台提供项目概览。

Azure DevOps 由一套服务组成,旨在帮助团队高效规划、开发、测试与交付软件。它不只是为开发者而设——数据从业者也可用它来管理代码、自动化工作流并高效协作。Azure DevOps 让您在其核心服务之间建立连接并开展协作。

Azure DevOps 的核心服务包括:

Service

Purpose

Azure Boards

Azure Boards 促进敏捷项目管理,包括迭代与待办列表监控,并通过可配置的平台支持敏捷方法,用于管理工作项与跟踪任务、问题与用户故事。

Azure Repos

Azure Repos 提供版本控制工具(Git/TFVC),用于管理代码、跟踪变更,并为任意规模项目创建快照,实现高效的版本控制。

Azure Pipelines

Azure Pipelines 通过 CI/CD 自动化构建、测试与部署,支持所有主流语言和项目类型,实现持续集成、测试与交付。

Azure Test Plans

Azure Test Plans 为计划性的手动测试、用户验收测试、探索性测试与干系人反馈提供强大工具,支持用例管理与执行。

Azure Artifacts

Azure Artifacts 提供从单一源管理依赖项的更简便方式。它们作为仓库,用于在团队内部或公开存储、管理与共享软件包。

如果您刚开始接触 Azure,不妨看看我们的互动课程 Understanding Microsoft Azure。您还应查看我们的Microsoft Azure Fundamentals 学习路径,帮助您准备通过 Azure 认证。

Azure DevOps 的特性

了解了 Azure DevOps 的基本情况后,我们来回顾一下它的关键特性。为什么要使用 Azure DevOps?以下是一些亮点:

  • 协作:Azure DevOps 通过共享代码库、看板与流水线让团队紧密协作,在各类项目中实现顺畅配合。
  • 版本控制:Azure DevOps 支持 Git,您与团队可以监控每一次变更,从而管理拉取与合并请求、跟踪改动等。
  • 自动化工作流:使用 Azure DevOps 自动化构建、测试与部署,以更快且更可靠地发布,同时节省时间并减少错误。
  • 可扩展性:Azure DevOps 具备出色的可扩展能力,可随团队规模与需求增长而扩展,适配任意体量的用户与项目。
  • 集成性:Azure DevOps 与 Azure、GitHub 及其他云平台与工具无缝集成,保障流程顺畅,同时确保代码库安全与基于角色的访问控制。

以我的经验来看,Azure DevOps 是希望实施最佳 DevOps 实践的公司与个人的首选。原因在于它营造持续改进与协作的文化,并提供相应的工具支撑。

您是 DevOps 初学者吗?在 DevOps Concepts 课程 中探索驱动现代软件开发与部署的关键概念。

设置您的 Azure DevOps 环境

要使用 Azure DevOps 环境,首先需完成基础设置,以促进团队协作并贯穿端到端的开发流程。

创建 Azure DevOps 帐户

在使用 Azure DevOps 之前,您需要创建一个帐户。操作步骤如下:

  • 访问 Azure DevOps 网站:前往 Azure DevOps 开始注册流程。点击 Get Started with Azure。

这是 Azure DevOps 网站界面,帮助您开始使用 Azure DevOps。

  • 使用 Microsoft 帐户登录:如果您已有 Microsoft 帐户(如 Outlook、Xbox、Office 365),可直接登录;若没有,需创建一个免费的 Microsoft 帐户。
    • 点击 Sign in 或 Create one! (Sign up)。
    • 使用您的 Microsoft 凭据或其他登录方式进行登录。
    • 点击 Next。

登录您的 Microsoft 帐户以开始。

点击“Sign In”按钮,若需注册新帐户则选择“Create one!”。

输入 Microsoft 凭据或选择其他登录方式。

最后点击“Next”继续。

  • 开始设置流程:勾选复选框并点击 Continue。登录后系统会要求您创建一个新组织。您的 Azure DevOps 团队与项目都将归属该组织。

按以下步骤开始设置流程:

勾选复选框以同意条款。

然后点击“Continue”继续。

在 Azure DevOps 中创建组织

Azure DevOps 的组织是承载您所有项目与代码库的地方,也是在此管理团队、权限与计费。

  • 为组织命名:选择一个唯一的组织名称。这很重要,因为它将作为您的 Azure DevOps URL 的一部分(例如 https://dev.azure.com/yourorganization )。
  • 选择区域:Azure DevOps 需要您选择数据存储的区域。默认区域对大多数人都适用,但如果您有特定要求(如合规),可以选择更靠近用户群的其他区域(如美国)。
  • 确认并继续:填写完这些信息后点击 Continue。您的组织已准备就绪,系统会将您带到 Azure DevOps 主门户!

在 Azure DevOps 中创建组织非常简单。步骤如下:

输入新组织的名称。

选择托管该组织的首选区域。

确认选择并点击“Continue”完成设置。

浏览 Azure DevOps 界面

创建组织后,您将进入 Azure DevOps 门户。主要服务分区包括 Overview、Boards、Repos、Pipelines、Test Plans 与 Artifacts。

创建组织后浏览 Azure DevOps 界面非常容易。

系统会将您带到 Azure DevOps 门户,您将看到 Overview、Boards、Repos、Pipelines、Test Plans 和 Artifacts 等分区。

这些分区有助于您高效导航并管理项目。

Overview 提供摘要,Boards 处理工作项,Repos 存放代码,Pipelines 自动化构建与部署,Test Plans 管理测试,Artifacts 负责包管理。

这个界面一开始可能让人眼花缭乱,但 Azure DevOps 的核心功能可以归纳为版本控制、CI/CD 与项目管理。

创建新项目

现在您的帐户与组织都已设置完成,我们来创建您的第一个 Azure DevOps 项目。

设置新项目

  • 点击 "New Project":在 Azure DevOps 门户中点击 New Project 按钮,以设置您的首个项目。
  • 填写项目信息:
    • Project name:为您的项目选择一个名称(例如“yourproject”)。
    • Description(可选):简要描述该项目的内容。
    • Visibility:选择项目公开或私有。 公开项目任何人可查看,适合开源项目;私有项目安全可控,仅受邀成员可访问。
  • 创建项目:输入项目信息并选择版本控制系统后,点击 Create project。您的项目已设置完成!

在 Azure DevOps 中设置新项目非常简单:

输入项目详情,包括项目名称、简要描述,并设置可见性(公开或私有)。

最后点击“Create the Project”开始。

  • 版本控制系统:Azure DevOps 提供两种版本控制系统:Git 与 Team Foundation Version Control(TFVC)。
    • Git 是更现代、在开发者社区广泛使用的分布式版本控制系统,适用于大多数项目。
    • TFVC 是集中式版本控制系统,使用较少,常见于遗留项目。

在 Azure DevOps 中选择版本控制系统是管理代码的关键。以下是两个选项:

Git:现代且广泛使用的分布式版本控制系统,适合大多数项目。

TFVC(Team Foundation Version Control):集中式版本控制系统,较少使用,通常用于遗留项目。

该直观布局可帮助您选择最适合项目需求的系统。

根据我的经验,如果您刚起步或没有选择 TFVC 的特定理由,建议选择 Git。

准备好掌控您的代码了吗?学习 Git,开始像专业人士一样管理项目。

使用 Azure Repos 进行版本控制

现在您的项目已就绪,我们深入了解并探索一些关键功能。

设置 Git 代码库

  • 前往 Repos:在左侧菜单中选择 Repos 选项卡。您将在此管理代码。

使用 Azure Repos 进行版本控制很简单。如下设置 Git 代码库:

导航到 Repos:在左侧菜单中点击“Repos”选项卡。

管理您的代码:此区域用于管理与组织代码。

用户友好的界面让您的版本控制管理体验顺畅。

  • 克隆代码库:您可以使用 Repos 区域中的 URL 将代码库克隆到本地计算机。例如:
# This command clones the specified Git repository from Azure DevOps to your local machine.
git clone https://[email protected]/yourorganization/yourproject/_git/yourrepo

我们把上述命令拆解一下:

  • 将 yourorganization 替换为您组织的名称。
  • 将 yourproject 替换为您项目的名称。
  • 将 yourrepo 替换为您代码库的名称。

下面是我在 Repos 区域中的 URL:

将代码库克隆到您的计算机或本地设备,以便在本地开始处理代码。

此命令会从 Azure DevOps 下载代码库副本到本地,便于您高效管理与更新代码。

  • 推送您的代码:本地克隆完成后,您可以添加代码并将其推送回 Azure DevOps。
git add .
git commit -m "my first commit"
git push origin main

恭喜!您已经在 Azure Repos 完成了首次提交。

分支与合并

在软件开发中,分支允许您在不影响主项目的情况下独立开发功能或修复。合并则是将一个分支的更改引入另一个分支的过程。

  • 在本地创建分支:要开始开发某个功能,先创建新分支:
git checkout -b feature-branch
  • 将分支推送到 Azure DevOps:在新分支中完成更改后,将其推送到 Azure DevOps:
git push origin feature-branch

在分支之间切换

要在分支之间切换,请使用以下命令:

git checkout main

或切换到其他分支:

git checkout feature-branch

删除分支

功能合并后,您可以在本地与远程删除该分支:

  • 删除本地分支:
git branch -d feature-branch
  • 删除远程分支:
git push origin --delete feature-branch

通过拉取请求合并分支

  • 创建拉取请求:当功能分支准备合并到主分支时,前往 Azure DevOps 的 Pull Requests 区域并点击 New Pull Request。

轻松创建拉取请求:

当功能分支准备好合并到主分支时,前往 Azure DevOps 的 Pull Requests 区域。

点击 New Pull Request 开始合并流程。

直观的界面确保代码变更合并顺畅。

  • 审查并合并:审查更改并点击 Complete,将更改合并到主分支。
  • 解决冲突:如果存在合并冲突(即同一代码位置有不同修改),需手动解决。Azure DevOps 会通过高亮冲突区域引导您完成处理。

管理拉取请求

拉取请求是代码审查与协作的关键环节。它允许团队成员在更改合并入主分支之前进行审阅。

创建拉取请求

  • 创建拉取请求:推送功能分支后,导航到 Pull Requests 并点击 New Pull Request。选择源分支(如 feature-branch)与目标分支(如 main)。
  • 描述拉取请求:清晰说明该拉取请求包含的更改,方便审阅者了解关注点。

审阅与批准拉取请求

  • 请求评审:添加团队评审者对代码变更进行审查。
  • 批准并合并:拉取请求获批后,点击 Complete 将其合并到主分支。

在 Azure DevOps 中创建拉取请求:

创建拉取请求:推送功能分支,进入 Pull Requests,点击 New Pull Request。选择源分支(如 feature-branch)与目标分支(如 main)。

描述拉取请求:清楚解释更改内容,帮助审阅者理解。

请求评审:添加团队评审者对代码进行检查。

批准并合并:获批后点击 Complete 将其合并到主分支。

创建与管理 CI/CD 流水线

Azure DevOps 同样包含 Pipelines,用于自动化构建、测试与部署流程。

什么是 Azure DevOps 中的流水线?

Azure DevOps 的流水线是一组自动化流程,帮助您:

  • 构建代码(构建流水线)
  • 进行测试
  • 将其部署到不同环境(发布流水线)

这些流水线确保您的代码始终可部署,并可自动进行测试。

创建构建流水线

  • 前往 Pipelines:在 Azure DevOps 项目中,点击 New Pipeline(位于 Pipelines 分区)。

在 Azure DevOps 项目中导航到 Pipelines 分区:

打开您的 Azure DevOps 项目。

在左侧菜单点击 Pipelines。

此分区可高效管理构建与发布流水线。

在 Azure DevOps 项目中导航到 Pipelines:

打开 Azure DevOps 项目。

在左侧菜单点击 Pipelines 选项卡。

在 Pipelines 分区点击 New Pipeline 创建新流水线。

该流程能帮助您高效管理并自动化构建与发布工作流。

  • 选择来源:选择 Azure Repos Git 作为来源并选择您的代码库。

为您的流水线选择来源:

选择 Azure Repos Git 作为来源。

然后选择您要使用的代码库。

该流程可确保正确连接到代码库,便于高效管理。

  • 配置流水线:您可以使用 YAML 编辑器或 经典编辑器 进行配置。我们选择 YAML,这是一种基于代码的流水线定义方式。

以一个基础的 Node.js 应用为例。下面的 azure-pipelines.yml 文件包含 Azure DevOps 自动创建的 YAML 代码。

# Node.js
# Build a general Node.js project with npm.
# Add steps that analyze code, save build artifacts, deploy, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/javascript

trigger:
- main

pool:
  vmImage: ubuntu-latest

steps:
- task: NodeTool@0
  inputs:
    versionSpec: '20.x'
  displayName: 'Install Node.js'

- script: |
    npm install
    npm run build
  displayName: 'npm install and build'
  • 保存并运行:保存流水线并运行,以验证一切是否正常。

运行构建流水线

设置好构建流水线后,您可以通过点击 Run Pipeline 手动运行。流水线将依次经过“安装依赖”“运行测试”“构建”等阶段。

您可以查看每一步的日志,以排查构建失败。Azure DevOps 提供详细日志,帮助您定位问题。

设置持续部署(CD)

  • 前往 Releases:在 Pipelines 分区下,点击 Releases,然后点击 New Pipeline。

在 Azure DevOps 中导航到 Releases:

从左侧菜单进入 Pipelines 分区。

点击 Releases。

用户友好的界面可帮助您高效管理发布流水线。

在 Azure DevOps 中创建发布流水线十分简单:

从左侧菜单进入 Pipelines 分区。

点击 Releases。

然后选择 New Pipeline 开始设置发布流程。

用户友好的界面帮助您高效管理并自动化发布工作流。

  • 添加工件(Artifact):将构建流水线生成的工件链接为发布流水线的来源。

在发布流水线中添加工件:

在发布流水线设置中,前往 Add an artifact 区域。

将构建流水线的工件链接为发布流水线的来源。

这样可确保发布流程能够使用构建输出,便于管理与部署应用。

  • 部署到环境:设置要部署应用的环境,如 Staging 与 Production。

轻松部署到不同环境:

设置要部署应用的环境,如 Staging 与 Production。

该流程有助于在正式上线前高效完成测试与发布,确保应用在不同场景下均能正常运行。

自动化部署

Azure DevOps 可在每次触发新构建时自动部署应用。您可以通过添加触发器并定义部署到 Azure、AWS 等平台的任务来完成设置。

使用 Azure Boards 管理工作项

Azure Boards 是 Azure DevOps 项目管理的核心。它通过任务(Tasks)、缺陷(Bugs)、用户故事(User Stories)与史诗(Epics)等功能,帮助团队在整个软件开发生命周期内规划、跟踪与讨论工作。

无论采用 Scrum 还是看板(Kanban),Azure Boards 都能帮助您可视化、优先级化并高效管理工作。

我们按步骤来看看。

创建与管理工作项

Azure Boards 允许您使用工作项来管理任务、缺陷与功能。

  • 创建工作项:前往 Boards,选择 Work items,并点击 New Work Item。

在 Azure DevOps 中创建与管理工作项非常简单:

Azure Boards:使用工作项管理任务、缺陷与功能。

创建工作项:进入 Boards,选择 Work items,并点击 New Work Item。

用户友好的界面帮助您高效管理与跟踪项目任务与问题。

您可以创建:

  • Epic:覆盖多个小项的大型项目或广泛工作。
  • Issue:需要修复的具体问题或缺陷。
  • Task:一项可执行的具体工作。

在“New Work Item”的下拉菜单中,您可以创建以下类型:

Epic:覆盖多个小项的大型项目或广泛工作。

Issue:需要修复的具体问题或缺陷。

Task:一项需要完成的可执行工作。

这个简单的流程帮助您在 Azure Boards 中高效管理项目的不同方面。

  • 我们选择 Epic。
    • 填写 Title、Description、Priority、Start Date 与 Target Date。点击 Save。

我们来创建一个 Epic 工作项:

在下拉菜单中选择 Epic。

填写详情:Title、Description、Priority、Start Date 与 Target Date。

点击 Save 完成创建。

这有助于您在 Azure DevOps 中高效管理与跟踪大型项目。

  • 分配工作项
    • 打开刚创建的工作项。
    • 在 Assign people 字段中选择一位团队成员。
    • 选择 Add tag 以便更好分类。点击 Save。

轻松分配工作项:

打开您刚创建的工作项。

在“Assign people”字段选择团队成员。

可选地,选择“Add tag”以便更好分类。

点击 Save 完成分配。

该流程帮助您在 Azure DevOps 中高效分配任务并管理团队。

  • 跟踪进度
    • 使用 State 字段更新状态(如 New、Active、Resolved、Closed)。
    • 添加评论或附件以提供更新或背景信息。

根据我的经验,当分配了明确负责人并设定合理截止日期时,团队更具责任感且更专注。

设置迭代与待办列表

敏捷迭代与待办列表是迭代式开发的关键。如下设置:

  • 创建 Sprints:迭代(Sprint)是有时间边界的工作周期。可通过 Boards > Sprints 创建新迭代(如 “Sprint 1”)。

在 Azure DevOps 中设置迭代与待办列表对敏捷开发至关重要。操作如下:

创建 Sprints:迭代是有时间边界的工作周期。可通过 Boards 然后选择 Sprints 进行设置。

该流程能帮助您高效管理迭代开发与跟踪项目进度。

创建 Sprints 并轻松添加新迭代:

要设置迭代,请前往 Boards 然后进入 Sprints。

您可以通过为迭代命名(如“Sprint 1”)来新增迭代,以更有效组织工作。

用户友好流程可确保高效管理迭代周期。

  • 点击 Configure Team Settings 并定义迭代时长(如 2 周)。

点击“Configure Team Settings”以在 Azure DevOps 中自定义与管理团队偏好和设置。

此选项可帮助您将项目环境调整为更符合团队需求,从而实现高效协作与流程管理。

通过选择 Backlog navigation levels 与 Working days 来自定义设置:

使用旁边的复选框进行选择。

该流程可帮助您将项目环境调整到最适合团队的状态。

  • 为迭代添加开始与结束日期。

设置迭代时,添加开始与结束日期:

输入迭代的开始日期与结束日期。

该流程可帮助您在 Azure DevOps 中高效规划与管理迭代。

  • 管理产品待办:在 Backlog 视图中,您可以按优先级组织工作项。前往 Boards > Backlogs。

轻松管理产品待办:

在 Backlog 视图中,您可以按优先级组织工作项。

导航至 Boards,然后选择 Backlogs。

用户友好的界面有助于您在 Azure DevOps 中高效设置任务优先级。

  • 拖放工作项至待办列表中以设置优先级。

轻松设置工作项优先级:

只需将工作项拖放到待办列表中即可设置其优先级。

该直观特性能帮助您在 Azure DevOps 中高效管理与组织任务。

  • 可视化进度:Azure DevOps 帮助您可视化工作项并在各阶段间移动(如 To Do、Doing、Done)。使用 Board view 查看按列展示的工作项。

轻松可视化进度:

Azure DevOps 帮助您查看工作项状态,并将其在不同阶段(如 To Do、Doing、Done)之间移动。

使用 Board 视图以列形式查看工作项。

此功能可帮助您在 Azure DevOps 中高效跟踪与管理任务进度。

  • 自定义列以匹配您团队的工作流。

轻松配置看板设置:

通过调整设置,自定义看板视图以满足您的工作流与团队需求。

该功能可帮助您优化看板以高效管理任务,并更好地可视化项目进度。

自定义列以符合您团队的工作流:

调整看板列以匹配团队的流程与工作方式。

该功能可帮助您在 Azure DevOps 中创建更高效且更贴合的工作流。

根据我的经验,如果待办列表组织良好且对下一步工作明确清晰,能有效减少团队的停滞与困惑。

将工作项关联到提交

将工作项与提交关联有助于跟踪每个任务或缺陷对应的代码更改。操作如下:

  • 关联到提交:可通过两种方式完成:在 Azure DevOps 控制台中或在本地开发环境中。
    • Azure DevOps 控制台:在 Git 提交消息中包含 #WorkItemID(例如 #1)。点击 Commit。Azure DevOps 会自动将提交与工作项关联。

将工作项关联到提交:

在 Git 提交消息中包含 #WorkItemID(如 #1)。

点击 Commit。

Azure DevOps 会自动将提交与工作项关联,确保变更跟踪顺畅。

  • 本地开发环境:
    • 在本地开发环境中打开终端或命令行。完成代码修改并准备提交。
    • 在提交消息中使用井号包含工作项 ID(如:Fixed bug in login analytics #1)。
    • 运行相应命令完成提交:
git commit -m "Fixed bug in login analytics #1"
  • 将提交推送到远程代码库(Azure Repo):
git push origin feature-branch
  • 关联到拉取请求:
    • 创建拉取请求时,在 Description 中提及工作项 ID。
    • 点击 Create. Azure DevOps 将自动把拉取请求与工作项关联。

关联至拉取请求:

创建拉取请求时,在描述中提及工作项 ID。

点击 Create。

Azure DevOps 将自动把拉取请求与工作项关联,实现无缝跟踪与管理。

根据我的经验,这种关联可提供完整的可追溯性,便于查看哪些代码更改解决了特定任务或缺陷。请记住,您可以在工作项的 Development 区域查看关联的提交与 PR。

与其他工具集成

当 Azure DevOps 与 GitHub 及各类云平台集成时,优势更为明显。我们来看看如何设置。

将 Azure DevOps 与 GitHub 集成

将 Azure DevOps 连接到 GitHub 可简化协作与 CI/CD 自动化。步骤如下:

  • 将 GitHub 连接到 Azure Pipelines:
    • 前往 Pipelines > Create Pipeline。

将 Azure DevOps 连接至 GitHub 可简化协作与 CI/CD 自动化。步骤如下:

将 GitHub 连接到 Azure Pipelines:

导航至 Azure DevOps 的 Pipelines 分区。

该集成可让您更轻松地管理项目并高效自动化工作流。

点击 Create Pipeline 开始设置新流水线。

该简洁步骤帮助您在 Azure DevOps 中开启工作流自动化。

  • 选择 GitHub 作为来源。

选择 GitHub 作为新流水线的来源。

此举可将您的 GitHub 代码库连接至 Azure DevOps,简化协作与自动化。

  • 授权 Azure DevOps 访问您的 GitHub 代码库。

GitHub 新手?通过 GitHub concepts 课程了解如何协作、跟踪更改与参与开源项目。

  • 设置流水线
    • 选择一个代码库并配置您的 YAML 流水线文件。

设置流水线:

选择一个代码库。

该流程可帮助您在 Azure DevOps 中开始自动化工作流。

设置流水线:

配置您的 YAML 流水线文件。

该流程可帮助您在 Azure DevOps 中开始自动化工作流。

  • 定义构建与部署步骤。YAML 示例:
# Set up the trigger for the pipeline
trigger:  
  # Specify the branches to include
  branches:  
    include:  
      # Include the main branch
      - main  

# Define the jobs for the pipeline
jobs:  
  # Create a job named 'Build'
  - job: Build  
    # List the steps for the 'Build' job
    steps:  
      # Add a script step to print a message
      - script: echo "Building the project..." 

根据我的经验,此集成可自动确保代码更新与部署的顺畅衔接,减少人工操作。

将 Azure DevOps 连接到 Azure 与其他云平台

Azure DevOps 与 Azure 服务(如 Azure Web Apps、Azure Kubernetes Services(AKS)等)原生集成。我们来了解如何连接 Azure DevOps 与 Azure Web Apps。

  • 链接到 Azure 服务:
    • 在项目左下角前往 Project Settings,在 Pipelines 分区下点击 Service Connections。

链接到 Azure 服务:

在项目左下角,导航至 Project Settings。

此步骤可帮助您连接各类 Azure 服务,增强项目的能力与集成。

导航到 Pipelines 分区:

点击 Pipelines 分区下的 Service Connections。

该步骤可帮助您链接到 Azure 服务,增强项目的能力与集成。

    • 点击 New Service Connection 并选择 Azure Resource Manager。

设置新的服务连接:

点击 New Service Connection。

这个简单流程可帮助您连接 Azure 资源,增强项目能力。

设置新的服务连接:

选择 Azure Resource Manager。

这个简单流程可帮助您连接 Azure 资源,增强项目能力。

    • 使用您的 Azure 帐户进行身份验证。
  • 部署到 Azure
    • 返回 Pipelines 并配置您的流水线。
    • 在流水线中添加部署到 Azure 的任务。
    • 指定资源组与服务详情。任务 YAML 示例:
# Define the task for deploying to an Azure Web App
- task: AzureWebApp@1  
  inputs:  
    # Specify your Azure subscription service connection
    azureSubscription: 'Your-Service-Connection'  
    # Specify the name of your web app
    appName: 'Your-Web-App' 

我们把上述命令拆解一下:

  • 将 Your-Service-Connection 替换为具有您 Azure 订阅访问权限的服务连接名称。
  • 将 Your-Web-App 替换为您在 Azure 中的实际 Web 应用名称。

以我的经验来看,这种连接能让部署变得轻松,让您更专注于打造优秀的软件。

在 Azure DevOps 中的监控与报告

监控与报告是维护 Azure DevOps 项目健康状况的关键流程。我们来看看如何高效开展。

查看流水线指标

流水线指标可反映构建与部署的性能。访问方法如下。

  • 监控流水线健康状况
    • 前往 Pipelines > Analytics。
    • 查看流水线通过率、测试通过率与流水线持续时间等指标。

监控流水线健康状况:

前往 Pipelines,然后选择 Analytics。

查看关键指标,如流水线通过率、测试通过率与流水线持续时间。

该功能帮助您掌握流水线性能,确保一切运行顺畅。

  • 识别瓶颈
    • 使用 Pipeline Runs 报告查找失败阶段与缓慢构建。

识别瓶颈:

使用 Pipeline Runs 报告查找失败阶段与构建缓慢环节。

这将帮助您在 Azure DevOps 中定位问题并改进流水线性能。

    • 导航至 Azure DevOps 的 Organization Settings > Pipelines > Parallel jobs,使用并行作业提升性能并优化任务。

导航至 Azure DevOps 的 Organization Settings:

前往 Pipelines,然后选择 Parallel jobs。

使用并行作业有助于提升性能并优化 Azure DevOps 中的任务。

根据我的经验,缓存依赖、拆分作业与优化流水线结构,能显著减少构建时间与失败率。

使用 Azure DevOps 报告

Azure DevOps 提供强大的报告工具,用于跟踪团队生产力与项目进展。

  • 访问报告
    • 前往 Analytics > Reports。
    • 选择预构建报告,如累计流图(Cumulative Flow Diagram)、速度(Velocity)或燃尽图(Burndown)。

访问 Analytics 报告:

可选择诸如累计流图、速度或燃尽图等预构建报告。

  • 自定义报告
    • 使用 Power BI 创建自定义仪表板。为此,使用 Power BI 数据连接器,前往 Power BI Online 并登录您的帐户。
    • 点击左上角的 Home 图标,然后在功能区选择 Get Data。
    • 在 Get Data 窗口中,您将看到数据源列表。选择 Online Services > Azure DevOps (Boards only) 作为数据连接器。

使用 Power BI 创建自定义仪表板:

使用 Power BI 数据连接器。

前往 Power BI Online 并登录您的帐户。

点击左上角 Home 图标,然后在功能区选择 Get Data。

在 Get Data 窗口,选择 Online Services > Azure DevOps (Boards only) 作为数据连接器。

按此步骤,您可高效创建自定义仪表板并在 Power BI 中可视化数据。

  • 输入您的帐户信息,如 Organization 与 Team project 名称,以同步您的数据。

输入您的帐户信息以同步数据:

提供 Organization 与 Team project 名称。

这将确保您的数据在 Azure DevOps 中准确同步。

  • 导出数据以进行进一步分析。

以我的经验来看,这些分析报告可提供可操作的洞见,助您做出数据驱动的决策。

Azure DevOps 的最佳实践

既然我们已经学习了 Azure DevOps 的核心服务与更多内容,下面来看如何通过以下最佳实践将其价值最大化。

版本控制最佳实践

  • 采用分支策略
    • 采用 Git Flow 或 GitHub Flow 进行分支管理。
    • 始终保持 main 分支稳定,开发使用功能分支。
  • 编写清晰的提交信息
    • 使用格式:type(scope): description(例如 feat(login): add user authentication)。
  • 审查拉取请求
    • 在合并前至少需要一位审阅者。
    • 通过评论提出改进建议。

良好的版本控制实践能带来干净且可复用的代码库。

优化流水线

  • 使用依赖缓存:重复下载相同依赖在使用包管理器时会浪费大量时间。Azure DevOps 支持缓存机制(如 Cache 任务),可在流水线运行间缓存依赖。

缓存任务 YAML 示例:

# Define the cache task
- task: Cache@2  
  inputs:  
    # Set the cache key using npm, the OS, and package-lock.json
    key: 'npm | "$(Agent.OS)" | package-lock.json'  
    # Specify the path to the node_modules directory
    path: 'node_modules'
  • 拆分作业:将庞大的作业拆解为更小的并行任务。对于耗时的巨大工作负载,拆分为独立任务并并行执行,可整体提速。

作业 YAML 示例:

jobs:
  # Define the first build job
  - job: BuildJob1
    displayName: 'Build Job 1'
    pool:
      vmImage: 'ubuntu-latest'
    steps:
      # Add a script step to print a message for Building Project A
      - script: echo "Building Project A"
        displayName: 'Build Project A'

  # Define the second build job
  - job: BuildJob2
    displayName: 'Build Job 2'
    pool:
      vmImage: 'ubuntu-latest'
    steps:
      # Add a script step to print a message for Building Project B
      - script: echo "Building Project B"
        displayName: 'Build Project B'

  # Define the test job
  - job: TestJob
    displayName: 'Run Tests'
    # Specify that this job depends on the completion of BuildJob1 and BuildJob2
    dependsOn: 
      - BuildJob1
      - BuildJob2
    pool:
      vmImage: 'ubuntu-latest'
    steps:
      # Add a script step to print a message for Running Tests
      - script: echo "Running Tests"
        displayName: 'Run Tests'
  • 使用模板:为常见任务创建可复用的流水线模板。这样就无需反复重写相同代码。我们来创建一个简单的构建任务模板:

模板 YAML 示例:

# Define parameters for the pipeline
parameters:
  # Specify a parameter for the build configuration
  - name: buildConfiguration
    type: string
    default: 'Release'

# List the steps for the pipeline
steps:
  # Add a task to run the .NET Core CLI
  - task: DotNetCoreCLI@2
    inputs:
      # Set the command to 'build'
      command: 'build'
      # Pass the build configuration as an argument
      arguments: '--configuration $(buildConfiguration)'

我的实践表明,优化流水线能持续带来时间与资源的节省。

管理机密与安全

  • 使用 Azure Key Vault:将 API 密钥等敏感信息存储在 Azure Key Vault 中。前往 Azure 门户,创建新的 Key Vault,并添加您的机密(如 API 密钥)。

管理机密与安全:

使用 Azure Key Vault:

将 API 密钥等敏感信息存储在 Azure Key Vault 中。

前往 Azure 门户并创建新的 Key Vault。

此步骤有助于在 Azure DevOps 中安全、有序地管理敏感数据。

创建新的 Key Vault 后:

添加您的机密,如 API 密钥与密码。

此步骤有助于在 Azure DevOps 中安全、有序地管理敏感数据。

  • 返回 Azure DevOps,创建到您的 Azure 订阅的服务连接,使流水线能访问 Key Vault。

创建到 Azure 订阅的服务连接:

返回 Azure DevOps。

为您的 Azure 订阅设置服务连接。

此步骤可使流水线访问 Key Vault,增强项目的安全与自动化。

  • 在 Azure DevOps 中前往 Pipelines > Library,创建新的变量组。

轻松创建新变量组:

在 Azure DevOps 中,前往 Pipelines,然后选择 Library。

创建一个新的变量组。

该步骤可帮助您高效管理与组织变量,便于配置流水线。

  • 将变量组链接到 Key Vault 以自动获取机密。
  • 在流水线中通过变量组引用机密。YAML 示例:
# azure-pipelines.yml
trigger:
- main

variables:
- group: my-variable-group  # Reference the variable group that links to the Key Vault

jobs:
- job: BuildJob
  pool:
    vmImage: 'ubuntu-latest'
  steps:
  - script: echo "Using secret from Key Vault."
    env:
      MY_API_KEY: $(my-secret)  # Reference the secret from the variable group
    displayName: 'Print Secret'

从上述示例可见:引用了包含 Key Vault 机密的 my-variable-group 变量组。脚本步骤通过将变量组中的机密 $(my-secret) 作为环境变量进行使用,并输出消息。

  • 限制权限
    • 务必基于角色对流水线与代码库进行访问限制。

安全是现代软件开发中的基本原则,绝不容妥协,否则后果不堪设想。

结语

本教程介绍了如何设置 Azure DevOps 环境、使用 Azure Repos 进行版本控制、创建与管理 CI/CD 流水线、在 Azure Boards 中跟踪与管理工作项、将 Azure DevOps 与其他工具集成、Azure DevOps 的最佳实践等内容。

成功的秘诀在于坚持。请经常回顾流程、收集反馈并进行调整。掌握这些能力能帮助您在软件开发领域释放作为数据专业人士的全部潜能。探索 Azure DevOps,尝试这些工具,见证团队效率的提升。

若要深入学习 Microsoft Azure,请查看以下课程:

Emmanuel Akor

作者

Emmanuel Akor

Emmanuel Akor 是一名云与 DevOps 工程师,擅长利用云技术和 DevOps 工具推进有影响力的项目。他毕业于巴布科克大学计算机科学专业,获一等荣誉学位,曾担任 GDSC 云方向联合负责人,将卓越的学术背景与实战经验相结合。作为技术内容作者,他善于分享知识并与团队高效协作。

主题