你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
有关标准化工具和流程的建议
适用于此 Azure 精心构建的框架卓越运营清单建议:
OE:04 | 通过遵循经过行业验证的开发和测试做法,优化软件开发和质量保证流程。 对于明确的角色指定,请跨组件(如工具、源代码管理、应用程序设计模式、文档和样式指南)标准化做法。 |
---|
本指南介绍了有关定义软件开发工具和流程标准的建议。 定义一致的做法会导致高效的工作负荷团队和高质量的工作。 高绩效团队使用经过行业验证的工具和流程来最大程度地减少精力浪费和潜在的代码错误。
关键设计策略
优化开发做法的第一步是标准化工具和流程。 如果可能,请使用行业证明的解决方案,而不是开发内部解决方案。 若要进一步优化做法,请采用低代码和无代码工具。 借助这些工具,你可以专注于应用程序并帮助你节省时间。 对于标准化的所有工具和流程,请实施培训,使团队能够有效地理解和使用它们。 若要定义有助于优化开发做法的标准,请考虑以下建议。
使用已知且成熟的现成工具
使用已知的成熟的现成工具并标准化其使用。 高效的工程团队采用一流的工具。 此方法最大程度地减少了开发用于规划、开发、测试、协作和持续集成和持续交付(CI/CD)的解决方案的需求。 许多企业为开发人员提供了一些工具的选择,但所有选项都是组织的标准工具,并在内部进行验证。 最重要的是,选择满足工作负荷要求的工具。 现成工具应提供以下功能:
工作规划和积压工作管理
版本控制和存储库
CI/CD 管道
测试,如集成、烟雾、合成用户、模拟、混乱等质量测试
代码开发
在某些情况下,一个工具或一套工具可能提供多个功能。 确保你了解工具的功能及其限制,以便它们满足各个函数的要求。
确定是否应投资昂贵的工具或高级版本的工具。 与高级工具提供的功能相比,请考虑开发自己的解决方案的时间和精力。 考虑一次性成本与定期成本。 在大多数情况下,现成的工具为团队提供更高的价值。
在实际情况下使用低代码、无代码和 AI 工具 。 低代码和无代码工具允许开发人员轻松插入功能,而不是执行整个代码开发过程,从而节省时间。 这些工具还允许可能未经过培训的开发人员的工作负荷团队成员参与工作负荷的操作。 AI 工具可帮助开发、评审和优化代码。
标准化分支策略
尽可能选择基于主干的模型。 基于主干的分支使工作负载开发团队保持同步,并鼓励持续交付。 定义分支策略以保护重要分支,例如主分支。 有关详细信息,请参阅 采用 Git 分支策略 和 分支策略和设置。
评估指标以量化开发有效性
软件开发和质量保证团队只有在能够量化其有效性时才能改进。 为了量化有效性,它们必须确定衡量 开发人员速度 并定义 KPI 的指标。 这些指标的示例包括:
部署频率:每个开发人员每天部署的部署数。
领先时间:任务或用户情景从积压工作到生产部署所需的时间。
平均解决时间:修复代码中的 bug 或缺陷的平均时间。
更改失败率:导致失败的更改百分比。
为了帮助利益干系人和工作负荷团队轻松跟踪速度,请使用仪表板或其他报告工具可视化 KPI。
标准化工作负荷团队编写、评审和文档代码的方式
使用样式指南标准化工作负荷团队编写、审阅和记录代码的方式。 标准风格可以使协作变得轻松,有助于新开发人员入职。 若要高效工作,新开发人员需要知道工作负载团队的运作方式。 具有明确标准的风格指南可以简化培训过程。 在样式指南中,定义开发语言、库、框架和其他约定的标准。
如果可行,请使用工具强制实施代码格式设置标准。 例如,Visual Studio 提供了多种 工具 ,用于扫描代码的样式、质量、可维护性、设计和其他问题。 对于基础结构即代码(IaC),可以使用 Checkov 或 Terrascan for Terraform。
为了确保一致性并避免潜在的混淆,样式指南应包括项目、环境、分支、生成和运行的标准命名约定。
还应为环境中允许的方差程度设置准则和标准。 如果工作负载团队成员想要添加到标准列表中的新语言、框架或其他技术,请实现在沙盒或更低环境中使用这些工具的过程。 测试其可行性,并在适当时替换现有技术。
使用体系结构决策记录(ADR) 保留工作负荷团队设计决策的历史记录。 ADR 可帮助团队保持对工作负荷的全新了解。 他们还帮助新团队成员了解在工作负荷生命周期内做出的设计决策。 确保 ADR 受版本控制。
在 ADR 中,包括:
团队选择的特定工具和技术,例如使用 SQL 或 NoSQL。
团队决策的原因。
已考虑的其他选项,有助于将最终决策上下文化。
考虑决策的功能和非功能要求。
决策过程的上下文,如所解决的问题。
实施解决技术债务的标准
采用这种思维模式,即技术债务是有意为之的,也是工作负载团队的可交付结果所必需的。 这种思维模式可以激励团队定期考虑和解决技术债务,以避免累积。 将技术债务作为积压工作中的定期任务定期解决。
例如,假设团队对库进行了标准化。 随着时间的推移,需要切换到其他库,以获取工作负载中的新功能。 这种过渡可能会导致技术债务。 通常,此类转换会使工作负荷团队支持两种技术,因为它们无法完全顺利过渡。 工作负荷团队必须优先考虑完成转换,因为当工作负荷实现新功能时,利益干系人得到满足,并且不太可能考虑技术债务。
标准化将版本控制应用于项目的方式
标准化如何将版本控制应用于项目,以及如何在内部和外部公开版本控制。 例如,面向客户端的系统应在用户界面中公开其正在运行的版本。 当工作负荷团队排查问题时,此方法非常有用,因为客户可以轻松传达他们使用的版本。 REST 接口可以公开某些组件或数据库的版本。 可以使用元数据中的特定表来公开架构版本。
使用行业证明的应用程序 设计模式 来确保应用程序可靠、高性能和安全。 与为应用程序开发自己的解决方案相比,使用这些模式可以节省时间和精力。 选择有利于工作负荷的模式。 定期查看设计模式,以确保在工作负载发展时使用正确的模式。
实现左移测试方法
通过提前执行单元测试,并在开发过程中经常执行单元测试,实现向左移的方法。 在每个开发环境中频繁进行测试有助于增强开发人员对其应用程序的信心。 若要使用 Shift-left 方法帮助创建测试策略,请考虑以下原则:
尽可能以最低级别编写测试。 支持具有最少的外部依赖项的测试,并在生成过程中运行测试。
编写测试一次,并在任何地方运行测试,包括生产环境。 编写可在每个开发环境中运行的测试,而无需考虑特定于一个环境的因素,例如加密机密或配置。
设计用于测试的工作负荷。 开发应用程序时,使可测试性成为一项要求。
将测试代码视为应用程序代码。 对应用程序代码和测试代码应用相同的质量和开发标准。 将测试代码与应用程序代码一起存储。 使用应用程序代码开发和维护测试代码。 若要确保测试质量,请放弃不可靠的测试。
请考虑测试所有权,该所有权基于工作负荷所有权。 工作负荷团队拥有其测试,不应依赖于其他团队来测试其代码。
尽可能自动执行测试。 自动化代码可减轻工作负荷团队的负担,并强制实施一致的质量。
有关实现 DevOps 测试策略的详细指南,请参阅 单元测试的 Shift 测试。
要求 DevSecOps 做法作为标准操作过程的一部分。 工作负荷团队应了解与软件开发和质量保证相关的安全做法。 它们必须遵循这些做法,而不例外。 有关详细信息,请参阅 安全开发生命周期指南。
实现命名和标记资源的标准
实现标记和命名约定是管理和组织 Azure 资源的最佳做法。 标记和命名约定有助于根据常用属性(例如环境、应用程序、所有者或成本中心)对资源进行标识、分类和分组。 它们还支持跨订阅和资源组对资源进行安全、自动化、报告和治理。
使用标准化标记和命名约定的一些好处包括:
- 它们为资源标识和管理提供了一致性和清晰度,有助于跨 Azure 门户、PowerShell、CLI 和 API 进行发现和搜索。
- 它们为计费、监视、安全性和符合性目的启用资源筛选和分组。
- 它们支持资源生命周期管理,例如预配、解除授权、备份和恢复。
- 它们对于安全目的至关重要。 如果遇到安全事件,必须快速识别受影响的系统、这些系统支持的功能以及潜在的业务影响。
有关对云资源使用命名约定的详细信息,请参阅 定义命名约定。 有关如何将元数据标记应用于云资源的详细信息,请参阅 “定义标记策略”。
Azure 便利化
Azure DevOps 是一系列服务,可用于构建协作、高效且一致的开发实践。 Azure DevOps 捆绑了以下解决方案:
Azure Pipelines 提供生成和发布服务来支持应用程序的 CI/CD。
Azure Boards 是一种基于 Web 的工作管理工具,支持 Scrum 和 Kanban 等敏捷做法。
Azure Repos 是一种版本控制工具,支持 Git 分布式版本控制系统和Team Foundation 版本控制系统。
Azure 测试计划 是一种基于浏览器的测试管理解决方案,提供计划内手动测试、用户验收测试、探索性测试以及收集利益干系人反馈所需的功能。
Azure Artifacts 用于使开发人员能够有效地共享其代码和管理其包。
适用于 Azure 的 GitHub Actions 是一种可用于自动执行 CI/CD 过程的工具。 它直接与 Azure 集成,以简化部署。 可以创建工作流来生成和测试存储库的每个拉取请求,或将合并拉取请求部署到生产环境。
GitHub Projects 是一种工作管理工具,可用于创建看板、报表、仪表板和其他功能。
低代码和无代码工具包括:
Azure 资源管理器模板和 Bicep 是可用于部署 IaC 的 Azure 本机工具。 Terraform 是另一个 Azure 支持的 IaC 工具,可用于部署和管理基础结构。
Visual Studio 是一种可靠的开发工具,可与 Azure 集成并支持多种语言。
GitHub Copilot 是一种 AI 服务,充当对程序员,并在编写代码时提供自动完成样式建议。 Copilot 在 Visual Studio 和其他几个开发工具中作为扩展提供。
Azure 负载测试 是一项完全托管的负载测试服务,可用于通过模拟应用程序的流量来生成大规模负载,而不管它们托管在哪里。
组织遵循情况
Azure 云采用框架提供有关标记和命名 Azure 资源的一般准则和建议,以及不同资源类型的特定规则和示例。
相关链接
- 采用 Git 分支策略
- 分支策略和设置
- 云设计模式
- 开发人员速度
- 为 Azure 资源开发命名和标记策略
- DevOps 资源中心
- 使用 Azure 和 GitHub 启用 DevSecOps
- 源代码分析概述
- 安全开发生命周期指南
- DevOps (DevSecOps) 中的安全性
- 通过单元测试使测试左移
- 视频系列:GitHub CoPilot 简介
卓越运营清单
请参阅完整的建议集。