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

DevOps 注意事项

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

什么是 DevOps

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

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

  • 如何自我组织和定义与其他团队的边界,以实现自治与治理之间的适当平衡
  • 如何不断改进 Azure 登陆区域体系结构设计 (Conway 的法律)
  • 如何规划、确定优先级并循环访问设计体系结构的实现
  • 如何为 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

下图显示了示例 DevOps 框架以及可选择的 Azure DevOps 工具链:

包含 Azure DevOps 工具链选择的 DevOps 框架示意图。

下图显示了示例 DevOps 框架以及可选择的 Azure DevOps 和 GitHub 工具链:

包含 Azure DevOps 和 GitHub 工具链选择的 DevOps 框架图。

下一步