全国1000万人のInfrastructure as Code職人とImmutable Infrastructure芸人のみなさん、こんにちわ!
すでに各所で言及されています通り、「Chef実践入門 ~コードによるインフラ構築の自動化
」が技術評論社から出版されます。
Chefを解説する書籍としては澤登さん、樋口さんによるChef活用ガイドに続く2冊めの書籍となり併せて読めばもはやChef入門を通りこしてChefマニアになれるのではないかという陣容です。 (2冊の書籍が異なるキャラクターで被る部分があまりないのは高度な情報伝達の賜物です。)
ネット上やイベントで走り続けている情報を今ひとつ追い切れない方や使い始めた方にとって便利な一冊となるように、なるべく漏れのない構成を心がけています。 自分の担当した「第8章 Chefをより活用するための注意点」と巻末のチートシートについては公式ドキュメントを通読する時間のない方にとって、目を通すことでChefの知らない機能を発見できるように心がけてまとめました。 また書籍全体の構成としてもページ数の都合やトレンドなどを念頭に置いた上で著者陣で議論を重ねてきました。入門 ChefSoloやネット上の記事を読んだ方にとっては、これまでとはまた違った切り口でご覧頂けるかと思います。
今回は、新原さんが以前書いた記事を下地にして今回の書籍の執筆方法について紹介します。
全体像
いわゆるGitHub中心の執筆フローを取りました。
さまざまなツールを使いましたが、結局のところGitHubだけ気にしていれば良いという形でした。 詳しくは下記で触れます。
原稿執筆
原稿はMarkdownで記述し、md2inaoで変換した後に技術評論社さんのDTPに回るという、デファクトスタンダード(?)な手法でした。 変換部分での不具合などに悩まされることなくブログやドキュメントを書くのと同じ感覚で執筆できました。
エディタについては各個人が好きにしているのですが自分はかつては使っていたMouから現在はAtomに移行したところです。 Mouも便利なのですが、大きなMarkdownを編集しているとだんだん動作が重くなっていくという点がネックになり、すっかりAtomに落ち着いています。 これは日々のコーディング作業も全てAtomに移行したというところの結果でもありますが、ひとつの例ということで。
原稿提出・課題管理
原稿はGitHubのプライベートリポジトリを使いました。
無料ではないのでBitBucketがいいという声もあるみたいですが、GitHubに課金するメリットがそれを上回るので個人的にBitBucketを使おうと思ったことはありません。 また技術評論社の方はGitHubを使える方が多いようで、以前にもまして校正や課題管理などがスムーズに行えるようになりました。この方法を取らずに書籍を執筆したとしたら生産性が大きく落ちることは間違いないでしょう。
そういった背景もあり、今回の書籍を執筆するにあたってはGitHubを使って執筆作業ができ、著者陣からの信頼も厚い技術評論社様にお世話になる事が決まりました。
連絡
カジュアルなコミュニケーションがGitHubで行われる様子。
FacebookグループやIRCもいちおうあったのですが、ほとんど使いませんでした。またメールも使いませんでした。
リアルタイムのコミュニケーションやカジュアルなコミュニケーションにはチャット系のツールが良いという声もあるのですが、最終的には全てのコミュニケーションがGitHubで行われることになりました。 この点については以前の書籍と状況が変わった点であり、GitHubでのコミュニケーションの習熟度が上がったという事なのかもしれません。 「いいね」ボタンが使いやすいのでFacebookをメインの手段に据えるという方針は今回には当てはまりませんでした。
CI
CI環境はChefで構築したJenkins上にCalibreとDropboxのクライアントをセットアップして行っています。 ビルドが成功する度に成果物がDropboxで各人に配信されるという形式をとったことで、Dropboxの変更通知がデスクトップに来ることもあり、IRCなどのチャットツールを使わなくてもビルドの状況が把握できました。 また通知が来るということは誰かが変更を行ったという事であり、終盤の追い込みのペースメーカーとしても個人的には活用していました。
最後に
今回の執筆はかなりの難産だったのですが、関係各位の尽力により実を結ぶ事ができました。 またそもそもの執筆動機として「これを読んでおけば大丈夫」と言える書籍を作って、同じスタートラインになるべく多くの人が立てるようにというのがあります。 なんだかChefがよく分からないという人もこの一冊を読めばトレンドに追いつく事が出来る一冊です。アプリケーション開発者からサーバー管理者まで多くの方のお役に立てることをお祈りしています。