【问题标题】:What are good code deployment strategies?什么是好的代码部署策略?
【发布时间】:2010-10-14 00:31:57
【问题描述】:

我正在做一个 Django 项目。我们的团队遵循敏捷实践(TDD、非常短的启动时间等)

在功能的部署阶段,我们按照手动程序将代码部署到我们的生产机器上。从某种意义上说,手动程序是手动运行(整个项目的)测试用例并手动运行syncdb(或任何最新的数据库更改)和其他东西。

这个手动的东西每天大约需要 1/2 小时。所以我想自动化这个。那么是否有任何自动部署系统或其他东西可以接受我给出的命令并做我想做的事情,或者它应该只手动完成? (使用一个包含我所有命令的简单 shell 文件。在这种情况下,我需要学习一点 shell 编程,因为如果任何测试用例失败,我不想在生产机器上更新我的最新代码。所以这样的排序的部署条件存在,这可能涉及一些 shell 编程。我猜!)

【问题讨论】:

    标签: automated-deploy


    【解决方案1】:

    我自己刚开始研究这个,看起来 Capistrano 的 Python 等效项是 Fabric,尽管可能没有那么成熟。似乎越来越多的人想要切换只是因为 Capistrano 过于以 ruby​​/rails 为中心,尽管我没有看到有人抱怨 Capistrano 无能或缺乏。 YMMV。更多信息herehere

    编辑:看起来 Fabric 正在经历很多变化。他们将主页移至http://docs.fabfile.org/

    【讨论】:

    • 我的一位同事编写了一个 python 脚本来处理“svn update”,运行测试用例和其他用例(也基于问题中提到的条件)。它与 Fabric 位于同一行
    【解决方案2】:

    因此,在敏捷术语中,您已经确定了部署过程中的重复,现在您正在寻找重构它的方法。 ;-)

    在 Ruby/Rails 世界中,您首先会求助于 CapistranoVlad The Deployer,而在 Python/Django 世界中,您会求助于等价物,除了 AFAIK 没有。

    this post看来,Capistrano 已成功用于处理 Django 部署,因此这是一个值得探索的选项。

    除此之外,为什么还需要 shell 编程?你有一个超级强大的 Python 脚本语言 - 为什么不自动化你的手动过程呢?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-27
      • 2010-09-30
      • 2012-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-09
      相关资源
      最近更新 更多