你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
本文提供有关 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 框架,请考虑使用已经可用的框架,以一组预定义的经过验证的做法开头:
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
下图显示了使用 Azure DevOps 工具链选择的示例 DevOps 框架:
下图显示了一个示例 DevOps 框架,其中选择了 Azure DevOps 和 GitHub 工具链: