通过


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

DevOps 工具链

DevOps 工具链是一系列工具,使 DevOps 团队能够在整个产品生命周期内进行协作,并解决关键的 DevOps 基础知识。

DevOps 工具链包含的工具作为集成单元运行,用于规划、持续集成、持续交付、运营、协作和反馈。 可以在 定义 DevOps 技术生态系统中查看跨不同 DevOps 阶段的 DevOps 技术的一些示例。

DevOps 工具链注意事项

  • 选择工具链时,DevOps 的流程可能已经在整个组织中使用。 你应该在采用适合团队需求的技术与标准化和避免整个组织中异类 DevOps 生态系统的目标之间找到适当的平衡。

  • 可以采用不同类型的 DevOps 工具链:

    • 一体的: 提供可能无法与其他第三方工具集成的完整解决方案。 一次性工具链对于开始 DevOps 旅程的组织非常有用。 示例: 完整堆栈 Azure DevOps 工具链
    • 定制: 允许团队引入现有工具并将其混合到更广泛的 DevOps 工具链中。 集成对于这些类型的工具链至关重要,以避免在屏幕之间花费不必要的时间切换,登录到多个位置,并面临在工具之间共享信息的挑战。 示例: Azure DevOps 和 GitHub 工具链
  • 请考虑使用定期更新的工具链,并在需要时通过电子邮件或联机门户获得帮助。 对于任何处于关键路径上的产品或服务,这是一项必要要求,以进入市场。

Planning

  • 请考虑采用支持 持续规划 做法的工具:
    • 发布规划
    • 史诗和特征识别
    • 优先级
    • 估计
    • 用户情景定义
    • 待办事项梳理
    • 冲刺规划
    • 每日 Scrum
    • 冲刺评审
    • 回顾

持续集成和持续交付

  • 实现 持续集成(CI)/持续交付(CD)时,请考虑采用支持以下工具:
    • 版本控制系统。 项目中的所有内容都必须签入到单个版本控制存储库,例如 Git:代码、测试、数据库脚本、生成和部署脚本,以及创建、安装、运行和测试应用程序所需的任何其他内容。
    • 分支策略
    • 自动生成
  • 你选择的存储库也受数据主权/驻留要求的影响。 如果需要将数据托管在美国以外的国家/地区本地,则无法使用 GitHub Repos 时需要 Azure DevOps 存储库。
  • 若要最大程度地减少预配资源所需的手动配置量,请考虑采用基础结构即代码(IaC)。 IaC 允许应用软件工程做法,例如测试和版本控制,使基础结构和部署自动化、一致且可重复。 像维护的任何其他代码一样,在源代码管理下保留脚本和模板。
  • 采用 代码扫描工具 ,帮助你尽快检测代码缺陷。 包括部署前检查,以在任何部署之前验证和确认更改(例如: “what-if”)函数。
  • CI/CD 工具可加快产品上市时间。 可让你并行化任务并利用云托管基础结构上的弹性可伸缩性的工具可增强 CI/CD 过程的性能。
  • 请考虑使用支持 DevOps 性能度量的 CI/CD 工具功能。 仪表板和报告可以跟踪开发过程的各个方面,例如提前期、周期和工作速率等。

连续操作

持续运营是一个重点,通过持续交付关键服务或功能,帮助组织在内部系统和客户之间保持输出的连续性。 连续作业的目标是:

  • 减少或消除计划内停机或中断的需求,例如计划内维护、容量优化和部署。
  • 在三个方面提高系统的整体可靠性和复原能力:人员、流程和工具。

使用云原生工具可以:

  • 监视服务性能和可用性的关键指标。
  • 获得数字体验和客户见解。
  • 为事件、系统恢复或缩放生成智能驱动的响应
  • 自动执行主动维护和部署或系统更新等任务。
    • Azure 自动化 是一种云原生工具,可用于创建基于事件的自动化来诊断和解决问题。

协作和反馈

  • 快速反馈循环是 CI/CD 过程的核心。 CI/CD 工具使用反馈解决 CI/CD 工作流逻辑中的条件,并通常通过仪表板向用户显示信息。

  • 支持电子邮件通知并与 IDE 或通信平台集成,确保你可以随时了解所发生的情况,而无需检查仪表板。 确保能够灵活地配置收到的警报,因为收到过多的警报会将它们转换为后台噪音。

  • 为协作选择的任何工具都应支持以下协作做法:

    • 看板协作
    • Wiki 内容协作
    • ChatOps 实时协作
    • 团队会议室

Azure 登陆区域的 DevOps 工具链建议

用于 Azure 登陆区域实现的 DevOps 工具链应考虑以前讨论的所有 DevOps 阶段:

  • Planning
  • CI/CD(包括基础结构即代码等自动化功能)
  • Operations
  • 协作和反馈

查看有关登陆区域部署的指南,以及有关在 选择登陆区域采用中选择实现选项的注意事项。

