我有一个包含多个Python包的Python Web应用程序。在服务器上构建和部署它的最佳方式是什么?
目前,我使用Capistrano部署Packages,在虚拟环境中使用bash安装Packages,并使用puppet配置服务器,但我想采用更基于Python的解决方案。
我已经研究了一下zc.buildout,但我不清楚我能/应该用它做什么。
我有一个包含多个Python包的Python Web应用程序。在服务器上构建和部署它的最佳方式是什么?
目前,我使用Capistrano部署Packages,在虚拟环境中使用bash安装Packages,并使用puppet配置服务器,但我想采用更基于Python的解决方案。
我已经研究了一下zc.buildout,但我不清楚我能/应该用它做什么。
取决于您的基础架构。我们只是使用 Debian 软件包和 Buildbot 来制作它们。
在其他设置中,我使用 Fabric 脚本。至于格式,我只是使用 tbz2 文件,但我听说有人只部署 eggs。
我强烈建议拥有适当的构建,并使用 BuildBot/Hudson 来构建软件包,因为使用 SCM 是违背目的并鼓励不良实践。
我使用Mercurial作为我的SCM系统,也用于部署。只需从另一个库克隆存储库,然后进行拉取/更新或提取即可使其保持最新。
我使用多个存储库实例 - 一个在开发服务器上,一个(或更多,根据情况)在我的本地机器上,一个在生产服务器上,以及一个“主”存储库,可供更广泛的互联网访问(尽管仅通过SSH)。
它唯一无法自动更新的是数据库(如果有变化),但是通过传入钩子,我可能也可以做到这一点。