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

DevOps 注意事项

本文提供有关 Azure 登陆区域中 DevOps 的注意事项和建议。

什么是 DevOps

DevOps 是人员、流程和技术的结合,为开发(dev)和运营(ops)提供持续价值。 DevOps 方法鼓励团队协作创建可重复的过程,以帮助组织高效大规模运行。

在 Azure 登陆区域上下文中,DevOps 成为指导你的团队(或多个团队)负责整个 Azure 登陆区域生命周期管理的框架,例如:

  • 如何自我组织和定义与其他团队的边界,以实现自治与治理之间的适当平衡
  • 如何不断改进 Azure 登陆区域体系结构设计 (康威定律)
  • 如何规划、确定优先级并迭代实现所设计的架构
  • 如何为 Azure 登陆区域代码实现版本控制、持续集成和持续部署
  • 如何操作并处理你负责的系统和平台的事件
  • 应用于 Azure 登陆区域预配和自我修复的自动化级别
  • 如何以敏捷、面向结果的方式与组织中的其他团队协作
  • 如何创建安全、质量、以用户为中心的生成文化以及持续学习

查看云作模型时做出的决策可能会影响使用 DevOps 框架的方式。

DevOps 设计注意事项

  • 定义 DevOps 框架,或将其与组织的 DevOps 和云采用策略保持一致。 包括 DevOps 的定义以及团队必须遵循的原则和做法。 确保将 DevOps 策略连接到业务策略。

  • 建立 允许 团队提高其 DevOps 性能的指标。 高性能团队使用假设来测试他们的想法,衡量假设的工作原理,然后根据需要进行更改。 DevOps 的最终意图是改进部署频率、应用更改的平均时间或还原降级服务的时间等方面。 必须设计所有这些指标,最终影响整体业务性能。

  • 确定团队应首先根据其当前技能实现 的 DevOps 实践 ,并设计路线图以增量方式应用有助于团队改进其 DevOps 指标的新做法。 投资工程能力和资源至关重要。

  • 确定团队应用于实现 DevOps 实践的 DevOps 工具链 。 确保这些工具与整体 DevOps 策略保持一致,以避免异质 DevOps 生态系统的方案增加 Azure 登陆区域或工作负荷部署的复杂性。

  • 评估已实现的 DevOps 做法和 DevOps 工具对 Azure 登陆区域设计的影响。

  • 创建一个准备计划,以持续提高团队的技能。 不加选择地应用 DevOps 模型不会立即建立有能力的 DevOps 团队。

  • 确定最适合组织 DevOps 策略和云运营模型的团队拓扑,并在团队之间建立明确的边界、职责和依赖关系。

  • 确定负责 Azure 登陆区域的团队应如何与组织中的其他团队协作,以捕获新的 Azure 登陆区域要求,以更新设计和实现、解决事件、最大程度地减少依赖项,并符合业务优先级。

DevOps 建议

以下部分包含帮助你在组织中实现 DevOps 框架的建议。

定义 DevOps 框架

若要建立 DevOps 框架,请考虑使用已经可用的框架,以一组预定义的经过验证的做法开头:

为 Azure 登陆区域管理定义 DevOps 做法

请考虑针对 Azure 登陆区域的以下 DevOps 做法:

规划 DevOps 实施旅程

定义 DevOps 实施过程,并将其与组织的 云采用计划保持一致。

  • 确定团队目前在以下方面的位置:
  • 使用组织的云采用计划为团队定义所需的模型。
  • 建立迭代路线图,以迭代和增量模式实现所需模型,使其与组织的 转换时间线保持一致。

实现所需的 DevOps 指标

确定将用于度量团队 DevOps 性能的指标。 使用指标驱动团队中与 业务成果相联系的所需习惯。 建立指标,让团队衡量对活动的影响。 使关键指标对所有人可见,因为透明度促进信任并推动与组织目标保持一致。

衡量 DevOps 性能以提高业务影响的指标示例包括:

  • 业务成果:

    • 使用 目标和关键结果 作为工具,将团队从“输出”思维模式转移到“结果”思维模式。 例如,你可以使用提高合规性评级的工作负载数量,而不是部署到 Azure 的策略数量。
    • 客户或最终用户满意度。 示例包括 Net Promoter Score (NPS)、调查、面试。
    • 业务增长。 示例包括提高盈利能力、增加收入和新收入来源获取。
    • 人员指标。 示例包括 Employee Net Promoter Score (eNPS)、利用率、保留期和满意度。
    • 成本。 例如,你可能会使用降低成本的方法。
  • 软件交付性能:

    • 更改所需的提前期,是指 bug 修复、添加新功能或任何其他变更从构思到部署再到生产所需的时间。
    • 部署频率,即每天将代码更改部署到生产环境的次数。
    • 平均还原时间,事件发生后还原生产中的服务所需的时间。
    • 更改失败百分比,即导致故障的生产更改(如配置更改)的百分比。
  • 质量:

    • 缺陷漏检率,最终用户识别的缺陷数。
    • 计划外工作或返工,执行计划外工作或返工所花费时间的百分比。
    • 尚未修复的 bug,即未解决的 bug 数量。
    • 代码运行状况,未经过单元测试的代码的百分比。

定义 DevOps 技术生态系统

选择管理 Azure 登陆区域的生命周期的 DevOps 工具链会影响:

  • 实施 DevOps 原则和做法的策略
  • DevOps 生命周期的安全注意事项
  • Azure 着陆区域的生命周期管理整体架构设计

使用之前定义的 DevOps 框架 来标识要用于每个 DevOps 进程的工具。 选择最适合团队需求的 DevOps 技术,但找到一种平衡,使你能够在整个组织中实现标准化,但避免在 DevOps 生态系统中过于复杂或异质。

跨不同 DevOps 阶段的 DevOps 技术示例包括:

  • 规划: Atlassian Jira、Atlassian Trello、Azure Boards、GitHub
  • 持续集成(CI)和测试: Atlassian Bitbucket、Azure Repos、GitHub Repos、npm、NuGet、Selenium、SmartBear Cucumber、SonarSource SonarQube、Zed 攻击代理
  • 持续交付(CD): Atlassian Bamboo、Azure Pipelines、GitHub Actions、Jenkins、Octopus Deploy、Perforce Puppet、RedHat Ansible
    • 基础结构即代码: Bicep、Pulumi、Terraform
    • 初始化: ArgoCD GitOps、Flux GitOps、Progress Chef、PowerShell Desired State Configuration(DSC)
  • 操作: Azure 自动化、Azure Monitor、CISCO Splunk、Grafana、Microsoft Power BI
  • 协作和反馈: Atlassian Confluence、Azure DevOps Wikis、GitHub 讨论、GitHub Wikis、Microsoft Teams、Slack、Stack Overflow

下图显示了使用 Azure DevOps 工具链选择的示例 DevOps 框架:

使用 Azure DevOps 工具链选择的 DevOps 框架示意图。

下图显示了一个示例 DevOps 框架,其中选择了 Azure DevOps 和 GitHub 工具链:

使用 Azure DevOps 和 GitHub 工具链选择的 DevOps 框架示意图。

后续步骤