为多 DevOps 账户环境实施中继分支策略 - AWS Prescriptive Guidance

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

为多 DevOps 账户环境实施中继分支策略

由迈克·斯蒂芬斯 (AWS) 和雷扬·威尔逊 () 创作 AWS

摘要

在管理源代码存储库时,不同的分支策略会影响开发团队使用的软件开发和发布流程。常见分支策略的示例包括 Trunk、 GitHub Flow 和 Gitflow。这些策略使用不同的分支,并且在每种环境中执行的活动也不同。正在实施 DevOps 流程的组织将受益于可视化指南,以帮助他们了解这些分支策略之间的区别。在组织中使用此视觉效果可以帮助开发团队协调工作并遵循组织标准。此模式提供了这种视觉效果,并描述了在组织中实施主干分支策略的过程。

这种模式是关于为具有多个 AWS 账户分支机构的组织选择和实施 DevOps 分支策略的文档系列的一部分。本系列旨在帮助您从一开始就应用正确的策略和最佳实践,以简化您在云中的体验。Trunk 只是您的组织可以使用的一种可能的分支策略。本文档系列还涵盖了 GitHub FlowGitflow 分支模型。如果你还没有这样做,我们建议你先查看为多账户 DevOps 环境选择 Git 分支策略,然后再按此模式实施指南。请尽职调查为您的组织选择正确的分支策略。

本指南提供的图表显示了组织如何实施主干策略。建议您查看官方的《Well-Ar DevOps chitec AWS ted 指南》,以查看最佳实践。此模式包括 DevOps 流程中每个步骤的推荐任务、步骤和限制。

先决条件和限制

先决条件

架构

目标架构

下图可以像 Punnett 方块一样使用(维基百科)。您可以将垂直轴上的分支与水平轴上的 AWS 环境对齐,以确定在每个场景中要执行的操作。这些数字表示工作流程中操作的顺序。此示例将带您从feature分支机构到生产环境中的部署。

每个分支和环境中树干活动的 Punnett 方块

有关 Trunk 方法中的 AWS 账户、环境和分支的更多信息,请参阅为多账户 DevOps 环境选择 Git 分支策略

自动化和扩缩

持续集成和持续交付(CI/CD) is the process of automating the software release lifecycle. It automates much or all of the manual processes traditionally required to get new code from an initial commit into production. A CI/CD pipeline encompasses the sandbox, development, testing, staging, and production environments. In each environment, the CI/CD pipeline provisions any infrastructure that is needed to deploy or test the code. By using CI/CD, development teams can make changes to code that are then automatically tested and deployed. CI/CD管道)还通过强制执行一致性、标准、最佳实践以及功能接受和部署的最低接受程度,为开发团队提供管理和护栏。 有关更多信息,请参阅上的 “练习持续集成和持续交付” AWS

AWS 提供了一套开发人员服务,旨在帮助您构建 CI/CD 管道。例如,AWS CodePipeline是一项完全托管的持续交付服务,可帮助您实现发布管道的自动化,从而实现快速可靠的应用程序和基础设施更新。 AWS CodeBuild编译源代码、运行测试和生成 ready-to-deploy软件包。有关更多信息,请参阅上的开发者工具 AWS

工具

AWS 服务和工具

AWS 提供了一套开发者服务,你可以用它们来实现这种模式:

  • AWS CodeArtifact是一项高度可扩展的托管工件存储库服务,可帮助您存储和共享用于应用程序开发的软件包。

  • AWS CodeBuild是一项完全托管的生成服务,可帮助您编译源代码、运行单元测试和生成可随时部署的工件。

  • AWS CodeDeploy自动部署到亚马逊弹性计算云 (AmazonEC2)、本地实例、 AWS Lambda 函数或亚马逊弹性容器服务 (AmazonECS) 服务。

  • AWS CodePipeline帮助您快速建模和配置软件发布的不同阶段,并自动执行持续发布软件更改所需的步骤。

其他工具

  • Draw.io 桌面 — 用于制作流程图和图表的应用程序。

  • Figma 是一款专为协作而设计的在线设计工具。代码存储库包含 Figma 的.fig 格式的模板。

代码存储库

此模式中图表的源文件可在中继的 GitHub Git 分支策略存储库中找到。它包括 draw.io 和 Figma 格式的文件。PNG您可以修改这些图表以支持贵组织的流程。

最佳实践

遵循 Well-Architect AWS e DevOps d 指南和为多账户环境选择 Git 分支策略中的最佳实践和建议。 DevOps 它们可以帮助您有效地实施基于 Trunk 的开发、促进协作、提高代码质量和简化开发流程。

操作说明

任务描述所需技能

查看标准中继流程。

  1. 在沙盒环境中,开发人员从feature分支创建分main支并使用命名模式feature/<ticket>_<initials>_<short description>

  2. 开发人员开发代码并以迭代方式将代码部署到沙盒环境中,以完成票证。

    注意

    开发人员可以选择创建一个sandbox分支来运行自动构建或在沙盒环境中部署管道。

  3. 开发者使用 squas feature h 合并创建从main分支到分支的合并请求。

  4. 持续集成和持续交付 (CI/CD) 管道会自动生成工件并将其从main分支发布到开发环境。

  5. 批准者手动批准将发布构件部署到开发环境。

  6. 批准者手动批准将发布构件部署到测试环境。

  7. 批准者手动批准将发布构件部署到暂存环境。

  8. 批准者手动批准将发布构件部署到生产环境。

DevOps 工程师

故障排除

事务解决方案

分支冲突

Trunk 模型可能出现的一个常见问题是,需要在生产环境中进行修补程序,但需要在修改相同资源的feature分支中进行相应的更改。我们建议您经常将来自下级分支的更改合并main到较低的分支中,以避免在合并到时发生重大冲突main

相关资源

本指南不包括针对 Git 的培训;但是,如果你需要这种培训,互联网上有许多高质量的资源可供选择。我们建议您从 Git 文档网站开始。

以下资源可以帮助你完成中继分支之旅。 AWS Cloud

AWS DevOps 指导

后备箱引导

其他资源