«前の日記(2015-05-24(日)) 最新 次の日記(2015-05-26(火))»

vdrめも

検索キーワード:
[PR]:「Chef活用ガイド コードではじめる構成管理 (大型本), (Kindle版)」発売中です。


2015-05-25(月) ようやく [長年日記]

_ [work] 書評「Serverspec」

Serverspec(宮下 剛輔) を、busser-serverspec の開発という縁があり、著者のmizzyこと宮下剛輔さんからいただきました。ありがとうございます。

busser-serverspec については「test-kitchen 1.0探訪記」(2013/05/20)、「busser-serverspec」(2013/07/24)をご覧ください。

_ はじめに

本書は「はじめに」(p.vii)で「単なる Serverspec に関する解説書ではなく、Serverspec に関する思いを綴ったエッセイとも言えるかもしれません」「本書の対象読者は、Serverspec というソフトウェアとその周辺について既にある程度の知識や理解がある」とある通り、Serverspec の入門書ではありません。しかし、Serverspec を使い始めるに当たって基礎的な事柄は網羅されていますし(2章「初めての Serverspec」, 3章「Serverspecの本格利用」, 6章「トラブルシューティングとデバッグ」)、リファレンスも巻末付録にあるので、初学者にとっても実用的な書となっています。何より Serverspec に込められた思想、そしてその目指す未来について触れておくことは、初学者にとってより強く響くものであると思います。

_ 1章 Serverspec の紹介

Serverspec そのものの紹介というより深く、Serverspec によって目指すものは何なのか、Serverspec の開発における哲学が述べられた「エッセイ」(p.13)です。この 2年間継続的に開発され、これからも継続的な保守を続けるつもりでおられるのは、この強固で揺れることのない意志によるものと思います。述べられているすべてがどのような場合にも当てはまるとは限りませんが、開発者と利用者の双方への重要な示唆に富んでいます。

_ 2章 初めての Serverspec

まずは触ってみよう、といった趣の章です。Serverspecの基礎中の基礎が簡潔にまとまっています。ページ数を数えてみるとたったの 8ページ、ソースコードや実行結果を除くとさらに少なくなります。導入コストの低さを端的に表している章と言えるでしょう。

_ 3章 Serverspec の本格利用

2章を踏まえて、より実践的な内容となっていきます。Serverspec の記法、動作をカスタマイズするための設定項目、ディレクトリ構造の例、利用可能なメソッドなどの紹介があります。そして重要なのは、どのようなテストコードを書くべきか、という指針です。ただやみくもにテストコードを書けばよいのではなく、Serverspec が担当すべき範囲はどこまでなのか、一体何を目的としてテストをしているのか、明確な観点を持つべきと説かれています。

_ 4章 Serverspec の内部詳細

Serverspec において、コマンド実行などの実務を担っている Specinfra と、それと Serverspec の関連性について詳しく述べられています。さらに実例を通して Serverspec と Specinfra の拡張方法が解説されています。Pry から Serverspec、Specinfra を操作するという内部動作を知るための試みもなかなか面白いです。そして、1章のエッセイにも通じる、Serverspec/Specinfra へのコントリビュートの際の心構えについて述べられています。

_ 5章 他ツールとの連携

Serverspec は「1.5.3 1つのことをうまくやる」(p.11)という UNIX 哲学の下に、他のツールとの組み合わせが容易であるよう開発されており、さまざまな組み合わせが簡単な例と共に紹介されています。3章のテストコードの指針で述べられていた「サーバ構成管理ツールを信頼する」(p.58)について、「5.4 サーバ構成管理ツール」(p.127)でも視点を変えて再び論じられています。

_ 6章 トラブルシューティングとデバッグ

Serverspec によるテストが失敗した際、どのように調査を進めていくか、標準出力と標準エラー出力、SSH 接続、sudo 実行などの実例を挙げて述べられています。またここでも、Pry を使っての追跡が便利と紹介されています。

_ 7章 Serverspec の今後

「Serverspec 自身は既にある程度完成されていると筆者は考えている」(p.161)ことから、RSpec 以外の別フレームワークや Go のような別の言語での Serverspec 実装の構想や予想、itamae といった Specinfra を利用するツールの紹介があります。サーバ構成管理がシンプルになり、テストが不要になった未来はまだ訪れなさそうで、Serverspec が必要な状況はまだ続くと締められています。

_ 付録

「付録A リソースタイプリファレンス」では Serverspec で利用できるリソースタイプとコード例、注意の一覧が記載されています。「付録B Serverspec/Specinfra v2での変更点」では Serverspec/Specinfra v1 からの非互換部分、書き換えの指針が解説されています。「付録C Specinfra の Serverspec 以外の利用例」では単体利用と 7章でも取り上げられた itamae について述べられています。「付録D Windows のテスト」では WinRM でのリモートテストについて簡単な例が記載されています。「付録E Serverspec を活用するために参考となる書籍や雑誌」では Serverspec を取りまく状況をより理解するための書籍が記載されています。

_ おわりに

はじめに述べた通り、本書は Serverspec の入門書ではありません。では初学者が読めないのかというとそんなことはありませんし、既に利用している人にとっても Serverspec のみに留まらない多くの含蓄があると思います。にも関わらずお手軽なサイズの書籍なので、通読する時間もあまりかからず、必要なときに開くために手元に置いておく場所も取りません。インフラの運用や開発に関わるエンジニアだけでなく、オープンソースソフトウェアの開発者や利用者にとってもお勧めです。是非とも Serverspec/Specinfra というソフトウェアそのものだけでなく、込められた思想や目指す未来について触れていただきたいと思います。

Serverspec(宮下 剛輔)


2015年
5月
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

[amd64 | audacious | comp | debian | gkrelluim | kip | misc | movie | research | rime | unicon | vdr | work | えふえふ]

書いてる人: dai

パッチ等(無保証)

GPG Fingerprint = 0B29 D88E 42E6 B765 B8D8 EA50 7839 619D D439 668E