【问题标题】:What do I need to know/learn for automated python deployment?对于自动化 python 部署,我需要了解/学习什么?
【发布时间】:2023-03-12 11:50:01
【问题描述】:

我正在 Python 中启动一个新的 webapp 项目以进入敏捷思维模式,并且我想在部署方面“正确”地做一些事情。但是,我发现整个 virtualenv/fabric/zc.buildout/etc 的内容有点令人困惑——我习惯于将 PHP 文件通过 FTP 传输到服务器并将网络服务器指向它。

部署后,服务器设置如下所示:
Nginx --proxy-to--> WSGI Webserver (Spawning) --> WSGI Middleware --> WSGI App (probably MNML or similar)
python 网络服务器由 supervisord 管理。

我应该研究什么样的部署设置/包/应用程序?我的应用是否需要坚持特定的目录结构以简化部署?

【问题讨论】:

    标签: python deployment virtualenv


    【解决方案1】:

    您的部署故事取决于您的应用。你在使用 Django 吗?然后Apache + mod_wsgi deployment docs 是一个很好的起点。然后你可以用谷歌搜索更多细节,比如这个2-partseries使用pip、virtualenv、git和fabric。

    真的,fabric、virtualenv 以及所有其他工具旨在让您的部署更易于维护和自动化。最初,文档中的步骤可能就足够了。在您对事情的运作方式有所了解后,您可以重新审视以改进您的流程。

    【讨论】:

      【解决方案2】:

      您已经提到了构建,这就是您所需要的。谷歌例如不同部分的构建。第一次设置需要一些时间,但您也可以在不同项目之间重复使用设置。

      让 supervisord 启动一切,而不仅仅是 python 服务器。然后在 fron cron 或 init.d 重启时启动 supervisord。

      【讨论】:

      • 我打算让 supervisord 管理所有与 python 相关的东西,然后让 monit 监控 supervisord、nginx、DB 等。
      • 嗯,这显然取决于你,但这些不是在做同样的事情吗?一个还不够吗? (我必须说,我不太了解 monit)。
      • 有点,是的。主要问题是,如果 supervisord 由于任何原因出现故障,它会占用它正在运行的所有东西,而且我很确定它无法监控和重新启动自身。因此,监控它是有道理的。
      【解决方案3】:

      我听说过关于Fabric 的好消息:

      Fabric 是一个 Python 库,并且 命令行工具旨在 简化部署应用程序或 执行系统管理任务 通过 SSH 协议。它提供 用于运行任意 shell 的工具 命令(作为正常登录 用户,或通过sudo),上传和 下载文件等。

      【讨论】:

        猜你喜欢
        • 2011-04-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-28
        • 1970-01-01
        • 2021-05-29
        • 2011-01-13
        • 2018-05-30
        • 2011-11-20
        相关资源
        最近更新 更多