如何部署和运行项目。这个空间里有很多工具。应该使用哪个以及为什么?
答案 0 :(得分:11)
这取决于您的配置。我们在Rackspace上使用以下堆栈作为我们的环境,但您可以在AWS上使用EC2实例设置相同的内容。
因此它的工作方式是Jenkins正在调查GIT对原始存储库的推送。詹金斯然后从原点拉下变化。构建一个Python Egg,运行单元测试,使用Fabric将这个蛋部署到必要的环境中并重新加载Apache配置,以确保分叉的Apache进程正在获取新的Python蛋。
希望这有帮助。
答案 1 :(得分:3)
正如迈克尔·科克尔已经说过的,取决于你的配置,我有:
您可以在此处查看部署设置: Django, Virtualenv, nginx + uwsgi import module wsgi error
为什么我在这里使用nginx和uwsgi: http://nichol.as/benchmark-of-python-web-servers
此外,我使用面料部署应用程序,以及厨师独奏http://ericholscher.com/blog/2010/nov/8/building-django-app-server-chef/
johny缓存sql查询和raven和sentry来记录应用程序上的最新情况。
答案 2 :(得分:2)
我从性能角度使用uWSGI+Nginx(我认为比较已经在另一个答案中链接),pip和virtualenv用于部署,因为这样可以保持自包含,并促进清洁使用结构或类似部署。使用git进行版本控制。 Jenkins可以处理持续集成。我会在你的EC2实例前面使用AWS load balancer (ELB)来进行平衡 - 这项工作可以让你无需担心太多。 django-storages用于将静态文件上传到s3,这可以节省您使用另一台服务器分发静态文件的工作量。
但是,这取决于您的管理费用。如果您正在寻找干净且易于部署和扩展的东西,我会废弃整个AWS EC2堆栈,使用Heroku作为前端,使用s3作为静态文件。这节省了维护盒子的所有管理时间,并使您可以专注于开发。