短い答えは、はい、Dockerが役に立ちます。
長い回答は主観的なものであり、希望の結果を達成する方法によって意見は異なります。例えば、VirtualboxおよびVagrantのような仮想化ツールを使用して、オフラインでの開発コピーを作成することが可能です。
だから私は、最初に自分自身に次の質問をするだろう:私は通常生産に自分のアプリケーションを配備ん
- を?
- この展開は自動化され、繰り返し可能ですか?
- すべてのアプリケーションのプラットフォーム(およびデータ)の依存関係はキャプチャされていますか?
すべての質問に答えると、Dockerのような新しいテクノロジーを採用するのに最適です。あなたは今やっていることとやるべきこととの間のデルタを理解するだけです。残念ながら....すべてのソフトウェアリリースを担当する渡されたウィザードによって作成された「魔法のビルドサーバー」と呼ばれるものは、企業にとって珍しいことではありません.-(
私のアドバイスは、仮想マシンを使用したアプリケーションの繰り返しの展開CAPSツール(Chef、Ansible、Puppet、Salt)のいずれかを使用してサーバーのセットアップに必要なすべての手順をキャプチャする、つまりinfrastructure as codeをキャプチャしてDevOpsを開始します。 test kitchenを使用して、これらすべてをローカルの開発環境にまとめます。
あなたがドッカーのような新しい技術を採用するための良い位置にある(一方)と仮定すると、その後、私はその後、いくつかの非常によく似た質問自問:
- をどこでドッキングウィンドウを実行する予定行いますプロダクションでのアプリケーション?
- Dockerコンテナの展開と管理にはどのようなオーケストレーション技術が使用されますか?
- 各アプリケーションリリースのDockerイメージをビルドして保存するにはどうすればよいですか?
回答へのジャンプ今、最大かつ最悪のコンテナ管理ソリューションであるKubernetesをお勧めします。 GoogleやAzureなどのクラウドによるネイティブサービスとして提供されるようになっています。歴史的にKubernetesはそれをローカルで実行するのは難しかったが、それはminikubeやminishiftのようなツールの出現とともに変化している。私はそこで止める。
結論私はあなたの意思決定において私の長い暴動が少し利益をもたらしてくれることを願っています。
+1はDBマージに言及しています。あなたが言うように、これはDockerを使用することとは独立した問題です。公正では、Djangoにはスキーマ管理機能が組み込まれていますが、DB内にデータをマージするための魔法の弾丸はありません。アプリケーションのスタンドアロンコピーを作成するために使用される自動化にこれを組み込む必要があります。 –
私はデータベースの同期は問題ではないとは言いませんが、それは私が処理できるものです。私の主な質問はオフラインの部分であり、あなたの答えは、私がDockerがどんなに役に立つかについて感じたことを確認しました。私はプロジェクトの初期段階にありますので、しばらく前にDockerを扱わないと思っていますが、先の作業を予見できます。 –