昨日のエントリーに対する補足として、なぜVagrantを利用するのかということを考える
結論から言うとVagrantが素晴しい!!ということよりも、仮想マシンを使った開発 + Chef/Puppetでの
構成管理それぞれがメリットを持っていて、Vagrantによってそのメリットが享受しやすいことなのかな。
メリット
母艦となるPC/OSの環境が汚れない
必要なライブラリを入れていたら母艦の調子が悪くなるというありがちなパターンから脱却できる
開発メンバーが共通の環境で作業が行える
母艦のOSやスペックが異なろうと仮想マシンは統一されているのでトラブル調査が簡単
ステージング/本番と(ほぼ)同じ構成で作業ができる
Chef/Puppet等の設定を共有することでほぼ同じ構成を行える
なので、いざデプロイしたら本番/ステージングで動かない!といったことが減る
特定の時点での環境が再現可能
仮想マシンの生成+構成管理スクリプトをバージョン管理に入れることで
特定の時点でのOS/アプリの構成がほぼ完全に再現が可能
デメリット
メモリを大量に使う
仮想マシンだからしかたがない
ネットワークが遅い
仮想マシンだからしかたがない
設定ファイルを書くのが大変
我慢してください