資材管理システムをgitへ移行しました

作業部屋

gitホスティングサービスで有名どころ言えば、Github(ギットハブ)bitbucket(ビットバケット)の2つでしょう。私も両方をプライベートリポジトリオプション付き(githubでは有料)で使ってます。

バージョン管理システムは古くはSVC、ちょっと前までSubVerionで使ってました。通常、開発中の製品は稼働中のバグFixと時期開発が同時に行われるので資材の入れ替えは頻繁に行われます。従来の一元管理方式では、まず最初に資材管理者がチーム体制を見越してディレクトリ構成を作ります。プロジェクトチームの資材原本は全部ここに集まるので、網羅的で重複のないように置き場を決めなければなりません。プロジェクトに精通した人でないと作れないです(かなり属人的)。

それに比べてgitはディレクトツリーをそのまま管理します。資材を管理するリポジトリにはローカル(子)とリモート(親)がある。変更するときはとりあえずブランチを作ってローカルで修正する。ブランチでうまく修正ができたらブランチをマージする。リモートへのプッシュすれば他の開発者とも共有できる。自分のバックアップにもなる。ほんとうに使いやすくて便利。とくに開発者にとって使い勝手が良い。

そうはいってもインターネット上に自社の構築資材を置くわけにはいない、という場合には社内Linuxサーバでgitサーバの運用が始められます。gitはオープンソース(厳密にはGNU General Public License )プロダクトなので問題ありません。実際にゲーム大手のGREEでも使ってる方法です。ブログがあるのでリンクを貼っておきます(GREEのブログ)。

もうgitを知らなかったあの頃には戻れないです。

学習用書籍の紹介。Kindle本なので私はPaperWhiteとKindle for Macでハイライトをつけながら整理して、後でわかりにくいところは実際にコマンドを叩きながら読み返しました。セミナーのテキストして使うことを意識して書かれているのでいつか勉強会やるときに使えるだろうという期待と、説明の仕方がプログラマーには入りやすい書き方なので気に入って買いましたが、インターネットを検索すれば無料の解説ページがいくらでも見つかると思います。

Vagrantだと環境構築があまりにも簡単すぎて泣けてきた

コーヒーカップ

世間はお盆休みなので電話もメールも来ません。こういう時期は集中して何か新しい分野に取り組むにはうってつけ。

構築の手順を確認するときや、新しい設定の検証するときはOracle VM VirtualBoxを使ってます。PC上に仮想PCにホストを構築できるわけで、これだけも充分に便利なのに、ポッドキャスト-RebuildによるとVagrantと使うと構築作業が自動化されるというじゃないですか。

まずはVagrantって何よ?
 仮想マシンの環境構築作業を自動化するためのツール。
 ひな形ファイル(box)があれば同一環境を作ることができる。
 ちなみにVagrant(ベイグラント)は名詞で放浪者という意味がある。

公式サイト(英語)
 http://www.vagrantup.com/

参考サイト
 PublickeyによるわかりやすいVagrantの紹介記事
 ドットインストール

書籍はamazonで探したけど適当なものが見つけられなかったが、上にあげた紹介記事だけで基本的な使い方は習得できる。

実行環境1 ホストOS Dell vostra220 / Windows 7 Pro
      仮想PCソフト VirtualBox4.2
      ひな形(Vagrant box) Ubuntu32bit版
      ssh接続 TeraTerm

実行環境2 ホストOS Macbook late290
      仮想PCソフト VirtualBox4.2
      ひな形(Vagrant box) Ubuntu32bit版
      ssh接続 MacOS標準term

やってみた感想としては、今まで環境構築の苦労は何だったのかと思うほどあっけなく簡単さに驚いた。コマンドをいくつか叩くだけで、サーバを削除したり作ったりできる。環境の元になるひな形ファイル(Vagrant Boxと呼ぶ)は自分で作ることも、人から貰うこともできる。実行環境1(Windows7)で作ったものを実行環境2(Macbook)に全く同じサーバ環境が構築できた。それも数分で終わった。なんなんでこの簡単さは?

まだこの話には続きがる。ChefとかAnsibleなどを使うと、仮想マシン(Vagrantとか)をスクリプトでコントロールできるようになる。たぶんサーバを個別じゃなくてまとめて管理できるようになる。そっちは、また別の機会にやります。では。