目前我有 3 台 linode 服务器:
1:缓存服务器(Ubuntu,清漆)
2:应用服务器(Ubuntu、nginx、rabbitmq-server、python、php5-fpm、memcached)
3:数据库服务器(Ubuntu,postgresql + pg_bouncer)
在我的应用服务器上,我有多个站点(顶级域)。每个站点都位于使用 virtualenvwrapper 创建的虚拟环境中。有些网站很大,流量很大,有些网站很小,流量很小。
一个典型的站点由 python (django)、celery (beat、flower) 和 gunicorn 组成。
我目前的开发模式现在是在应用服务器上的暂存环境中工作,并将更改提交到 git。然后将环境更改为生产环境并执行 a git pull
,然后 a./manage.py migrate
并重新启动进程执行sudo supervisorctl restart sitename:
,但这需要时间!一定有更简单的方法!
因此,docker 似乎可以帮助简化一切,但我无法决定如何管理每个站点内的所有站点和容器的最佳方法。
我查看了http://panamax.io和https://github.com/progrium/dokku,但不确定其中一个是否符合我的需求。
理想情况下,我会在本地机器上运行每个站点的开发版本(模拟缓存服务器、应用服务器和数据库服务器),在那里进行代码更改并测试它们。当我看到更改生效时,我会执行一个命令来完成所有繁重的工作并将更改发送到 linode 服务器(我认为主要是应用服务器),执行所有迁移并在服务器上重新启动项目.
谁能指出我正确的方向来实现这一目标?