BT

InfoQ ホームページ ニュース Dockerのテストインフラ

Dockerのテストインフラ

ブックマーク

原文(投稿日:2015/07/08)へのリンク

DockerのコアチームメンバーであるJessie Frazzelle氏は、Dockerのテストインフラを担当している。彼女はテストインフラがDockerコンテナ上にどう構築されているか説明した

テストインフラは約50のサーバで構成されている。テストインフラは6つの異なるストレージドライバを用い、Dockerのコンテナ格納方法、DockerがサポートするすべてのLinuxディストリビューションとさまざまなLinuxカーネルバージョンを決定している。Windows上でDockerホストを動かすための軽量VMを提供するWindows Dockerクライアントもある。

masterへのプッシュとプルリクエスト(PR)には独自のワークフローがある。Dockerテストをすべて実行するのに加えて、masterへのプッシュが成功するたびに、最新版を試したい人向けにDockerのバイナリドキュメントを生成する。Docker Binary Builder (docker-bb) がmasterバイナリの構築を処理している。

プルリクエストには独自のワークフローとサーバがある。それぞれのプルリクエスト - 毎週100以上ある - はDockerテスト、新しい実験的バイナリ、Windows Dockerクライアントに対して実行される。すべてのPRビルドの管理には、彼女が構築したLeeroyという小さなアプリが使われている。その責務には、PRの状態(ペンディング、成功、失敗あるいはエラー)の更新と、Docker Developer Certificate of Originの検証が含まれる。

Dockerは継続的インテグレーションサーバにJenkinsを使っている。これはチームが必要とする柔軟性とコントロールを提供してくれるためだ。当然ながら、彼女は公式イメージを使ってコンテナ内でJenkinsを実行している。

Consulというサービスディスカバリツールがテストインフラの重要なパーツとなっている。彼女はこのサービスのタグ付け機能を使って、Linuxカーネルバージョンやストレージドライバといったデータをトラックしている。これはトラブルシューティングにも有用だ。Consulのヘルスチェッキングは、consul-alertsを使ったチームへのサービスダウン通知にも利用されている。

Dockerチームは、GitHubフックをdocker-bbにリンクしたりmasterドキュメントをデプロイするなど、これら多数のプロセスを統合するのに、リアルタイム分散メッセージングプラットフォームnsqを使っている。

テストインフラを実現するサービスはすべて、Dockerコンテナ内で実行される。テストインフラはそれがあればいつも最新のDocker Release Candidateを使っている。できるだけバグを早く捕捉するため、最新のmasterバイナリを使うこともある。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

BT

あなたのプロファイルは最新ですか?プロフィールを確認してアップデートしてください。

Eメールを変更すると確認のメールが配信されます。

会社名:
役職:
組織規模:
国:
都道府県:
新しいメールアドレスに確認用のメールを送信します。このポップアップ画面は自動的に閉じられます。