你当前正在访问 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 框架,请考虑使用现有可用框架,并从一组经过验证的预定义做法开始:
Microsoft DevOps 资源中心提供了一组丰富的定义、做法和功能,可将其采纳用于 Azure 登陆区域生命周期管理,其中包括:
Microsoft DevOps Dojo 基于四个基础要素和八项功能建立了 DevOps 分类:
为 Azure 登陆区域管理定义 DevOps 做法
请考虑针对 Azure 登陆区域的以下 DevOps 做法:
- 了解如何 将 Azure 登陆区域的开发生命周期作为代码进行管理。
- 查看 DevOps 空间中 Azure 登陆区域的安全注意事项。
规划 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 工具链:
下图显示了示例 DevOps 框架以及可选择的 Azure DevOps 和 GitHub 工具链: