Clouderaの品質保証・CDHのテスト工程について by Andrew bayer
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

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

on

  • 6,551 views

2012/7/31に実施したCloudera QAセミナーより

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

Statistics

Views

Total Views
6,551
Views on SlideShare
6,267
Embed Views
284

Actions

Likes
13
Downloads
41
Comments
0

4 Embeds 284

http://www.cloudera.co.jp 183
https://twitter.com 98
http://cloudera2014.tsukinowa.jp 2
http://www.twylah.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

  • 1. Clouderaの品質保証CDHのテスト工程について • Andrew Bayer, Cloudera
  • 2. イントロダクション:自己紹介 •  Andrew Bayer •  Clouderaキッチンチーム(Kitchen team:品質保証、 ビルド、パッケージング、etc) •  ビルド・アーキテクト(Build architect) •  Jenkinsのボードメンバー/コミッター •  Apache Bigtop, Apache Flume, Apache Sqoop, Apache Whirr, jcloudsのコミッター
  • 3. Apacheの品質保証の流れ •  全プロジェクトにおける単体テストの サブセットはJenkins上で実行 l  テストは単一ノードの疑似分散モードのみで実 行 l  テストはApache Bigtopの一環として、Cloudera が関与している限定された統合テストともにコン ポーネントごとに実行 l  ジョブは頻繁に落ちる
  • 4. Apacheの品質保証の流れ
  • 5. Apacheの品質保証の流れ •  リリースに関する厳格な基準なし•  しばしば限られた検証を経るだけで、コミッターによ る投票でリリースが決定する “+1 (結合) 私はソースから構築され署名されたコードを、 疑似クラスタを設定してすべて検証し、試しにサンプル ジョブを少し実行した。すべて期待通りに動作した。”
  • 6. CDHの品質保証: テスト計画 •  テストは計画時から始まっている•  全主要コンポーネントに対してテスト計画を立案•  品質エンジニアによる計画立案と、 開発者によるレビュー•  自動化できる作業項目一覧と、手動による検証が必要 な作業とを対比•  将来のテスト作業に向けたバックログ
  • 7. CDHの品質保証: コードレビュー •  コードはすべてピアレビューされる•  以下の作業が含まれている: l  オープンソースからのバックポート(改良点を旧バー ジョンへ移植) l  テスト l  ビルドとパッケージングロジック•  テストが実施される前に、査読時の検査によって最割安 にバグを特定
  • 8. CDHの品質保証:単体テスト •  全コンポーネントに関する単体テストを毎日フルで実行 l  テスト数の合計:CDHだけで2万以上
  • 9. CDHの品質保証:単体テスト •  単体テストは、MapReduce1とMapReduce2両方に対 して実施•  立て続けに追加されたエコシステムのツールやライブラ リに対しても検証•  単体テストのジョブも、CheckStyleやFindBugsのような 静的解析ツールで実行
  • 10. CDHの品質保証: パッケージテスト •  サポートする全プラットフォーム上で CDHのRPMおよびDebianパッケージを自動検証 l  インストール l  削除 l  アップグレード l  パッケージ内容物の検証 l  機能的なスモークテスト l  プライベート・クラウド環境におけるVMの自動スピン アップ/スピンダウン
  • 11. CDHの品質保証:クラスタテスト l  さまざまなクラスタ構成で自動検証 l  セキュアクラスタ l  高可用性(HA)における安全性 l  HDFSフェデレーション•  クラスタ規模のレンジに応じたテスト l  5、10、100ノードの物理的なクラスタ l  1000ノードまでのVMクラスタ
  • 12. 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(大規模データシステムのトランザクション   を測定)
  • 13. CDHの品質保証: その他のテスト •  互換性テスト – 以前のリリースからのAPIを自動検証•  パフォーマンス回帰テスト – 複数のリリース版で同じ ワークロードを実行•  クラス間のHBaseレプリケーションのような長期稼働 テスト•  JCarderのようなツールを使ったデッドロックの検出
  • 14. CDHの品質保証:テストマトリクス •  顧客が実際に利用すると思われる環境をサポートする ため、Linuxのさまざまなディストリビューション/バージ ョンでクラスタを実行 l  CentOS/RHEL 5, 6 l  SLES 11 l  Oracle Linux 5, 6•  複数のデータベース (MySQL, Oracle, PostgreSQL)•  JDKの追加 (JDK 1.7, OpenJDK)
  • 15. CDHの品質保証:さらなるテスト •  顧客のトレースから派生した実際のデータに対してテス トを実行•  未だ自動化されていない多数の手動テストや、また信頼 性や障害発生、顧客特有の問題の再発生など特定の 顧客主導シナリオを実施
  • 16. CDH品質保証:テスト計画例 •  HDFS HA •  全コンポーネントにわたるAvroとの統合 •  Cloudera Managerテスト計画
  • 17. CDHの品質保証: HDFS HA テスト計画 •  通常の動作を検証するため、非HA構成でHAクラスタの テストを実行 •  HA構成の基本的なHDFSの機能性 •  フェールオーバーのテスト l  手動フェールオーバー l  自動フェールオーバー l  HTTPフェールオーバー •  HAセキュリティ •  HAフェデレーション
  • 18. 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
  • 19. CDHの品質保証: Cloudera Manager l  幅広い構成範囲にわたって、インストールと機能性 を自動テスト l  サポートする全OS上で、全DBバックエンドと共に、 全ビルドに対してテストを実行