Serverspec本、読んでいて楽しかった!

サーバの状態をテストするツール Serverspec の書籍が、オライリー・ジャパンより、まさにServerspecの作者であるmizzyさんの手で出版されました。

Serverspec

Serverspec

既に様々な方が書評を書かれていますが、自分なりの感想を書き留めたいと思います。

ちなみに自分はというと以下のような感じの人です

  • 新規サーバ構築時や既存サーバのAnsible化時のテストとして利用している
  • 緊急時に直接サーバ内のconfigをいじることがあるので、それを検知するためにJenkinsでServerspecを実行している(ついでに死活監視)
  • Rubyは普段はあまり書かない(PHPer)
  • serverspec.elを書いている

Serverspecをどう思っているのか

ちょっと違う視点かもしれませんが、、、、

「テスト」や「テストがあることの良さ」というものを体験するのに最も敷居の低いツールだと思っている

世の中には、テストを書いたことがない、書きたがらないプログラマがいるわけですが(自分もかつてはそうでした)、なぜ書かないかというと

  • テストを書くにしてもコストがかかる
  • テスト実行環境を用意するのにコストがかかる
  • テストがあること(あったこと)に対するありがたみを体験していないので「テストの良さ」が実感できていない(だからコストをかけたくない)

というところかなと思っています。

そういうプログラマに対して serverspec-init だけですぐに「面倒なサーバの状態のテストができる」ということを体験してもらえるというのは、本当に貴重です。

「サーバのチェックって面倒だよね?いちいちsshして service httpd status って確認してなかった?それがこれだけの記述で今後ずっと簡単にチェックができるんだよ?」

と。WebエンジニアはSSH接続ができるサーバの1台や2台持っています。そこに実行してもらってテストを体験してもらえばいいだけ。

これでさらに実用的!!

本書でも「導入までの敷居を下げる」ということをServerspec開発の哲学の1つとしてあげていますが、Serverspecだけでなく、テストそのものの敷居が下がっているのでは?と思っています。

感想

さて、Serverspec本ですが、「使う」だけなら1章から7章のうち、2章、3章だけで十分です。 (それくらい簡単に導入できるツールと言ってもいいと思います)

つまり、本書にはそれ以上の情報や思いが詰まっています。

例えば、自分みたいな「ライブラリのためにServerspecの中を少し掘り下げて知りたいRubyが得意でないエンジニア」にはとても良い指針になりました。

4章では、Serverspec/SpecinfraだけでなくRspecの仕組みの理解にもつながるような噛み砕いた説明や、機構の図解など、「へー」と思いっぱなしでしたし、 「Pryの使い方」「トラブルシューティング」とかRubyistじゃない自分には、今後もServerspec関係なく役にたつと思います。

あと、単純に読み物として面白かった。mizzyさんの哲学や思いなどが随所に盛り込まれており、色々勉強になりました。

「できるエンジニアの哲学」って、書籍でもないかぎり、同じ職場とかじゃないとなかなか知り得ないですもんね。

「どのような観点でテストコードを書くべきかを考える」「サーバ構成管理ツールを信頼する」「詳細までテストしない」

すみません!これからはちゃんと考えます!

というわけで

Serverspec本、とても楽しく読めました!

Serverspecビギナーも、Specinfraを使いこなしたい人も、エンジニア系読み物が欲しい人も是非。

最後に

mizzyさん執筆お疲れ様でした!また、わざわざ自分にも恵投いただきありがとうございました!

高まって serverspec.el を v2.7.1 に対応しました!(ちなみにリソースタイプリファレンスはServerspec本の付録が今現在最新です)

serverspec-init !!!!