#はじめに
実践 Vagrantを読んで少し使い方が少しわかった記念に、Vagrantの紹介をします。
#Vagrant道
vagrantfileを取得して、コンソールにvagrant up
と叩けば、完璧な開発環境が手に入るようになっています。
(前提条件としては、Virtualboxなどの仮想化ソフトとVagrantの設定などが必要です。)
Mac/Windows/Linuxなどどの環境でも、まったく同じ環境での開発ができます。
「僕のマシンでは動いていたのに」バグはなくなります。(1.2 Vagrant道より)
実際のところ、Vagrantは仮想化ソフトをコマンドラインでコントロールするアプリケーションなので、仮想化ソフトの強みをそのまま持っています。vagrantfileを行うユーザーにもコマンド一発で動くように要求してます。
#で、具体的に何が嬉しいの
- 開発環境の配布
- サーバ群の構築
- AWS EC2の構築
こんなところだと思います。
##開発環境の配布
設定ファイルであるvagrantfileとその他設定ファイルをgitで管理すれば、開発メンバーはgit clone
して、vagrant up
すれば確実に開発環境が構築できます。
npm install
も一発で開発環境が作成できそうですが、実際、グローバルにインストールすべきモノやその中でも複数バージョンのインストールが難しいミドルウェアが競合したりといった問題はがあります。OS丸ごと構築するvagrantにはその問題がありません。
とはいえ、virtualboxのバージョンなどVagrant周りで問題がないわけではなさそうです。
また、共有フォルダの機能を使えば、コンパイル/テストはVagrantで構築した安定した環境で行い。開発は、慣れたOS、カスタマイズされたエディタで快適に行えます。
##サーバ群の構築
本番機の構成がweb/API/DBなどの複数台構成になっていたら、開発環境も合わせる方が無難です。Vagrantでは、そのような構成も可能です。
しかし、例えば3つもサーバを立ち上げるとリソースを取りすぎるため、Dockerを利用した方がよさそうです。(Dockerについては良く知りませんので見当違いだったら指摘ください。)
##AWSの構築
開発ばかりがvagrantの使いどころではありません。AWS EC2の構築もできます。「実践 Vagrant(F5)」には、手作業で行っているEC2の構築が自動化され、共有化されるので、継続的インテグレーションが行えるとしています。
先ほどのサーバ群もAWSならリソースの問題はなさそうです。(替わりにカネというリソースをとる)
#おわりに
実際どう描くのか書いてある記事は多かったのですが、どう使うかの説明はあまりなかったので書いてみましたが、端的に書くのは難しいですね。気が向いたらVue.jsの開発環境をVagrant上に作って公開しようと思います。(要望があればうれしいです。)
あと質問のコメントくださればできる範囲でお応えします。