clouderaの品質保証・cdhのテスト工程について by andrew bayer

20
Clouderaの品質保証 CDHのテスト工程について Andrew Bayer, Cloudera

Upload: cloudera-japan

Post on 22-Nov-2014

6.950 views

Category:

Technology


2 download

DESCRIPTION

2012/7/31に実施したCloudera QAセミナーより 「Clouderaの品質保証 CDHのテスト工程について」 Cloudera Kitcen team / Andrew Bayer

TRANSCRIPT

Page 1: Clouderaの品質保証・CDHのテスト工程について by Andrew bayer

Clouderaの品質保証 CDHのテスト工程について

• Andrew Bayer, Cloudera

Page 2: Clouderaの品質保証・CDHのテスト工程について by Andrew bayer

イントロダクション:自己紹介

•  Andrew Bayer

•  Clouderaキッチンチーム(Kitchen team:品質保証、ビルド、パッケージング、etc)

•  ビルド・アーキテクト(Build architect)

•  Jenkinsのボードメンバー/コミッター

•  Apache Bigtop, Apache Flume, Apache Sqoop, Apache Whirr, jcloudsのコミッター

Page 3: Clouderaの品質保証・CDHのテスト工程について by Andrew bayer

Apacheの品質保証の流れ

•  全プロジェクトにおける単体テストの サブセットはJenkins上で実行

l  テストは単一ノードの疑似分散モードのみで実行

l  テストはApache Bigtopの一環として、Clouderaが関与している限定された統合テストともにコンポーネントごとに実行

l  ジョブは頻繁に落ちる

Page 4: Clouderaの品質保証・CDHのテスト工程について by Andrew bayer

Apacheの品質保証の流れ

Page 5: Clouderaの品質保証・CDHのテスト工程について by Andrew bayer

Apacheの品質保証の流れ

•  リリースに関する厳格な基準なし

•  しばしば限られた検証を経るだけで、コミッターによる投票でリリースが決定する

“+1 (結合) 私はソースから構築され署名されたコードを、疑似クラスタを設定してすべて検証し、試しにサンプルジョブを少し実行した。すべて期待通りに動作した。”

Page 6: Clouderaの品質保証・CDHのテスト工程について by Andrew bayer

CDHの品質保証: テスト計画

•  テストは計画時から始まっている

•  全主要コンポーネントに対してテスト計画を立案

•  品質エンジニアによる計画立案と、 開発者によるレビュー

•  自動化できる作業項目一覧と、手動による検証が必要な作業とを対比

•  将来のテスト作業に向けたバックログ

Page 7: Clouderaの品質保証・CDHのテスト工程について by Andrew bayer

CDHの品質保証: コードレビュー

•  コードはすべてピアレビューされる

•  以下の作業が含まれている:

l  オープンソースからのバックポート(改良点を旧バージョンへ移植)

l  テスト l  ビルドとパッケージングロジック

•  テストが実施される前に、査読時の検査によって最割安にバグを特定

Page 8: Clouderaの品質保証・CDHのテスト工程について by Andrew bayer

CDHの品質保証:単体テスト

•  全コンポーネントに関する単体テストを毎日フルで実行

l  テスト数の合計:CDHだけで2万以上

Page 9: Clouderaの品質保証・CDHのテスト工程について by Andrew bayer

CDHの品質保証:単体テスト

•  単体テストは、MapReduce1とMapReduce2両方に対して実施

•  立て続けに追加されたエコシステムのツールやライブラリに対しても検証

•  単体テストのジョブも、CheckStyleやFindBugsのような静的解析ツールで実行

Page 10: Clouderaの品質保証・CDHのテスト工程について by Andrew bayer

CDHの品質保証: パッケージテスト

•  サポートする全プラットフォーム上で CDHのRPMおよびDebianパッケージを自動検証

l  インストール l  削除 l  アップグレード l  パッケージ内容物の検証 l  機能的なスモークテスト l  プライベート・クラウド環境におけるVMの自動スピン

アップ/スピンダウン

