基本情報
概要
Infrataster(インフラテイスター)とは、テスト自動化ツールです。構築したサーバに対して外部からサービス利用者に近い視点から振る舞いのテストを行えます。
基本説明
Infratasterは、インフラの振る舞いをテストするフレームワークです。
サーバ上のサービスへのアクセス/ネットワーク通信などの自動テストを行います。
経緯
Infratasterは、クックパッドの荒井良太氏が開発したツールです。
「Infrataster」の名称は、「infraのtester(テスト実施者)」ではなく「infraのtaster(味見役/毒見役)」という意味です。
主な特徴
サーバ外部からのテスト
同様の自動テストツールとして「Serverspec」があります。Serverspecは「サーバ内部のテスト」(ホワイトボックステスト)を実施するツールです。サーバ内部のミドルウェアやファイルに対するテストを行います。
それに対して、Infratasterは「サーバ外部からのテスト」(ブラックボックステスト)を実施します。Infratasterは、外部から(実際のクライアントから)テストを行います。Infratasterでのテストの場合、サーバ内部で動作しているミドルウェア種類などは関係なく、外部から見てどのような振る舞いをするかを検証します。そのため、結合テストフェーズに適しています。
「Serverspec」と「Infrataster」は、競合するものではなく補完関係にあります。両者を併用して、ホワイトボックステスト+ブラックボックステストを行えば、より堅牢なインフラ構築を目指せます。
基本的なテスト内容
基本的には、対象のサーバに対して、特定のヘッダ付きHTTPリクエストを送信して、期待通りのレスポンスが返却されるかを確認できます。
MySQLの「SHOW VARIABLES」の結果を取得して確認できます。
テストフレームワーク「capybara」を使用して、実際にユーザがそのWebアプリケーションを使用しているかのように、さまざまなページに遷移して、不具合がないかをチェックできます。
プラグイン
プラグインを追加することにより拡張できます。主なプラグインとして、以下のようなものがあります。
・infrataster-plugin-chef
・infrataster-plugin-dns
・infrataster-plugin-firewall
・infrataster-plugin-ldap
・infrataster-plugin-memcached
・infrataster-plugin-mysql
・infrataster-plugin-pgsql
・infrataster-plugin-redis
・infrataster-plugin-ssl_certificates
テストスクリプト制御
テストスクリプトの制御には、Rubyのテストフレームワーク「RSpec」を使用します。
Infratasterは「RSpec」のテストヘルパとして機能します。英語の文章を書くようにテスト内容を記述して、期待された動作が行われるかどうかをテストします。
エビデンス出力
テスト結果が出力されるため、証跡として十分に活用できます。
同様製品
同様な機能を提供する製品として、次のようなものがあります。
オープンソース製品:「Serverspec」など。
ライセンス情報
Infratasterのライセンスは「MIT License」です。このライセンスに従うことを条件として、ソースコードの改変と公開が許可されています。
ダウンロード
※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。