Skip to main content
QUICK REVIEW

[論文レビュー] Report from GI-Dagstuhl Seminar 16394: Software Performance Engineering in the DevOps World

André van Hoorn, Pooyan Jamshidi|arXiv (Cornell University)|Sep 26, 2017
Software System Performance and Reliability参考文献 7被引用数 6
ひとこと要約

この論文では、自動化されたパフォーマンステスト、ウォームアッププロファイリング、ワークロードサンプリングを活用して、DevOpsにおけるパフォーマンス工学の統合を可能にするフレームワークを提示している。コード変更と関連する動作に基づいてテストを優先することで、パフォーマンスの劣化を早期に検出でき、高頻度での開発環境においてテスト実行時間の大幅な削減が可能となる。

ABSTRACT

This report documents the program and the outcomes of GI-Dagstuhl Seminar 16394 "Software Performance Engineering in the DevOps World". The seminar addressed the problem of performance-aware DevOps. Both, DevOps and performance engineering have been growing trends over the past one to two years, in no small part due to the rise in importance of identifying performance anomalies in the operations (Ops) of cloud and big data systems and feeding these back to the development (Dev). However, so far, the research community has treated software engineering, performance engineering, and cloud computing mostly as individual research areas. We aimed to identify cross-community collaboration, and to set the path for long-lasting collaborations towards performance-aware DevOps. The main goal of the seminar was to bring together young researchers (PhD students in a later stage of their PhD, as well as PostDocs or Junior Professors) in the areas of (i) software engineering, (ii) performance engineering, and (iii) cloud computing and big data to present their current research projects, to exchange experience and expertise, to discuss research challenges, and to develop ideas for future collaborations.

研究の動機と目的

  • 頻繁なデプロイが続く高スルーレートのDevOpsパイプラインにおいて、従来のパフォーマンステストが実用的でないという課題に対処すること。
  • ウォームアップ期間の自動化と最小限の代表的ワークロードの特定により、パフォーマンステストの運用オーバーヘッドを低減すること。
  • コード変更、テストの有用性、相関グループに基づいてテストをスケジューリングすることで、開発者に迅速なフィードバックを提供すること。
  • 運用データを活用してパフォーマンステストとレグレッション分析をガイドすることで、開発と運用の間のギャップを埋めること。
  • ソフトウェア工学、パフォーマンス工学、クラウドコンピューティング分野の研究者が連携して、パフォーマンスに配慮したDevOpsを前進させること。

提案手法

  • 大規模なテストリポジトリとパフォーマンステスト結果の自動分析を活用した、継続的パフォーマンス改善を実現する拡張されたDevOpsパイプラインを提案する。
  • JMeterベースの負荷テストスクリプトを用い、自動分析によりアプリケーションの更新に伴うパフォーマンス劣化を検出する。
  • 時系列テストメトリクスにおけるパターン認識を活用した自動ウォームアッププロファイリングにより、最適なウォームアップ期間と測定期間を特定する。
  • 統計的分析を適用して、実世界のワークロードの代表的サブセットを特定し、完全なテスト実行なしに重要なパフォーマンス劣化を捉える。
  • コード変更の影響、テストの有用性、相関するテストグループへの所属に基づいたテスト優先順位付けにより、重複するテスト実行を削減する。
  • ハイエイビリティシステムの生存性モデリングを統合し、パフォーマンステストをシステムの可用性と障害回復目標と一致させる。

実験結果

リサーチクエスチョン

  • RQ1高スルーレートのDevOpsパイプラインにパフォーマンステストを自動化し統合するには、どのようないくつかの方法が考えられるか?(過剰な実行オーバーヘッドを伴わず)。
  • RQ2実行時メトリクスに基づいて、最適なウォームアップ期間と測定期間を自動的に特定する技術は何か?
  • RQ3実世界のワークロードのどの代表的サブセットが、テスト実行時間を最小限に抑えつつ、顕著なパフォーマンス劣化を効果的に検出できるか?
  • RQ4コード変更、テストの有用性、相関パターンに基づいてテスト優先順位をどのようにガイドすれば、レグレッション検出の効率を最大化できるか?
  • RQ5ソフトウェア工学、パフォーマンス工学、クラウドコンピューティング分野の研究者間のクロスコミュニティ連携が、パフォーマンスに配慮したDevOpsの発展に果たす役割は何か?

主な発見

  • 時系列メトリクスのパターン認識に基づく自動ウォームアッププロファイリングにより、安定したテスト条件を特定するのに要する時間が顕著に短縮され、人的作業とばらつきが低減される。
  • 100%以上のパフォーマンス劣化を捉えることができるワークロードの代表的サブセットを特定することで、テスト実行時間を短縮しながら検出能力を損なわない。
  • コード変更と相関グループに基づいたパフォーマンステストの優先順位付けにより、重複するテスト実行が削減され、DevOpsパイプラインにおけるフィードバックサイクルが加速する。
  • ハイエイビリティシステムのモデリングとパフォーマンステストを統合することで、障害回復時間の評価が向上し、システムの生存性が強化される。
  • ソフトウェア工学、パフォーマンス工学、クラウドコンピューティング分野の研究者間の連携は、パフォーマンスに配慮したDevOpsのシステム的課題を解決するために不可欠である。
  • 提案手法により、複数の次元(コード、設定、ハードウェア、実行回数)に起因するテスト時間の爆発的増加が抑制され、スケーラブルかつタイムリーなパフォーマンスフィードバックが可能になる。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。