ブログ

ryuzeeによるブログ記事。不定期更新
アジャイル開発に取り組むチーム向けのコーチングや、技術顧問、認定スクラムマスター研修などの各種トレーニングを提供しています。ぜひお気軽にご相談ください(初回相談無料)

【発売のお知らせ】Chef実践入門

全国1000万人のInfrastructure as Code職人とImmutable Infrastructure芸人のみなさんこんばんは!

ということでタイトルの通りなのですが、このたび5月22日に「Chef実践入門 コードによるインフラ構成の自動化」(技術評論社)が発売になりますのでお知らせいたします。

Chef-practicalguide-cover 本の表紙はこんな感じになります(カバーの色やデザインは変更の可能性があります)。 ご予約は、こちらで受付中です!

昨年前半に着手していたので随分時間がかかってしまいましたが、なんとか出すことができました。 今回はCakePHP界隈でもおなじみの安藤祐介さん、イケメン寿司&ドラクエ好きでおなじみの伊藤直也さん、Ruby使いの菅井さん、インフラのスペシャリスト並河さんという凄い人たちとの共著になります。

本の内容ですが、Vagrantを使って簡単なクックブックをChef Soloを使って実行するところから始まって、各リソースの使い方や、実際のクックブックの例、serverspecとTest-Kitchenの組み合わせによるテスト駆動開発、クックブックを書いていてよくハマる点についてのTIPS、Chef Serverの構築などなど、幅広く網羅された感じになっています。これがあればまずは自分でクックブックを書いて使っていくことができるようになると思います。これをとっかかりにして、あとはChef社の情報などを幅広く収集して実践していけば一流のChefになれるのではないかと思います。

なお、5人での執筆でしたので、原稿は全てマークダウンで記述し、GitHubのプライベートレポジトリに配置し、コミットするたびに自動でPDFとepubとhtmlにビルドして、各著者のDropboxに配信するというようなことをやっていました。もちろん課題や調整もGitHubのIssueを使ってやっていたので、私の記憶が確かなら、執筆期間中に全員で会ったのは2回くらいです(遠い昔なので記憶になくなってきた)。また修正はプルリクエストベースで行ったりみたいな感じです。そう考えると、原稿もインフラもソフトウェアのように扱ってツールをうまく活用しながら繰り返し型でどんどん作っていける感じで楽な時代になったもんです。

インフラに関しては、一昨年あたりからのVagrant、Chefのような流れからDockerのようなImmutable Infrastructureに向かっていくなど、まだまだ大きな変化が起こっていくことになると思いますが、インフラを抽象化して扱えるようになって、インフラとアプリの境界線がどんどんなくなってきています。インフラエンジニアが手作業でいろんなことをしたり、手順書にしたがって何度も似たようなことをやる時代は終わりです。ここらで一度キャッチアップしておくことをオススメしておきます。

ということで是非よろしくお願いします! ご予約はこちら!!

追記。目次の準備もできましたので以下に公開します!!!

第1章 DevOpsの潮流とChef
1.1 今なぜChefが注目されているのか
1.2 Infrastructure as Code
1.3 Chefの概要

第2章 Chef Soloによるローカル開発環境の自動構築
2.1 Chef Soloとは
2.2 検証環境を構築する
2.3 Chef Soloをインストールする
2.4 Chefを動かしてみる
2.5 Chef Soloでパッケージをインストールする
2.6 knife-soloでchef-soloをリモート実行する
2.7 Chef SoloでApache、MySQLをセットアップする
2.8 Chefリポジトリの扱い
2.9 Vagrant以外のサーバへChefを実行する
2.10 Chefの考え方

第3章 レシピの書き方
3.1 リソースとは
3.2 td-agentのレシピを読む
3.3 主要なリソースの解説
3.4 そのほかのリソース
3.5 AttributeとData Bag
3.6 クックブックのディレクトリレイアウト

第4章 クックブックの活用
4.1 コミュニティクックブックを利用する
4.2 Chef Soloで複数ノードを管理する

第5章 Vagrantによるクックブック開発環境の構築
5.1 Vagrantから直接クックブックを適用する
5.2 Saharaを使って何度もクックブック適用を試す
5.3 Packerで開発環境用のboxを作成する
5.4 変更を加えたboxを配布する
5.5 VagrantでVMware Fusionを利用する
5.6 VagrantでAmazon EC2を利用する

第6章 アプリケーション実行環境の自動構築
6.1 PHP環境を構築する
6.2 Ruby環境を構築する
6.3 MySQLを構築する
6.4 Fluentdを構築する

第7章 テスト駆動インフラ構築
7.1 インフラ構築用のコードにテストを用意する意味
7.2 Test Kitchenによるテスト
7.3 継続的インテグレーション

第8章 Chefをより活用するための注意点
8.1 Chefユーザの共通の悩み
8.2 共通の悩みを解消する基本的な方針
8.3 レシピの書き方の注意点
8.4 Chefをデプロイツールとして使う際の問題点
8.5 大きくなったクックブックを分割する
8.6 クックブックと実際の環境の食い違い
8.7 クックブックの依存関係を管理する
8.8 Chefのレシピが実行されるまでのサイクル
8.9 Chefを拡張する

第9章 Chef Serverによる本番環境の構築と運用
9.1 Chef Serverを利用するメリット
9.2 Chef Serverをセットアップする
9.3 knifeコマンドを利用したオペレーション
9.4 Chef Serverを使った運用フロー

第10章 Chef Serverによる大規模システムの構築と運用
10.1 Chefを使って大量サーバへ一括適用する
10.2 大量物理サーバへ迅速にセットアップする
10.3 Ohaiでマシンの情報を収集して活用する
10.4 複数メンバーでレシピ開発する際のリポジトリ運用
10.5 Chefを活用して監視の自動設定を行う

Appendix A
コマンドチートシート
A.1 knifeコマンド
A.2 chef-soloコマンドのオプション
A.3 Ohaiで取得できる項目の例

Appendix B
B.1 各リソース共通の機能
B.2 リソース
B.3 Recipe DSL
B.4 Windows向けDSL
B.5 Chef社がメンテナンスするクックブック

ご予約はこちら!!

ちなみに次作に着手しております…。乞うご期待…