Page 11: Clouderaの品質保証・CDHのテスト工程について by Andrew bayer

CDHの品質保証:クラスタテスト

l  さまざまなクラスタ構成で自動検証

l  セキュアクラスタ l  高可用性(HA)における安全性 l  HDFSフェデレーション

•  クラスタ規模のレンジに応じたテスト

l  5、10、100ノードの物理的なクラスタ l  1000ノードまでのVMクラスタ

Page 12: Clouderaの品質保証・CDHのテスト工程について by Andrew bayer

CDHの品質保証:スケールテスト

•  ClouderaのQAチームが実施するスケールテスト

l  TeraSort(大量データのソートをテスト) l  TestDFSIO(ディスクのスループットを測定) l  HiveBench l  YCSB(Yahoo! Cloud Serving Benchmark) l  SWIM(MapReducceのパフォーマンスを測定) l  Intel HiBench(Hadoop用ベンチマークスイート) l  TPC-H(大規模データシステムのトランザクション  

を測定)

Page 13: Clouderaの品質保証・CDHのテスト工程について by Andrew bayer

CDHの品質保証: その他のテスト

•  互換性テスト – 以前のリリースからのAPIを自動検証

•  パフォーマンス回帰テスト – 複数のリリース版で同じワークロードを実行

•  クラス間のHBaseレプリケーションのような長期稼働テスト

•  JCarderのようなツールを使ったデッドロックの検出

Page 14: Clouderaの品質保証・CDHのテスト工程について by Andrew bayer

CDHの品質保証:テストマトリクス

•  顧客が実際に利用すると思われる環境をサポートするため、Linuxのさまざまなディストリビューション/バージョンでクラスタを実行

l  CentOS/RHEL 5, 6 l  SLES 11 l  Oracle Linux 5, 6

•  複数のデータベース (MySQL, Oracle, PostgreSQL)

•  JDKの追加 (JDK 1.7, OpenJDK)

Page 15: Clouderaの品質保証・CDHのテスト工程について by Andrew bayer

CDHの品質保証:さらなるテスト

•  顧客のトレースから派生した実際のデータに対してテストを実行

•  未だ自動化されていない多数の手動テストや、また信頼性や障害発生、顧客特有の問題の再発生など特定の顧客主導シナリオを実施

Page 16: Clouderaの品質保証・CDHのテスト工程について by Andrew bayer

CDH品質保証:テスト計画例

•  HDFS HA

•  全コンポーネントにわたるAvroとの統合

•  Cloudera Managerテスト計画

Page 17: Clouderaの品質保証・CDHのテスト工程について by Andrew bayer

CDHの品質保証: HDFS HA テスト計画

•  通常の動作を検証するため、非HA構成でHAクラスタのテストを実行

•  HA構成の基本的なHDFSの機能性

•  フェールオーバーのテスト

l  手動フェールオーバー

l  自動フェールオーバー

l  HTTPフェールオーバー

•  HAセキュリティ

•  HAフェデレーション

Page 18: Clouderaの品質保証・CDHのテスト工程について by Andrew bayer

CDHの品質保証: Avroの統合

•  プロデューサーのAvroデータファイル、コンシューマーのAvroデータファイルのマトリクス

•  Snappy圧縮のあり/なし両方でテストを実行

•  Flume output -> MapReduce, Streaming, Pig, Hive

•  Sqoop output -> MapReduce, Streaming, Pig, Hive

•  MapReduce output -> Sqoop, Streaming, Pig, Hive

•  Streaming output -> MapReduce

•  Pig output -> Sqoop, MapReduce, Streaming, Hive

•  Hive output -> Sqoop, MapReduce, Streaming, Pig

Page 19: Clouderaの品質保証・CDHのテスト工程について by Andrew bayer

CDHの品質保証: Cloudera Manager

l  幅広い構成範囲にわたって、インストールと機能性を自動テスト

l  サポートする全OS上で、全DBバックエンドと共に、全ビルドに対してテストを実行

Page 20: Clouderaの品質保証・CDHのテスト工程について by Andrew bayer