3

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

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

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

4

2 回答 2

4

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

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

于 2009-03-31T05:00:26.843 回答
1

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

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

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

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

于 2009-03-18T09:39:15.180 回答