WHAT'S NEW?
Loading...

VagrantでBoxファイル自作するよりVirtualBoxでクローンしたほうが楽しい

少々釣り気味なタイトルで申し訳ない、という書き出しで始まる記事を最近よく見るんだよね。

別に釣りだってイージャネーカ!

前回Vagrantの記事書いておいて全く逆の事書くのも愉快なので、早速行ってみよう。

はっきりいって俺はVagrantはまだそれほど使い込んでないってのもあるけど、みんなが絶賛するほど便利なのかなぁ~って思ってる。むしろ面倒くさいと思う時もある。

わははは!!本当に前回と正反対だよね。すまんすまん。ジョークだと思って気軽に読んでくれ。

でね、Vagrantマニアには悪いけど、ひと通り軽くVagrantやってみて、今の俺にはVagrantがそれほど便利って思えないのよ。理由は明白で、Windowsだからだと思う。



というわけで、そもそもOSのセットアップとかチマチマやるのが好きな俺にとって、Vagrantは技術として体は通過させたけど、やっぱりOSをしっかりちまちま細かくお好きな用にベッドの下にもらくらく収納できるようにいじり倒したいわけ。

将来的にはLPICも狙ってる俺としては、そのほうが面白いってわけよ。うん。

だからさ、VagrantよりVirtualBOXのVMクローンのほうが便利!とか早い!とか効率的!とかじゃなくて、あくまで俺が楽しいとおもったってのが理由ね。だからVagrantはDisらないよ。あれはあれで素晴らしい技術だ。

Fedora大好きオサーンのオガーンが突然Debianとか使わないといけなくなったら、速攻でVagrant使わせてもらうよ。

というわけで、VirtualBoxでしっかりOSをセットアップし、ユーザランドに何か打ち込む前に、クローンしておくのはどうだろうか、とおもった。

Vagrantの開発者であるMitchell Hashimoto氏が以前来日して、ミートアップを行ったらしい。詳細は参加してないのでわからないけど、こちらのサイトに詳しく乗ってた。

http://goo.gl/vugHl

ここでは、Vagrantがどれだけ便利なのかを説明しているんだよね。
でも、読んでて、はて?俺はそんな深刻な開発現場に出会ったことがないぞ!?とも思った。

そりゃ純粋な開発会社に長くいたわけじゃないし、俺自身が生粋の尖った開発者でもないから、そんな切羽詰まった現場を経験してないだけじゃないか、と言われるかもしれないけど、少なくともYahoo! BB回線使ってる人たちは俺が作った仕組みをすべからく目にしていたはずだし、アーティストプロモーションサイトのバークスだって、ほとんど俺一人が社長に喧嘩売ってまでリニューアルしたから、1日4回も5回もサーバがダウンするとかいうクソ現象が起きなくなったわけなんだよ。そういう意味では何万人、何十万人相手に、好き放題やらせてもらったもんだ。

例えば出張で韓国行かされて(プラグイン開発会社が韓国企業だった)、旨い肉と冷麺、そしてワタリガニの醤油漬けも食べてきたり、別の会社ではベトナムいってマンゴージュース飲みまくったり。

ちなみにワタリガニは帰りの飛行機で蕁麻疹が出て死ぬかと思ったけど。

でね、そんなよくわからん経歴の持ち主からしてみると、Vagrantはもしかしたら、便利だからってみんな飛びついてるようだけど、環境、目的によってはむしろ有害になることもあるんじゃないか、と、銀河帝国に対する自由惑星同盟のヤン提督みたいな論議を自分の脳内で繰り広げたりしてしまったわけだ。

そう、切羽詰まったことは、俺は、そんなにない。
そもそも全部乗り切ってきたわけだし。


ただ、たしかにOSのセットアップとか何度もやるのは無駄だ、とは思う。
しかしOSのセットアップがそんなに頻発するのか?と自問してみたけど、俺の出した答えは『NO』だった。ただそれだけのことだ。

このサイトの翻訳をちょいと引用させてもらい、Vagrantを俺が使うための利点を探してみようと思う。なるべく冷静に、可能な限り公平に判断してみようと試みてみるけど、主観が入ったって知らんよ。俺のブログで俺が俺の主観をどう書こうが、俺の勝手だからね。

Vagrantはポータブルな開発環境を作り、管理し、提供するためのツールです。


この思想は素晴らしいと思う。

Vagrantを使うとまっさらな状態から数秒で開発環境を立ち上げることができ、サンドボックスとしてsshなどが利用できるようになります。


VirtuaBoxでクローンしてもできると思う。

1つ目のユースケースは、一貫した開発環境が作れることです。例えば、新しく人を採用したとき、新しいラップトップでこのサイトを立ち上げるとしたらどうするでしょう。


一人ひとりが開発環境を持つようなスタイルだと有効だと思う。

