【问题标题】:Query regarding docker, test environments and dev workflow关于 docker、测试环境和开发工作流程的查询
【发布时间】:2015-06-30 16:50:13
【问题描述】:

我是一名 QA 自动化工程师,我正在研究 docker 作为运行我们测试的潜在方式。

传统上,我们遵循 git flow 方法,基本上你有一个 dev 和一个 master 分支。 Dev 不断将他们的新更改合并到 dev 分支。当我们希望发布时,我们将截断代码,其中当前 dev 分支上的所有内容都被视为下一个版本的一部分。然后运行脚本来创建候选发布版本,并将其部署到登台。需要对发布分支进行任何修复,一旦准备好进入生产环境,新代码就会合并到主控并部署。 Master 重新合并到所有分支,以便一切都是最新的。 (在这里更详细地描述:http://nvie.com/posts/a-successful-git-branching-model/)。

所以我的问题是关于 docker,你需要这个工作流程吗?我想也许有一个如下所述的工作流程:

  • 开发人员开始着手开发一项新功能。
  • Dev 拉出 master,创建功能分支 - 他的 dev 是否​​工作 - 单元测试通过,dev 很高兴工作去 QA
  • Dev 运行脚本来创建候选版本(如果新代码已被另一个开发者合并到 master,这将涉及再次拉取 master),
  • Docker 然后启动一个容器,其中包含多个容器(前端应用程序、数据库实例等)
  • 然后针对此候选版本运行测试(单元、api、selenium 集成等),如果成功部署到生产环境。

那么,我是否需要一个传统意义上的 staging env,它始终可用?

【问题讨论】:

  • 你的意思是要用开发者的电脑(运行docker容器)替换staging环境吗?
  • 嗨,Thomasleveil - 在某种程度上我猜。当开发人员运行脚本以创建候选版本时,将创建暂存环境。我的意思是使用 docker 意味着我们应该能够非常快速地启动与生产相匹配的容器,那么我们是否需要传统意义上的暂存环境?抱歉,如果这不是很清楚,现在只是想了解一下 Docker。

标签: testing docker


【解决方案1】:

我认为您将两件事混为一谈:持续集成环境和暂存环境。 Docker 确实可以轻松启动整个堆栈的新实例以进行持续集成(请参阅drone 以获得一个很好的示例),但通常您仍然需要一个在部署到 prod 之前始终可用于测试的暂存环境。这个暂存环境应该运行最终部署到 prod 的相同 docker 镜像。

【讨论】:

  • 是的,谢谢阿卜杜拉。你是对的。经过更多的思考后,环境仍然存在!
猜你喜欢
  • 2015-10-18
  • 1970-01-01
  • 2015-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多