我一直在寻找有趣的网络开发技术(ya,我应该更多),并且对生产阶段(即开发,测试,性能和生产)缺乏明确支持感到有些震惊环境)。实际上支持不是这个词;内容管理系统似乎积极地反对允许进行干净分期的努力。
目前我正在使用Drupal。我很难找到社区如何解决这个问题。我见过的大多数帖子都建议在生产系统上复制开发中的步骤(阅读本文实际上缩短了我的生活一点点)。我还听说过将生产数据推回给开发人员,以便他们可以添加增量功能。如果客户端不希望您将数据提取回开发环境,该怎么办?
最后我的问题是:
您如何管理CMS的实际生产阶段性问题?
我来自一个推动生产的背景,就像把人送到月球一样,所以我可能需要放松一下。但是我仍然感兴趣的答案涉及源代码控制,允许生产回滚和测试。
答案 0 :(得分:10)
我已经回答了关于数据库部署策略的question。
代码部署还有question。
在我工作的地方,我们正在进行相当大的Drupal部署。我们大致有以下设置。
所有开发人员都有一个本地沙箱(Drupal + DB)。提交代码到所有其他开发人员共享的分支(我们大约有15个人)。这包括由更新功能执行的配置更改。
当开发人员执行svn时,他们还会运行update.php以在本地执行任何配置更改。
我们有一个sprint测试系统,它运行最简单,可用于用户测试。
在sprint结束时(我们使用scrum),我们将分支合并到trunk中,并对此运行测试。
然后我们将此标记为发布并将其部署为live(使用Capistrano),最后在live上运行update.php以将配置更改应用于live。
任何紧急修复都会从主干部署到点发布7.1等。
如果您想了解更多细节,请发表评论。
答案 1 :(得分:7)
在花了几周的时间来克服Drupal学习曲线之后,如果你正在建立一个任何复杂的网站,那么“太多配置存储在数据库中”这个问题就非常令人不安。
查看Development Seed正在采取的解决此问题的工作。他们正在领导Context,Features和Spaces模块的开发,这些模块一起工作以将配置数据存储在模块中(在DB之外),以便可以使用代码对其进行版本控制
答案 2 :(得分:2)
目前我正在使用Drupal。我很难找到社区如何解决这个问题。
这是Drupal的弱点之一;它真的没有妥善处理这件事。特别难以理清,因为Drupal的很大一部分配置都驻留在数据库中。