日記はScrapboxに移動しました。Chef活用ガイド』をご恵贈いただきました。ありがとうございます。Infrastructureだから冪等性とかいらないんだーとかいう昨今ですが、そう簡単にはことは進まないので、ChefなりPuppetなりには今後もしばらくは活躍の余地があるだろうという見通しが共有されているところです。Code』から1年経ったいま、決定版ともいえるような書籍が刊行されました。Chefの入門者はもちろん、Chefやその周辺環境をより深く知りたいユーザにとっても、有用な情報が満載であるといえるでしょう。僕は趣味でChefを多少使ったりはしましたが、メインで使っているのはPuppetなので、Chefについてそんなに詳しくは知らないのですが、それはともかくとして、最初にそういったツールを使うときに困るのは、どういう感じで設計していったらいいかというところでしょう。Chefには最初からいろいろあるのでPuppetよりは指針が示されているといえばいえますが、とはいえそれなりに大きな規模のものを書いてみないことには難しいように思えます。Code”というアプローチに期待することは、ただ単にインフラをコード化するという、手続きの自動化ではありません。それは、サービスを提供するためには、まずコードを書いて各要素をモデリングし、それによってインフラを構築するという認識への転換です。Code”がソフトウェア開発から取り込むべきなのは、テストやコードレビューといった開発プロセスではなく、オブジェクト指向という考え方です。最初にPuppetに触れた時に@lamanotramaさんなどにいわれてなるほどと思ったのは、僕などは元々プログラマなので、こういう考えでした。Codeって感じだし、発見だなと思いました。ちなみに、上記はコラムからの引用ですが、この本は、本文がよいのはもちろんとして、コラムに思いがあふれている感じで、楽しめます。インフラ自動化にからめて、『機械との競争』についてのコラムもあったりして、リファレンス的な技術書としては珍しい感じがします。先述の通り、僕自身は日頃からChefを使っているわけではないので、浩瀚にわたるリファレンス的な内容については、あーそういうのあったなーとか、今度使うときはここに書かれていたのを思い出そうという感じでざっくり読んだ感じでしたが、普通にChefを使っている人々にとっては、とても有益な内容でしょう。個人的には、そのリファレンス的な章が終わった後の、実践的な第16章が、上記した設計の流れで面白く読めました。実際にありそうな構成を、Cookbookに落としていく際の考え方プロトコルベースでのロール設計Railsアプリの構成・運用方法そうそう、そういうところが難しいんだよな、という感じなので、例に基いて説明されているのはとてもありがたいです。Infrastructure』という電子書籍を書いた時に、自分自身、そのあたりをいい感じに伝えたいなと思って、あんまり大き過ぎず、かつ、ひと通り「設計」の要素のある構成を例に説明してみたりしたのでした。いうわけで、Chefについてよく知ってるひともあまり知らないひとも、全部読むかどうかはともかくとして、便利な辞書として手元においておくと、日々の業務にとても役に立つんじゃないでしょうか。その上で、上記に取り上げたあたりはざっくりとでも目を透しておくと、考えが深まるように思います。