※旧ブログから移植。

米Chef社(http://www.getchef.com/)が開発しているChefというソフトウェアの本を、クリエーションライン株式会社の樋口さんと共著しました。アスキー・メディアワークスさんから出版されてます。

発売を前に手元に2冊届きました、少々ボリュームのあるサイズ(672P)となっています。

Chef活用ガイド
Chef活用ガイド

何を書いたのか

導入はInfrastructure as Codeという概念について述べています。 その後はInfrastructure as Codeの1要素としてChefを利用することへの助けとなるべく、Chefの全要素を出来る限り詳しく解説しています。

Chefの解説については書き下ろしと、公式ドキュメントにある要素をいくらか組み直して、細かい解説などを入れながら再構成して章立てした内容になっています。 書き下ろし部分の内容を考えるために最も参考にしたのはChef-Clientのソースコードでした。

最後に付録として、執筆当時に公式のリファレンスに存在したCookbook(Resources)やLWRPの和訳などをつけています。 付録のうち和訳部分に関しては、重複するサンプルを抽出して読みやすさを調整したり、コードに間違いがある部分などを本家にフィードバックしながら修正したりといった手を加えています。

本編450P、付録が200P強という内訳です。

誰に向けて書いたのか

導入部分はどちらかというとChefの採用を検討するマネジメント層や、極端なところでITサービスプロバイダの経営層に向けて書いています。 Infrastructure as Codeという概念を引き合いに、最近サービスを支えるインフラに対して提言されているのはこのようなことですよと紹介し、コストやリスクを減らしていきましょうという呼びかけをしています。

導入部以降はいわゆる現場向けといえそうです。Chefを内部の構造からまあまあ詳細に解説しているので、実際にChefを触ってみたい・触っている・もっと使いこなしたいという方々や、Chefの挙動に興味や疑問を持つ方々に是非読んでいただきたいと思っています。

書かれていないこと

そもそもChefだけでインフラの管理がよくなるという事は決してありませんし、この本でも出だしにそう断りを入れています。 コンピュータシステムのライフサイクル管理を効率良く行なうには、用途および組織にあったツールチェーンを確立するのが望ましいことは重々承知ですが、Chefから少し離れる要素や、他のツールからワークフローの一部として使われるChefについては、この本ではほぼ解説していません。

そして、この本はあくまでガイドという位置づけであり、導入の検討や適用範囲はあくまで組織でのプランやコストを考慮して各自が行わなければなりません。もちろん事例やサンプルもそれなりに書いており、参考にすることもできますが、どこでも通用するベスト・プラクティスというわけでもありません。 (観光ガイドブックであれば、名所の場所は書かれていても、観光レポートは無いでしょう?)

ただ、テーマをChefだけに絞ったこともあり、現状で書籍という形に限れば世界中で比べても一番Chefについて詳しく書かれた本(あとOhaiも)になっていると思います。 検討の材料、導入後のリファレンスとしても十分役に立つでしょう。

なぜ書いたのか

至る経緯は諸所ありますが、お話をいただいたからです。

その時点でそこそこChefを使ったり、他所に導入したりを始めていたので次のような理由で受けました。

  • 自分がChefを忘れても大丈夫なように、本にまとめておけるならラッキー
  • 人に説明するときにラク
  • 人からの質問がいくらか具体的になる

どのように書いていたのか

動いていたのは2013年7月〜2014年4月、そのうち9月後半〜1月にほとんどの内容が書かれました。 書き始める前はソースコードや関連資料の調査、1月後半からは校正につぐ校正。

原稿の管理と、共同執筆中のコミュニケーションではこれらが役に立ちました。

  • github(git)
  • Skype

内容はGithubのリポジトリを更新して共有し、やや大きめなテーマはIssueとして管理、ちょっとした方針や文章のすり合わせはSkypeでと、快適な執筆環境を目指してツールを活用することにしました。(Skypeではくだらない雑談も相当交わされましたが)

共著の樋口さんとは、本について7月(第1回 Chef Casual Talks Kansaiの翌日)に分担を決めた後は、一度も顔を合わせることなくすべての作業を終えることが出来ました。

私の側では、主にこれらのツールで原稿を作成しました。

  • エディタ(vim, bbedit)
  • プレビュー(Mou, Marked, git(差分))
  • Chefのソースビュアー(vim, git(差分および履歴))

プレビューツールからわかると思いますが、生原稿はMarkdownでした。 原稿書きには、gitのログと差分確認がかなり役立ちます。

校正段階では主にこれらのツールで原稿の修正にあたりました。

  • Mail & unzip, mi(旧ミミカキエディット)
  • github(git)

初稿より後は、MarkdownではなくEWBで(変換された)となったんですが、文字コードがEUC-JPでbbeditがイマイチ自動判別しなかったので、国産エディタのmiに頼りました。

ここでもやっぱりGithubが活躍します。章ごとのブランチを作成して、平行して校正を進めたり、適用漏れを抽出して追跡したり、 gitリポジトリは軽作業などもふくめて、結局2200コミットくらいになりました。

環境用品のうち、特に活躍した3つをピックアップします。

  • MacBook Pro Retina13
    • QuickResで、画面をかなり広くして使用、参考資料を見ながらの執筆に
  • Contessa (岡村製作所)
    • 作業に集中するのに調度良かった
    • 腰痛が全然気にならなくなった
  • SHOT NOTE(KING JIM)
    • 構成図等の提出はこれに手書きして取り込んだ

最後に

本書を書くのは中々骨の折れる作業でしたが、周囲の協力者や家族の理解もあって、ようやく書店に置かれる所までこぎつけました。 あとは料理本のコーナーに並ばないことだけを祈っておきます。

追記、『Chef活用ガイド』読者アンケートを作成しました。

この本を読んでいただいた方(購入・回し読み問わず)を対象に、アンケートを作成しました。

書籍『Chef活用ガイド』読者アンケート Survey

では締めをChef活用ガイド コードではじめる構成管理 - vdrめも(2014-04-21)から引用で。

世に出るのはもう少し先で、その上読み終えるにはかなりの時間がかかるかと思いますが、よろしければご回答いただければ幸いです。