BT

Dockerのテストインフラ

| 作者: João Miranda フォローする 2 人のフォロワー , 翻訳者 笹井 崇司 フォローする 0 人のフォロワー 投稿日 2015年7月16日. 推定読書時間: 2 分 |

原文(投稿日: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

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

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

このスレッドのメッセージについてEmailでリプライする

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

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT