对于自动化python部署,我需要知道/学习什么?
我正在用Python启动一个新的webapp项目,以进入敏捷思维定势,我想在部署方面“正确”地做一些事情。然而,我发现整个virtualenv/fabric/zc.buildout/etc内容有点令人困惑——我习惯于将PHP文件FTP到服务器,然后将Web服务器指向它 部署后,服务器设置将如下所示:对于自动化python部署,我需要知道/学习什么?,python,deployment,virtualenv,Python,Deployment,Virtualenv,我正在用Python启动一个新的webapp项目,以进入敏捷思维定势,我想在部署方面“正确”地做一些事情。然而,我发现整个virtualenv/fabric/zc.buildout/etc内容有点令人困惑——我习惯于将PHP文件FTP到服务器,然后将Web服务器指向它 部署后,服务器设置将如下所示: Nginx--代理-->WSGI Web服务器(生成)-->WSGI中间件-->WSGI应用程序(可能是MNML或类似版本) python Web服务器由supervisord管理 我应该研究什么样
Nginx--代理-->WSGI Web服务器(生成)-->WSGI中间件-->WSGI应用程序(可能是MNML或类似版本)
python Web服务器由supervisord管理
我应该研究什么样的部署设置/包/应用程序?我的应用程序是否需要遵循特定的目录结构来简化部署?您的部署情况取决于您的应用程序。你在用Django吗?然后,这是一个很好的起点。然后,您可以使用
pip
、virtualenv
、git
和fabric
搜索更多细节
实际上,
fabric
、virtualenv
,以及所有其他工具的设计都是为了使您的部署更易于维护和自动化。最初,文档中的步骤可能就足够了。在您了解了工作原理后,您可以重新访问以改进您的流程。我听说了以下方面的好消息:
Fabric是一个Python库和
命令行工具,用于
优化部署应用程序或
执行系统管理任务
通过SSH协议。它提供
运行任意shell的工具
命令(作为正常登录)
用户,或通过sudo
),上传和
下载文件等等
你已经提到了构建,这就是你所需要的。例如,谷歌为不同的部分构建了一些框架。第一次设置需要一段时间,但是您也可以在不同的项目之间重用该设置
让supervisord启动一切,而不仅仅是python服务器。然后在重新启动时从cron或init.d启动supervisord。我计划让supervisord管理所有与python相关的东西,然后让monitor supervisord、nginx、DB等进行监视。当然,这取决于您,但它们做的不是差不多吗?这还不够吗?(我不太清楚,我必须说。)有点,是的。主要的问题是,如果SuperverOrd因任何原因宕机,它会拿走它正在运行的所有东西,我很确定它无法监视和重新启动自己。所以,有一个监视器监视它是有意义的。