現在、3 つの linode サーバーがあります。
1: キャッシュサーバー (Ubuntu、ワニス)
2: アプリサーバー (Ubuntu、nginx、rabbitmq-server、python、php5-fpm、memcached)
3: DB サーバー (Ubuntu、postgresql + pg_bouncer)
アプリサーバーには複数のサイト (トップドメイン) があります。各サイトは、virtualenvwrapper で作成された仮想環境内にあります。トラフィックの多い大規模なサイトもあれば、トラフィックの少ない小規模なサイトもあります。
典型的なサイトは、python (django)、セロリ (beat、flower)、gunicorn で構成されています。
私の現在の開発パターンは、アプリ サーバーのステージング環境内で動作し、変更を git にコミットしています。その後、環境を本番環境に変更して を実行しgit pull
、 を./manage.py migrate
実行してプロセスを再起動しますsudo supervisorctl restart sitename:
が、これには時間がかかります。もっと簡単な方法があるはずです!
したがって、docker はすべてを簡素化するのに役立つように思えますが、すべてのサイトと各サイト内のコンテナーを管理するための最善の方法を決定することはできません。
http://panamax.ioとhttps://github.com/progrium/dokkuを見ましたが、それらのいずれかが私のニーズに合っているかどうかはわかりません。
理想的には、ローカル マシンで各サイトの開発バージョンを実行し (cache-server、app-server、および db-server をエミュレート)、そこでコードを変更してテストします。変更が機能していることを確認したら、すべての面倒な作業を行い、変更を Linode サーバー (主にアプリケーション サーバーと考えます) に送信するコマンドを実行し、サーバー上ですべての移行とプロジェクトの再起動を行います。 .
これを達成する方法として、誰かが私を正しい方向に向けることができますか?