无论选择的方法(从小规模开始和扩展或企业规模),企业在设计 DevOps 工作流和工具链时倾向于遵循一些常见拓扑。

  • 完整堆栈 Azure DevOps 工具链: 对于已在Microsoft生态系统中投入大量资金的企业,此拓扑使企业能够充分利用Microsoft产品和服务之间的本机集成,并简化关键流程。
  • Azure DevOps 和 GitHub 工具链: 通过此拓扑,可以将 Azure 和 GitHub 的优势用作集成完善的解决方案的一部分。

完整堆栈 Azure DevOps 工具链

完整堆栈 Azure DevOps 工具链的图示。

DevOps 阶段 Tools
Planning Azure Boards 为开发人员和其他角色提供强大且灵活的规划功能,包括分层积压工作、可自定义看板、丰富的流程自定义、团队仪表板和自定义报告。
CI/CD Azure Repos 允许你创建专用 Git 存储库,并支持不同的 Git 客户端、分支策略和保护。 Azure Repos 还提供云中的本地化数据驻留,以实现符合欧洲法规。 Azure Pipelines 允许客户为 CI/CD 设置自动化管道,包括用于高级测试报告,并为多阶段管道提供强大的支持。 Azure Pipelines 中细粒度的权限、入口、自定义检查和自动测试结果报告有助于在组织中强制实施安全、合规性和安全部署最佳做法,并支持并行步骤执行和可伸缩性。 Azure Artifacts 提供一个用于存储包的源,并提供精细的权限控制和审核,同时用于查看和验证每个包以确保安全性。 Azure DevOps 中的 Azure 测试计划提供基于浏览器的测试管理解决方案,用于探索性、手动和用户验收测试。 Azure 测试计划的用户通常也使用 Azure Boards 进行规划和项目管理。 可以将用户情景和其他要求链接到测试用例,并记录通过测试找到的 bug。 采用 用于 DevOps 的市场扩展 ,通过凭据扫描器、开源扫描器、漏洞扫描器等工具改进静态代码分析。
Operations Azure 仪表板和报告 提供自定义报告来帮助监视关键服务性能指标。 Azure 诊断Application Insights 是跟踪 Azure 资源的运行状况和状态的标准方法。 Azure Monitor 提供集中式监视和管理。 Azure 自动化 可用于创建基于事件的自动化来诊断和解决问题。 Defender for Cloud DevOps 使用中央控制台,使安全团队能够跨多管道环境(包括 Azure DevOps 和 GitHub)保护应用程序和资源从代码到云。
协作和反馈 Azure DevOps Wiki 允许与其他团队的成员共享信息,并支持对其内容和结构的协作编辑。 Azure Boards 提供看板协作以及对积压工作项评论和讨论的支持。

Azure DevOps 和 GitHub 工具链

Azure DevOps 和 GitHub 工具链的关系图。

DevOps 阶段 Tools
Planning Azure Boards 提供了一个稳定且可缩放的解决方案,用于规划、存储库管理、数据可视化和分层工作项组织。 它 与 GitHub 集成,因此你可以链接工作项和 GitHub 提交。 它还允许你选择理想的工作流,无论是简单的现用工作流,还是使用强大的灵活 Azure Boards 自定义引擎生成的自定义工作流。 需要可视化数据时,Azure Boards 可帮助你轻松生成和配置自定义仪表板,并在整个项目生命周期内监视进度。
CI/CD 使用 GitHub 的 GitHub Enterprise(GHE)版本,其中包括 GitHub 存储库、GitHub 高级安全性(GHAS)Azure DevOps 的 GitHub 高级安全性。 GHAS 包括 CodeQL代码扫描机密扫描依赖项评审。 GHE 还提供 Codespaces,这是一个云 IDE,可用于开发代码,并可以替换 Visual Studio Code,组织通常包括在全堆栈 Azure DevOps 方案中。 如果存储库位于 GitHub 中,则可以使用 GitHub Actions 自动执行非生成工作流。 如果需要从 GitHub 外部访问代码,或者需要对工作流模板进行集中管理并生成管道,请采用 Azure Pipelines。 对于 Azure Boards,可以将 Azure Pipelines 与 GitHub 存储库集成。 若要了解如何集成 Azure DevOps 和 GitHub,请参阅使用 Azure DevOps 和 GitHubGitHub Packages 是一项软件包服务,允许你私下或公开托管自己的包。 GitHub 为托管 Docker 或 OCI 映像提供容器注册表支持。 需要访问令牌才能发布、安装或删除包,并确保包生命周期管理安全。 若要自动执行包,可以将 GitHub 包与 GitHub Actions、GitHub API 和 Webhook 集成,以创建 DevOps 工作流,其中包括一个界面中的所有代码、CI 和部署。
Operations GitHub Insights 基于 GitHub Enterprise Server 实例中的数据提供分析报告,帮助你了解和改进软件交付过程。 对于登陆区域诊断和管理,请使用 全堆栈 Azure DevOps 方案中建议的 Azure 服务。
协作和反馈 可以使用 GitHub 讨论 来共享问题、想法、对话、置评请求(RFC)、资源规划和公告。 使用 Azure Boards 轻松生成和配置自定义仪表板,并监视整个项目生命周期中的进度。 采用 Microsoft Teams,获得完整的团队协作体验。