开发和生产工作流程

时间:2009-10-09 21:56:53

标签: svn cakephp workflow production

我已经看到这个问题的各个部分在网络上解决了,但我仍然感到困惑,所以我想我会问Stack Overflow的聪明人对此有所了解。

我们是一家小型创业公司,目前我们的工作流程来自开发 - >生产涉及ftp-ing并且只是上传开发代码。

dev代码IS受颠覆控制 - 虽然我们没有利用中继/标签/分支,因为我不知道如何最好地使用这种结构。我觉得应该与现场网站无缝集成,不需要我复制粘贴文件夹和文件。

以下是一些细节: - 在CakePHP + MySQL上开发 - 在Media Temple(gs)举办 - 开发人员同时使用Mac OS(Coda)和Windows(Dreamweaver)

所以我的问题是:你如何设置适当的可扩展工作流程?

3 个答案:

答案 0 :(得分:3)

对于没有质量保证的小型组织来说,您的工作流程似乎是正确的。我建议你把一些资源投入到

1)构建生产版本并拥有版本方案,以便您可以准确地跟踪生产版本。标记每个版本,以便您可以跟踪它。

2)构建安装程序。不要手动复制文件夹,因为你可能会犯错误。安装程序还可以轻松跟踪生产中出现问题的时间。

3)在部署之前对生产做一些质量保证。即使是一点QA也有很长的路要走。开发人员不是好的测试人员,因为他们可能偏向于该计划的“功能”。

4)在您真正使用它之前,不要打扰分支。只有这样才能清楚你需要哪种结构。颠覆red-book对如何构建分支有一些想法。

答案 1 :(得分:2)

我过去做过这种方式的一种方法是让生产代码实际上是一个实时的颠覆客户端,拉出“生产”分支。

所以你在开发分支上照常工作,每当你准备好时,你都会将副本剪切到生产分支。同步生产服务器,您就在线了。如果出现问题,您始终可以重新同步到旧版本。

对于额外的点,您可以添加一个临时分支,这样您就可以捕获代码中不是的所有更改内容。然后将它们添加到部署脚本中,该脚本将根据需要调整生产系统。

答案 2 :(得分:2)

我认为要考虑的关键是要包含尽可能多的流程和工作流程,以提高代码质量并减少部署工作量。关键是在代码库安定下来时开始创建其中的一些东西。在一切都在迅速变化的早期,你将花费更多的时间来更新脚本而不是用脚本保存。

我会推荐以下内容:

  1. 创建自动构建脚本。可以使用许多不同的技术和脚本语言(我更喜欢Ant)从源代码控制中提取文件,自动增加版本号,添加标记并创建部署包。这可能需要花费大量精力来设置和解开开发人员目前正在执行的任务,但这将在长期内获得巨大回报。它应该让开发人员摆脱重复的构建任务,让他们专注于解决您的技术问题。如你所知,开发人员一遍又一遍地做同样的事情而感到无聊,当你感到无聊时,你就开始犯错误。

  2. 自动安装。这是一个边际优势,而事情仍处于快速发展阶段,但从长远来看,它将释放可能更好地用于其他地方的资源。至少,您应该有一个安装包和安装步骤来部署代码。

  3. 暂存环境。您可能会争辩说,只有在您的用户群足够大以至于在部署代码时生产系统消失时才开始进行sqawking,这是不必要的。拥有一个允许您测试更改而不会让用户群感到不舒服的系统非常重要。但当然,这也需要一些质量保证工作。在部署之前,您肯定需要一些测试。开发人员总是认为他们是对的,从来没有错过任何东西,但他们永远不应该被相信。总是有一个他们从未想过的不同代码路径或一些新的点击排列。

  4. 备份您的SVN 。这应该是不言而喻的,但我在一家公司工作,我们的源存储库没有备份超过两年。您可以通过执行svndump进行备份,然后将生成的文件复制到另一个位置。您也可以只备份存储库所在的文件夹,然后在出现问题时进行恢复。