サーバの状態のテスティングツールである「Serverspec」の書籍を読んだ

サーバの状態を自動でチェックするためのテスティングツールである「Serverspec」。開発者のmizzyさんが書き下ろした書籍が出版されるということで、著者/出版社の方々からご献本いただきました。ありがとうございます!


Serverspec

Serverspec

いきなりですが余談

当方も、サーバまわりのプロビジョニングツールとして、2008年頃よりPuppet、2010年頃よりChefを使っていますが、特にChefを使ってからは、それなりの規模の環境で複数名でメンテナンスするケースが多かったので、テストについてはそれなりに頭を悩ませました。


使い始めの頃は、おはずかしながらテストなど全く無く、仮想環境でチェックしていた(普通に目見の他、出力された文字列のチェックをラッパーツールで行っていた)感じです。
ですが、Chefも周辺のテスティングフレームワークが徐々に充実し、Cookbook/Recipeのコードそのもののチェックは、ChefSpecやfoodcriticを使うようになりましたが、実際にホストマシンに適用後に、振る舞いレベルでチェックするツールの決定版が個人的にはなく、本書でも紹介されていますが、Test-Kitchenとminitestの組み合わせでやってみましたが、あまりしっくり来ずにどうするかなーと思ってた頃に登場したのが、このServerspecでした。
そして、Serverspecは、ブラッシュアップされ続け、そのままあれよあれよとすっかり普及した感がありますね。そのくらいのインパクトでした。


他のテスティングツールは、Chef等のツールに依存したものが多いのですが、そのツールを使い続ける保証もなければ、それなりの規模にもなるとツールも様々なものを使うケースが多いので、できるだけテスティングツールも汎用な立ち位置として独立的に使いたい。Serverspecはその辺のバランス感が見事に実現されているツールでオススメできます。

本書の見所

前置きはこのくらいにして、、、本書はmizzyさんの思想・こだわりがあちこちに散りばめられていて、テストという観点だけではなく、ソフトウェア開発も含め、エンジニアとして参考になる記述・考え方が多く記載されています。

本書は、開発者である自分にしか書けないことをできる限り盛り込み、自分以外の人でも書けるようなことはなるべく省く、というスタンスで書いています。

「Serverspec」という本が出ます - Gosuke Miyashita

mizzyさんのエントリでも上記のような記載がありますが、まさにそのような印象を受けました。


個人的に面白かった箇所を記載しておくと、まず1章。Serverspecに対するビジョンというかスタンスが記載されていて、読み物として面白かったです。開発経緯から哲学・思想、目指していくべき姿まで、mizzyさんという開発者のこだわり部分が垣間見える章でした。


そして、3章はServerspecを使いこなすためのアレコレが記載されていますが、この手の自動化を推進してテストを書くにあたって、誰もが必ずぶち当たって考えなければいけないのは、テストの指針です。いつ何をどこまでテストするのか、という点。この章には、それを考えるのに必要となるエッセンスが節としてまとまっている。自動テスティングについて考えている時期くらいは、この節のまとめをトイレとかに貼っておくべきだと思いました。


4章も読み応えありましたね。Serverspecのアーキテクチャや処理詳細、拡張のための情報などディープな内容で、ここは色々な方が素晴らしいレビューとして取り上げられているので割愛しますw が、


最後に、是非サーバまわりの管理をされている方だけではなく、構築や運用に携わられているエンジニアであれば、Serverspecやそれに付随しているSpecinfraといったツール群は便利であると思うので、一度使ってみてほしいな、と。その上でもう少し深く裏側を見たくなったときに、本書を手に取るとさらに世界が広がるのではないかなと感じています。


それでは!=͟͟͞͞(๑•̀=͟͟͞͞(๑•̀д•́=͟͟͞͞(๑•̀д•́๑)=͟͟͞͞(๑•̀д•́


Serverspec

Serverspec