質問: 当方、フレームワークはdjango、デプロイ先のサーバーは共用レンタルサーバーで、サイトを開設・運用しているものです。 これまではコード改変ごとにSFTPクライアントで上書き保存していたのですが、今週よりgit、githubの学習を始めました。 併せてデプロイツールの勉強し始めようかと思っているのですがansible・chef・dockerなどいろいろありますが、初めて取り組むにはどれがお勧めとか、ございますでしょうか?? ^^?? それぞれ特性がちょっとよくわかっていないもので・・・学習コストを考えて最初にどれにすればいいのかな・・・と考えても経験がないため答えがでてきません・・・ もし複数学ぶ必要があれば順序もお聞きしたいです。jenkinsというテストを自動でやってくれるツールもあるとのことなので、そういうソフトとの兼ね合いも併せて伺えますと本当に助かります^^ 共用サーバーが手狭になった際にはaws等での運用も考えております。どなたかもし可能であれば上記お伺いできると助かります!^o^/
回答: ansible、chef等の構成管理ツールとdockerのデプロイが並列で語られていることに違和感を感じますが、OS単位の構成管理であれば前者、後者はコンテナに対してのデプロイが主な役割と理解しています。 前者であればコンテナに対しての構成管理も可能となりますが、後者はOS単位の構成管理は不可能ではないでしょうか。 ansibleについては、Windowsに対しての構成管理も可能(やったことはないですが)、agentが必要ない等メリットが多く、構成管理のほとんどを1ツールで行えます。 ansibleとchefでは、現時点ではansibleの方に旗が揚がると思っています。 ただし、難しい・・・ 理解するのに時間がかかります。 > > jenkinsというテストを自動でやってくれるツール > > > jenkinsについては知らなかったので調べてみました。 ジョブの自動実行ツールであり、テスト等は自分でコードを書かなくてはならないように見受けられます。 ansibleとの連携を書いている人もいます。 http://sil.hatenablog.com/entry/jenkins-ansible-deploy シェル書くか、ansibleのplaybookを書くかの違いしかないようですが... まずは、アプリケーションの展開方式によって学ぶものを決めたほうがよいのではないでしょうか。 コンテナ単位であればdocker OS単位であればansible またはchef ちなみに、dockerの方が学習コストは低いと感じます。