为Web应用程序开发设置协作环境

时间:2011-10-25 20:59:28

标签: magento web development-environment

我的办公室正在发展,我的任务是为我们的网站开发构建IT。

在群组设置中进行Web开发的最佳工具/设置是什么?这些要求是一个集中的代码存储库,一个测试开发代码的位置,最后是一种将标记代码推送到临时服务器的方法。我认为svn / redmine用于代码存储,每个用户在中央开发机器上都有一个帐户,允许在开发服务器上进行ssh访问(esh over ssh)和他们自己的虚拟主机,这为每个人提供了一个集中开发沙箱。代码在此开发框中编写和测试,然后检入svn并稍后标记并推送到登台服务器。是吗?思考意见或建议?

*此外,在开发环境中,处理数据库的最佳方法是什么?从生产数据库中提取是否明智?每个开发人员是否应该拥有他/她自己的数据库或者使用主数据库?

**我们正在构建一个magento应用程序,并且还有一些在cakePHP上运行的自定义后台工具。

1 个答案:

答案 0 :(得分:2)

虽然这个主题在StackOverflow中偏离主题并被标记,但是你需要专注于以下几个方面:

版本控制

  • GIT拥有所有的荣耀,你不需要自己的盒子,因为https://bitbucket.org/提供无限数据和私人/公共回购,你可以在那里设置你的代码库。 http://github.com也是功能强大且事实上最流行的面向版本控制的工具,虽然它的价格很低
  • 所以你的主分支就在你的版本控制中,你的开发人员会在那里结账并同时承诺
  • 您的部署工具将从主服务器将数据部署到您的实时和登台环境

ENVIRONMENTS

  • 通常有三个使用LIVE,STAGE,DEV
  • 现场直播,只有经过批准的代码才能部署
  • STAGE是预生活环境,根据LIVE应该是精确的复制环境所以商家可以在那里测试所有东西
  • DEV很酷,可以拥有精确的复制品,但也可以在开发人员本地环境中使用,并且可以进行宽松的测试和试验

数据库和部署

  • mysql数据库很难同步,所以你最好有一个脚本,它可以从live到其他人同步,并防止从其他环境同步到LIVE。此限制还要求所有配置和内容仅从LIVE添加,然后才会在线路上同步。模式或永久设置的每个更改都应该由更新脚本处理(正如我们所说的MAGENTO CE,MAGENTO EE已经内置了迁移)
  • 用于部署我还建议您构建一个结构或capistrano脚本,用于重置开发和登台环境,处理数据库重置和从LIVE DB拉取,并从中央存储库导入代码。

定位以下日常任务也是一个好主意:

  • 客户需要重置舞台以进行测试
  • 项目经理,开发人员或测试人员需要进行测试,因此产生一个测试克隆应该是一个单独的操作(获取当前的数据库和代码并使其存在于某个子文件夹中以进行特定测试)以及删除测试
  • 第三方开发人员可能需要访问特定的测试或开发环境(这与magento实际相同,因为平均每个magento商店至少安装了10个外部扩展)