Github 使用 CodeDeploy 最佳实践到 AWS EC2
Github to AWS EC2 using CodeDeploy best practice
我们是一个相对缺乏经验的开发团队试图做事'the right way'。我们将 Github 与 AWS 和 CodeDeploy 一起用于多个基于 PHP 的 Web 应用程序。当更新 master 分支时,我们正在利用 Github 与 CodeDeploy 的自动部署。
我们在不同的 AZ 中有两个生产 EC2 Web 服务器以及一个 EC2 临时服务器。
目前工作方式如下:
我们在一个分支中编写代码,我们推送到 GitHub,我们合并到 'master',然后启动 CodeDeploy 写入我们可以测试它的暂存服务器。一旦我们测试了它,我们就会手动启动 CodeDeploy 以写入生产(使用相同的提交 ID)。
问题是,如果测试出现问题,我们还有另一个分支等待合并和测试,一切都备份了?
我们显然做错了什么。我们正在写入 master 分支以利用 GitHub 的自动部署,但我假设 master 仅在准备好部署时写入?
有人能帮我们弄清楚吗?
谢谢
创建另一个名为 'livecandidate' 的分支,该分支会将每个新功能分支合并到其中
每次将功能分支合并到 'livecandidate' 时,将 'livecandidate' 拉入您的代码部署过程并安装到测试机器。
如果测试通过,则将 'livecandidate' 合并到 'master' 并开始安装到生产环境
如果测试未通过,则将合并展开到 'livecandidate'(假设不依赖于更改链等)
完成生产安装或取消合并后,尝试下一个功能
总的想法是永远不要有坏掉的主人
All problems in computer science can be solved by another level of indirection - David Wheeler
我们是一个相对缺乏经验的开发团队试图做事'the right way'。我们将 Github 与 AWS 和 CodeDeploy 一起用于多个基于 PHP 的 Web 应用程序。当更新 master 分支时,我们正在利用 Github 与 CodeDeploy 的自动部署。
我们在不同的 AZ 中有两个生产 EC2 Web 服务器以及一个 EC2 临时服务器。
目前工作方式如下:
我们在一个分支中编写代码,我们推送到 GitHub,我们合并到 'master',然后启动 CodeDeploy 写入我们可以测试它的暂存服务器。一旦我们测试了它,我们就会手动启动 CodeDeploy 以写入生产(使用相同的提交 ID)。
问题是,如果测试出现问题,我们还有另一个分支等待合并和测试,一切都备份了?
我们显然做错了什么。我们正在写入 master 分支以利用 GitHub 的自动部署,但我假设 master 仅在准备好部署时写入?
有人能帮我们弄清楚吗?
谢谢
创建另一个名为 'livecandidate' 的分支,该分支会将每个新功能分支合并到其中
每次将功能分支合并到 'livecandidate' 时,将 'livecandidate' 拉入您的代码部署过程并安装到测试机器。
如果测试通过,则将 'livecandidate' 合并到 'master' 并开始安装到生产环境
如果测试未通过,则将合并展开到 'livecandidate'(假设不依赖于更改链等)
完成生产安装或取消合并后,尝试下一个功能
总的想法是永远不要有坏掉的主人
All problems in computer science can be solved by another level of indirection - David Wheeler