2012-10-22 32 views
4

我目前正在管理一个实时Web应用程序的开发。有两个开发人员。我们正在寻找定义一个工作流程来指定应该如何进行构建和部署。部署工作流程

我们目前使用codebaseHQ进行源代码管理。

这是我在想什么:

  1. DEV1和DEV 2 get和更改提交到上CodeBaseHQ单个存储库。
  2. 我们将更新从codebaseHQ推送到与生产数据库分离的alpha.domain.com进行初始测试。
  3. 假设测试进展顺利,将更改合并到与生产数据库耦合的beta.domain.com中,以便进一步测试。
  4. 假设这些测试顺利进行,请合并到domain.com(生产)。

听起来不错?对于开发人员来说,这似乎是一个非常繁琐的过程 - 他们必须为每个变更集测试/推送两次。如果不经常更新,这似乎是可以忍受的,但如果我们每天都在推动更改,那么您会推荐什么?

+0

您可以使用构建过程(ANT或Maven)来协助完成此操作。使用ANT,您可以具有部署到开发,阶段,产品等的特定目标,并为每个环境配置数据库连接。再加上运行单元测试或与CI集成的能力,它根本就不会那么辛苦。 – thescientist

回答

1

对于开发人员来说,这似乎是一个非常繁琐的过程 - 他们有 为每个变更集测试/推送两次。

听起来像你没有太多的自动化推进或测试的地方。一旦你有了一些自动化测试,你可以使用像Go这样的工具(完全公开:我在那里工作)来定义不同的环境和model工作流程,以便推动到不同的环境自动发生。您每天都在推动变更是件好事,您可能会在连续交付book中找到很多相关建议。

+0

同意!自动化是必须的。 Inedo的BuildMaster(http://inedo.com/buildmaster)是非常流行的平台,可以帮助解决这个问题;有一个免费版本可能可以满足您的需求。 (免责声明:我在Inedo工作) –

0

我真的很讨厌推广源代码以促进功能生产的想法。我是通过环境促进构建的狂热粉丝(我想Bagheera也是,因为我们是竞争对手)。

无论是编译还是只是一个包,都可以获得“构建”,并通过使用脚本或工具的环境升级该包。