• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Clouderaの品質保証・CDHのテスト工程について by Andrew bayer
 

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

on

  • 5,572 views

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

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

Statistics

Views

Total Views
5,572
Views on SlideShare
5,297
Embed Views
275

Actions

Likes
13
Downloads
41
Comments
0

4 Embeds 275

http://www.cloudera.co.jp 180
https://twitter.com 92
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 Clouderaの品質保証・CDHのテスト工程について by Andrew bayer Presentation Transcript

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