Vagrant up!
週1参戦要員tbpgr(てぃーびー)です。
2015/10/16ついに運用中のWebサービスの開発環境のvagrant upが疎通したので記念エントリ。
インフラ担当者さんお疲れ様です。
ご所望の寿司を存分にねだってください。
Vagrantとは?
HashiCorpのMitchell Hashimotoさんが作った仮想環境の自動構築ツールです。
環境構築をVagrantfileというプレーンテキストの設定ファイル(RubyのDSL)で管理可能です。
Vagrantによって手順書ベースの環境構築から履歴管理可能なプレーンテキストを元にした
環境の自動構築・管理に移行することができます。
Vagrant以前
新規メンバーが参入するたびに環境構築手順書を元に環境を設定する必要がある。
人間の手によるセットアップはオペレーションミスをすることも多く、
新規メンバーの加入から開発環境の疎通まで、周りの経験値が高い開発者のサポートも含めて
多くの時間やコストがかかるケースはよくあります。
また、個別に手動構築された環境がベースになると
「Aさんの環境ではバグるけど、Bさんの環境ではバグらない」
といったこともよくあります。
Vagrant以前 – 具体例
私がとあるSI’erの下請けに在籍していた頃。
参入直後に、Excel方眼紙で作成された環境構築手順書を渡されます。
手順書を元に環境構築を初めますが、手順書通りやってもエラーが発生して疎通できません。
古くからの担当者にたらいまわしにされつつも質問して、結局手順書が最新化されていないことが原因と分かりました。
環境構築の手順書が最新の状態を保たない、というのは割りとある事象です。
また、SI’erの下請けなどにいると環境構築手順書に書いてある内容を
理解できないレベルの方もちらほらいます。
そういったメンバーのためにプロジェクトになれた主力開発者がサポートをすることになります。
尻に火がついたプロジェクトの支援のために増員されたメンバが、既存の優秀な開発者の時間を奪う。
そんな事態もよくある話です。
Vagrant以後
開発環境にVagrantを用意していれば、Vagrantfileを含むリポジトリを取得し、
vagrant up するだけで簡単に環境構築が完了します。
新規参入者がハマったり、それをサポートするためにプロジェクトのエースクラスの
時間を浪費することもなくなります。
また、開発環境の構成を変更した際も最新のVagrantfileを取得して仮想環境を
作りなおせばよいだけです。
さらに
現在、デプロイ自動化が完成直前です。
Vagrantによるローカル開発環境構築、Staging・本番環境の自動デプロイの整備が終われば、
続けて自動テストの整備、継続的インテグレーションへとシフトします。
ここまで来るとコードベースの継続的改善や
システム自体のリリーススピードがアップできます。
今のところ泥臭い戦いが続いていますが、一気に楽になるはずです。
伝わる人には伝わる世界。
しかし、泥臭い世界からこの世界を作り出すことができるのは果たして何割か。
やりとげます。
To be continued…