ロックとチュウーハイとこりんがるな日々

日々のインプットした事をアウトプットする場所

2013年自分の中でヒットした事(技術系)

chef

chefは今年一番の衝撃的な出来事でした、ちょうどタイミングもよく、仕事でサーバを100台ほど作る 予定がありその時に出会ったのが2013年の3月ぐらいでした

タイミングよく伊藤直也さんが書いた「入門Chef Solo - Infrastructure as Code」が出たのが3/13だったと思います 初めて買ったkindle本でした、日本語で書かれた唯一のchef本だったので穴があくまで読みました 今年通してずっと手元に置いていました

サーバの設定をrecipeにしてサーバの設定をバージョン管理できるという事はかなり衝撃でした

chef + vagrant

chefでrecipe化された設定はproduction環境を構築する事が目的ですが、vagrantと併用する事で開発環境を限りなく production環境に近づけられるという事は嬉しい副産物でした

また開発のチームで環境を統一出来るのも大きな利点でした、以前ならVmのコピー配って同様の事が可能でしたが 配るファイルのサイズを大きすぎるのと配ったあとの管理は個人に任せられるのであまりカジュアルなやり方では ありませんでした

vagrant + chefの場合はvagrantfileとrecipeを配れば基本的に同環境が出来上がります、さらにprojectのコードに 含める事でgit cloneでコードと開発環境のインフラを配布する事ができます

開発環境

以前までの僕の開発環境はmacにphp/apache/mysqlを入れてローカルに環境を構築していました、phpenvを使ってphpの 各バージョンを入れたりと工夫していましたがいかんせんローカルの環境が汚れていきます

vagrantを使うようになってからは必要なツールはprojectごとにvagrantfileを作ってその中に構築しています こうする事でローカルの環境は出来るだけクリーンに保ち、projectに必要なツールをvagrantfileとrecipeに記述する ようにしています

test (phpunit / serverspec)

今年からは本格的にテストを書きました、アプリケーション側はphpunit、インフラ側はserverspecを使っています テストを書く事で心の安心感を得る事が出来た事と単体テストを全てコード化した事での時間の短縮は非常に効率的に 開発に集中する事ができるようになりました

capistrano

かなり遅いんですがサーバへのdeployを自動化しました、だんだんと数が多くなるにつれミスが目立つようになり必要に かられてdeployの自動化を行いましたが作業の効率が段違いになりました

今年書いた、chef, vagrantの記事

自分の中でブレイクしている、vagrant + chef + gitで開発環境を構築する

chef でゼロからサーバ構築をやってみる

knife-soloを設定して開発マシン(mac)からchef-soloを実行する

serverspec を使って初めてのインフラテスト