4

我想对最小/样板的专业 PHP 团队开发环境达成普遍共识。我在网上的任何地方都找不到这些信息。在开源世界中,有很多选择和做事的方法很多,但我还没有找到任何适用于基础设施/管道方面的通用最佳实践。

考虑一个拥有 5-10 名开发人员/设计师团队的小商店,他们正在开发 LAMP CRUD 应用程序。他们需要管理开发、登台和生产构建。他们想要高质量的软件,而且他们不能互相踩着脚趾试图把事情做好。部署需要简单快速。有时会有修补程序。将生产服务器回滚到以前的版本需要同样快。

需要考虑的事情是:

  • 源代码管理(SVN、git、Hg)

  • 数据库模式/数据持续集成,与源代码修订相关。这是我特别感兴趣的一个。

  • 单独的开发环境(例如,每个开发人员都有一个开发环境的 VMware 实例来修补(数据库服务器、Web 服务器、代码、数据等))

  • 管理中央开发、登台和生产构建

  • 生产部署(例如 tar 球、.rpm/.deb)

  • 自动化测试(例如 SVN 提交挂钩、用于较慢测试的夜间 cron 测试)

  • 团队沟通(错误跟踪、内部文档、irc/im 等)

我已将此开放给社区编辑,因此请随时编辑/添加。理想情况下,有人可以访问此页面,几个小时后,他们的团队就可以开始开发了。

4

2 回答 2

1

我会开始的。随时编辑和改进

这是一个虚构的产品,名为:dundermifflin.com

  1. 设置一个开发虚拟机,运行您计划在生产中使用的相同软件:例如带有 PostgreSQL、Apache 和 PHP5 的 Ubuntu。

  2. 每个开发人员运行他们自己的虚拟机副本,主机名设置为他们的用户名,(例如 phpguy.dundermifflin.com)

  3. 设置中央登台服务器(与开发 VM 相同)。这是 staging.dundermifflin.com。

  4. 为 dundermifflin.com 设置一个带有新存储库的中央 Subversion 服务器。这是 devel.dundermifflin.com。

    • 4a。添加提交后挂钩以运行“主干”提交的测试
    • 4b。将提交后挂钩添加到打包/部署到登台服务器以进行标记为“登台”的提交
    • 4c。添加提交后挂钩以打包/部署到生产服务器以进行标记为“发布”的提交

此方法不涉及数据库持续集成,这意味着将 SVN 回滚到以前的版本会破坏构建,除非您的数据库非常静态。建议?

  1. 使用中央 Subversion 服务器 (devel.dundermifflin.com) 上的 Bugzilla 进行错误跟踪。

  2. 编写一个 shell 脚本来运行 PHPUnit/SimpleTest 测试(由项目 4a 调用)。

于 2008-10-17T00:45:28.433 回答
0

对于持续集成,与您的版本控制系统相关联,以及自动化单元测试,我觉得这篇文章非常有趣:

使用 CruiseControl、Ant 和 PHPUnit 持续构建

于 2008-10-20T01:30:33.287 回答