Serverspec誕生からインフラCIの今後までを開発者に聞いてみた
Serverspecはエンタープライズでも使えるのか?
池田:いろいろなケースを教えていただいたのですが、SIerである私たちが担当しているようなエンタープライズ領域で使用するうえで注意したほうがいいところってあったりしますか。
宮下:僕はもともとSIerにいたんですけれども、もうWeb業界に来てから長いので疎いんです。。ただ、エンタープライズになると、やっぱりWindows対応は結構強く求められるのかなと思っています。
池田:確かにそうですね。WinRMでつないで、Power Shellコマンドを実行できるようにはなっているんですよね。基本的なテストとかであればすでに実践的に使える状況でしょうか。
宮下:割とカバーはしていると思います。実は僕はまったくノータッチでPull Requestが来たものを取り込んでいるだけなんです。実際に最近ツイートされていた方で、Windowsで納品用のサーバーのテストをやっているというツイートしていた方もいらっしゃいます。あと、いわゆるプロプライエタリなソフトウェアだと、そこのテストは難しいですよね、実際にその製品の中身がまったくわからないので。
池田:製品特有のテストだとなかなか難しそうではあります。Serverspecで対応しているのは、基本的にオープンなもの、よくあるパターンのものですね。例えばあるアプリケーションのテスト用のモジュールを取り込んでください、といったリクエストが来た場合はどうされるんでしょうか。
宮下:あんまり特殊だと多分取り込まないですね。恐らく別のGemにしても普通に動くと思います。ですので、本体に入れることはあまりしないと思います。ただ、拡張はしやすくしているつもりなので、そこは自由にできるのではないでしょうか。
池田:エンタープライズな視点だと、どうしても報告というのが求められます。一番気になるところは、本当にServerspecのテスト結果が正しいのか、というのは結構お客さんから言われそうな気がするんです。
宮下:言われます、それ。
池田:今だとどうしてもエクセルのファイルでテスト結果を残して、それをお客様に説明しに行くみたいなのがよくあるんですけれども、そのあたりって何か良い方法はないでしょうか。
宮下:実際にそういうケースのプルリクエストが来たことがあります。Serverspecのテストは失敗したときだけ実行したコマンドを出しているのですが、成功したときにも出したいという方がいました。僕は必要がないので、そのリクエストをリジェクトしたんですけれども。ただ、ベースになっているRSpecが、カスタムフォーマッターを作れるんですね。なので、そういうのをやりたい人は自分でフォーマッターを作ってくださいというそういうスタンスです。
エクセルとかで出したい場合もRubyのGemもあると思うので、そういうのを使ってフォーマッターを自作してもらえればいいかなと思っています。
池田:SIerとしてはレポーティング機能を提供できるようになるとちょっと実用に近づくかなという感じです。
宮下:僕自身は必要ないんで作りはしないんですけれども、要望しているところは結構あると思います。そういうのを作って公開とかされると、割と喜ぶ人もいるんじゃないでしょうか。
池田:Serverspec自体が柔軟な作りで、カスタマイズ性が確保されているので、自分たちがやりたいテストを自由に書けるかもしれないとは思っています。エンタープライズ領域での可能性はあるかなという気がしています。
でもやはりどうしてもネックになるのは、お客さんとの間のやりとりで、そこが一番心配なところです。それを受け入れてくれるようなお客さんであればすぐにでも使っていただけるんじゃないかなと。お客さんも一緒に巻き込んで、納得していただいてちゃんと理解していただいた上で導入を進める。そういうやりとりをちょっと変えていくというところが、重要なのかなと感じているところです。
池田:先ほどおっしゃっていたように、Serverspecが価値を発揮できるところは、たくさんのマシンがあってそれに自動構築して、それをちゃんとテストしていくというところになりますよね。
宮下:そうですね、例えばマシンが少なくてもChefとかを使う意義がある場合もあるじゃないですか。個人的にはあまりマシンの台数とかは関係ないかなと思っているんですけれども。
池田:Chefは結構最初にコードを書くのに時間がかかったりして、少ない台数を管理するシステムに導入しようとすると、コスト的に見合うかどうかという問題がありますよね。
運用になると安定思考というか、作ったらいじらないみたいなのがあったりします。そういう場面だとChefとかは使いづらい気はします。ただ当然全部自動化しておくと、後々何かあったときに便利な面もあって、そこをなかなか説明できないのですが。。
宮下:確かに難しいですよね。
Serverspec導入の障壁になるのは
池田:ChefとかよりもServerspecのほうが導入コストがすごく低いというのが個人的な印象です。
宮下:確かに、実際Chefの導入とか相談されたら、まずServerspecの導入から勧める、と知人が言っていました。現状の手動やシェルスクリプトなどの構築手順をテストするコードをServerspecで書いて、そのテストが通るようにChefでコードを書いていく。
池田:まさにTDDで進める感じですね。ちょっとずつ進めるには、そういう方向性のほうがやりやすいのかもしれないですね。
宮下:特にServerspecはまずやってみるというところをかなり意識しているつもりです。
池田:確かにそうですよね。Serverspecは、最初に初期化したときもうすぐに使える状態でパッと出てきてくれるので、そのあたりはすごい参考になりました。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- テスト駆動インフラ/インフラCIの潮流、Serverspecが果たす役割
- Serverspecの概要からインストールまで
- ChefConf 2017、楽天におけるHabitat導入のポイントとは?
- 楽天のOpsのトップが語る「コアなビジネスにこそオープンソースを」
- Serverspecの効果的活用に向けたTips
- Ansibleにおいてテストを行う理由
- CI/CD Conference 2023から、GMOペパボのSREがVM/Kubernetes混在環境でのCI/CDについて解説
- 合理化・効率化のために先行投資をする覚悟
- Dockerを使いこなすには。Dockerはこの先どこへ向かうのか? Docker座談会(後編)
- レッドハットのマネージャーに訊いた女性エンジニアを増やす方法とは?