【问题标题】:How to deploy to production in a feature-based release model?如何在基于功能的发布模型中部署到生产环境?
【发布时间】:2012-07-03 23:57:21
【问题描述】:

我们是一个非常小的团队,负责为非软件公司开发 Intranet Web 系统。我们是一个 RAD 团队:当一个问题被关闭(无论是新功能、错误修复还是某种配置)时,它会立即投入生产并上线。

问题是:这个过程完全是手动的并且容易出错。它包括手动将所有新/更新的文件一一复制到生产服务器。我们经常需要根据更新的类型运行 SQL 查询或清除应用程序缓存。

功能或错误修正每天更新两到三次,可能更多取决于需求。当然,这会导致很多问题。

它必须有一种更简单、更专业的方式。我能想到的一种解决方案是更新整个应用程序,但目前这是不可能的,因为我们的主干不稳定并且有很多提交尚未准备好投入生产(好吧,我知道这是我们的错):)

那么我们如何才能自动化和改进流程呢?我们对任何工具都持开放态度,最好是免费的或不太贵的。

有关我们的应用程序和工具的更多信息: - PHP MVC(Zend 框架) - Ubuntu - SVN(迁移到 Git) - Redmine(转移到私人 Github)

【问题讨论】:

  • 考虑在您的 SCM 中使用分支来分离稳定和不稳定的代码,并检查 Jenkins 以自动化您的构建和部署过程。 jenkins-ci.org

标签: deployment release release-management


【解决方案1】:

对于您的情况,工具只能走这么远。我怀疑您需要进行一些 PHP 单元测试、一些 UI 冒烟和验收测试,也许还有一些性能测试,然后让一个工具为您想要应用于生产的每个补丁运行所有这些。然后,您还需要自动部署脚本,可能还需要一个暂存环境来测试这些脚本。这是持续交付的一般领域,关于这个主题有一整本书。 http://martinfowler.com/delivery.html

【讨论】:

  • 你说得对,我们在测试领域还很欠缺(我们的测试覆盖率不到 1%,甚至还不是应用程序的核心)。感谢您提供图书链接,它看起来是我们正在做的一个很好的参考。
猜你喜欢
  • 2016-02-11
  • 1970-01-01
  • 2012-08-03
  • 1970-01-01
  • 2014-08-02
  • 2016-10-05
  • 1970-01-01
  • 2013-02-11
  • 1970-01-01
相关资源
最近更新 更多