djangoproject.com如何将其部署到prod?我应该将我的django项目打包以进行部署吗?

时间:2018-03-09 08:48:20

标签: python django deployment packaging

我知道这不是一个SO风格的问题,但我认为知道答案是非常有益的。

djangoproject.com source对于了解Django项目的可能布局非常有帮助。但是,缺少setup.py文件表明此项目未打包#34;把它投入生产。

我对&#34;如何设置nginx&#34;,&#34;使用哪个DB&#34;,&#34;如何<insert detail of hosting>&#34;不感兴趣。我有兴趣了解的内容包括:

  1. 他们如何将djangoproject.com部分部署到他们的生产服务器?
    • 他们只是在他们的盒子上做git pull来获取文件吗?还是一个scp / rsync / ftp?
    • 执行此步骤的人/人是谁?我猜测它是自动化的,但它是否基于标签触发?或关闭.tar.gz文件放在一个特殊的位置? (鉴于github项目中没有标记/发布和只有一个master分支,我猜测是否会部署到master的任何内容?)
  2. 如果需要,他们如何管理回滚? /它是自动化的吗?(实际细节不是必需的,但一般信息会很好)
  3. 我应该打包我的应用程序进行部署吗?
    • 我一直更喜欢打包部署(即我打包我的项目,将其放在私有PyPI中,并有一个单独的&#34; deploy&#34;项目安装),但我开始怀疑是否有必要/一个好主意。
  4. 这里有很多关于各种情况下部署细节的问题(apache vs nginx,AWS vs heroku vs your own,ansible vs fabric vs ...),但我真的很想关注包装/项目布局和部署的关系。

1 个答案:

答案 0 :(得分:0)

这是一个非常开放的问题。

  1. 我肯定会提出反对git pull的原因有多种原因,即将不需要的代码拉入生产环境。有许多CI / CD服务,即AWS codedeploy,可以自动执行此过程。

  2. 回滚也可以在CI / CD级别自动执行,许多服务允许您选择已部署的修订版以进行回滚,和/或从之前的git提交重新部署新版本。

  3. 我还没有看到这种类型的部署..你有正确的想法,我建议你查看Docker and Docker Compose