ただソースコードの守秘義務とかNDAとか結んで常駐するような業務委託な人だと、そもそも持ち出すことが無いケースもあるわけだし、事実そういうレガシーでトラディショナルな会社も多くある。

だから現場にサーバ1台置いてそこにみんながアクセスすれば良いという話もある。規模の問題なのかな。

1つはスクリプトを実行すること。でもいくつかの問題があります。例えばあなたはMacOSを使っているけれども、本番環境がLinuxだったりWindowsだったりすること。すべてのソフトウェアがあなたのマシンと同じ環境ではありません。


Vagrant自体がMacを使うユーザに優しい感じがしないでもない。正直言うと、Fedora+Gnome2、3なんかをメインOSとして使ってた俺にとって、Webアプリケーションの開発しやすさで一番優れたOSはLinuxだと思ってる。わざわざ別のOSを使うのは、むしろなぜだ?という問の答えをしてくれた人は一人もいない。

いちばん多いのは、とにかく環境設定用のインストールスクリプトを動かしてみて、エラーが出たら対処していくという行き当たりばったりな方法でしょう。


それはビギナーの登竜門だと思うけどなぁ。それにもしエラーがでたら調べて直せばいいんじゃないかな?それともそんな時間がないくらい、呼吸の回数まで制限されるような切羽詰まった現場という環境での話なのかい?

俺はそんな職場はイヤだな。

Vagrantのもう1つのユースケースは、反復的な開発のサポートです。例えば運用担当がChefのコードを変更することを考えてみましょう。Vagrant導入前は、Chefのコードを変更したらそれをテストをするためになんども環境構築を繰り返す必要がありました。環境構築にはよくても5分とか、手間がかかれば30分以上かかるでしょう。Vagrantでは、30秒で環境を元通りに設定でき、こういった反復的な開発をサポートしています。


俺は5分でも30秒でもどっちでもいいよ。
休憩って、大事なんだぜ?

3つ目のユースケースは再利用性です。Vagrantでは、開発、テスト、プロダクション、すべて同じOS、同じ実行環境、同じ運用スクリプトを使う環境を作れます。これはしばしば開発と運用のあいだで起こる「僕の環境では動いたよ!」ということを防げるようになります。これが起こるのは、環境の一貫性がないことが原因だからです。


開発者が10人居ても100人居ても、1台かそこらのサーバがあれば同じことだよね。これも職場の環境に依存する話だと思う。

Vigrantは、ローカルマシン上で使い捨ての環境をすぐに作れます。これでコンパイラの最適化オプションや依存するライブラリの種類を気軽に試すことができます。


これは素晴らしいよね。うんうん。使ったこと無いOSを試すにはコストが低い。

でも、使ったこと無いOSを使う事自体、そんなにしょっちゅうあるのかな?とは思う。
これも各々の環境の違いによって随分と違ってくると思うよ。

Vagrantが普及すれば、開発者はプロジェクトをダウンロードして、「vagrant up」とコマンドを入力すればすぐ開発環境ができるようになります。


VirtualBoxのVMでも同じだと思う。1つ作っておけばそんなに手間かからないし。

そしてvimでもEmacsでも好きなエディタなどのツールが使えます。そしてコードは背後にある仮想マシンの中で実行されるのです。


これはまぁ、Vagrantだけって話じゃないからなんとも言えないけど。

運用担当者は、たた「vagrant up」コマンドを実行すれば、テストのための完璧なサンドボックスができあがります。


VirtualBoxは好きなVMをダブルクリックするだけだよ。

俺的な結論

というわけで、Vagrantって俺からすると、
  • マックユーザのための技術
  • スタートアップ起業的なベンチャー向け
が大きな特徴だと思うんだよね。あくまで俺の意見だけどね。

そうそう、Sublime TextとかもMacで使ってる人多いでしょ。
最近Windowsってショボイよね、存在が。かわいそうなくらいシオシオのパー。
だからWeb開発自体がマックユーザに傾いてるって事実はさけられないよな、とは思うし、それも時代の流れなんだろうね。

お金あったら俺もMBAとかほしいんだよ。

で、スタートアップね。うん。みんなあれだよね、MBAとかを所有するところからはじまるよね。何しろ格好いいし。

俺はりんごのマークがすきじゃないので、マックは漢字トーク時代で使うのやめたけど、最近のりんごのマークは単色でかっちょえぇ。当時はレインボーカラーでカラフルすぎて、お前らリビングカラーかよ、とか思ってた。

というわけで、少なくともWindowsをメインに使ってる今の俺には、Vagrantというある意味革命的なテクノロジーの利点がよくわからないということがわかった。

Windowsでの開発のしにくさを、最近切に感じる。
WindowsはPCゲーム好きな俺にとっては最高のゲームOSなんだけどね。