Web应用程序部署 – 检查与否

部署Python Web应用程序时,使用以下方法来部署应用程序有什么优点和缺点:

  1. 使用VCS在服务器上进行检出
  2. 使用FTP / SSH / rsync传输本地签出的副本
  3. 创build一个合适的包并将其传输到服务器

(注1 – 我目前使用的方法1.但是我的存储库可能包含许多其他项目相关的文物,以及实际的应用程序,所以这似乎最适用于SVN,我只能检查出相关的文件夹 – 与DVCS所有或没有办法,这看起来不是这样一个好主意)。 (注2 – 我目前正在切换到DVCS)

我走4:在服务器上有一个克隆,然后做一个存档和部署(如我的git推部署工具,Giddyup中所示 )。

根据我的经验,其他方法的问题是:

  1. VCS结帐:您的结帐包括版本控制元数据,如果您忽略使用networking服务器configuration进行适当的保护,可能会将您的源代码暴露给攻击者或终极好奇。
  2. FTP / rsync:这种方法没有什么特别的错,尽pipe一个天真的实现(FTP或rsync到一个空目录)需要更多的时间和带宽来传输一切。 也有一个不愉快的习惯,部署没有签入的东西(总是一个冒险来诊断那个 ),因为它只是躺在你的本地工作副本。 (你可以解决这个问题,但是他们大都归结为“做一个本地结账”,这就是(1)。
  3. 虽然我是一个包装坚果 ,但我发现包装大多数(TM)webapps是过度的 – 他们是数据,而不是程序(从服务器的angular度来看),所以包装在一个包裹最终不必要的(假设你有一个很好的部署机制,包括logging你的部署,彻底修改控制它们等等)。