本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
为多 DevOps 账户环境实施 GitHub Flow 分支策略
由迈克·斯蒂芬斯 (AWS) 和 Abhilash Vinod () 创作 AWS
摘要
在管理源代码存储库时,不同的分支策略会影响开发团队使用的软件开发和发布流程。常见分支策略的示例包括 Trunk、 GitHub Flow 和 Gitflow。这些策略使用不同的分支,在每种环境中执行的活动也不同。正在实施 DevOps 流程的组织将受益于可视化指南,以帮助他们了解这些分支策略之间的区别。在组织中使用此视觉效果可以帮助开发团队协调工作并遵循组织标准。此模式提供了这种视觉效果,并描述了在组织中实施 GitHub Flow 分支策略的过程。
这种模式是关于为具有多个 AWS 账户分支机构的组织选择和实施 DevOps 分支策略的文档系列的一部分。本系列旨在帮助您从一开始就应用正确的策略和最佳实践,以简化您在云中的体验。 GitHub Flow 只是您的组织可以使用的一种可能的分支策略。本文档系列还涵盖了 T runk 和 Gitflow 分支模型。如果你还没有这样做,我们建议你先查看为多账户 DevOps 环境选择 Git 分支策略,然后再按此模式实施指南。请尽职调查为您的组织选择正确的分支策略。
本指南提供了一个示意图,显示了组织如何实施 GitHub Flow策略。建议您查看《Well-Ar DevOps chitec AWS ted 指南》,以查看最佳实践。此模式包括 DevOps 流程中每个步骤的推荐任务、步骤和限制。
先决条件和限制
先决条件
Git,已安装
。它用作源代码存储库工具。 draw.io,已安装。
此应用程序用于查看和编辑图表。
架构
目标架构
下图可以像 Punnett 方feature
分支机构到生产环境中的部署。
有关 GitHub Flow 方法中的 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 桌面
是一款用于制作流程图和图表的应用程序。代码存储库包含 drawio 格式的 drawio 格式的 drawio 模板。 Figma
是一款专为协作而设计的在线设计工具。代码存储库包含 Figma 的.fig 格式的模板。
代码存储库
此模式下图表的源文件可在 GitHub Git GitHub Flow 分支策略存储库中找
最佳实践
遵循 Well-Architect AWS e DevOps d 指南和为多账户环境选择 Git 分支策略中的最佳实践和建议。 DevOps 它们可以帮助您有效地实施 GitHub 基于 Flow 的开发、促进协作、提高代码质量和简化开发流程。
操作说明
任务 | 描述 | 所需技能 |
---|---|---|
查看标准 GitHub 流程流程。 |
| DevOps 工程师 |
查看错误修复 GitHub 流程流程。 |
| DevOps 工程师 |
查看修补程序 GitHub 流程流程。 | GitHub Flow 旨在实现持续交付,在这种交付中,可以频繁可靠地将代码更改部署到更高的环境中。关键是每个
| DevOps 工程师 |
故障排除
事务 | 解决方案 |
---|---|
分支冲突 | GitHub Flow 模型可能出现的一个常见问题是,需要在生产环境中进行修补程序,但需要在修改相同资源的 |
团队成熟度 | GitHub Flow 鼓励每天部署到更高的环境,采用真正的持续集成和持续交付 (CI/CD)。团队必须具备工程成熟度,才能构建功能并为其创建自动化测试。在批准变更之前,团队必须对合并请求进行详尽的审查。这培养了一种强大的工程文化,促进了开发过程的质量、问责制和效率。 |
相关资源
本指南不包括针对 Git 的培训;但是,如果您需要此培训,互联网上有许多高质量的资源可供选择。我们建议您从 Git 文档
以下资源可以帮助您完成 GitHub Flow 分支之 AWS Cloud旅。
AWS DevOps 指导
GitHub 流量指导
GitHub Flow 快速入门教程
() GitHub
其他资源
十二因子应用程序方法论
(12factor.net)