Airbnb のシステムレベルの負荷テストは、信頼性と効率性のために不可欠であり、ボトルネックの特定、容量の評価、パフォーマンスのベースライン確立、およびエラーの検出に役立ちます。 Impulse は、合成負荷の生成、依存関係のモック、本番環境からのトラフィックデータの収集を行うためのツールを提供する、社内向けの Load-Testing-as-a-Service フレームワークです。 Impulse は、ロードジェネレーター、トラフィックコレクター、依存関係モッカー、およびテスト API ジェネレーターの 4 つの主要コンポーネントで構成されています。 ロードジェネレーターを使用すると、サービスの所有者はコンテキストに応じた負荷テストを実行し、リクエストを動的に生成し、依存関係をモックすることができます。 トラフィックコレクターは、アップストリームとダウンストリームの両方のトラフィックをキャプチャし、Impulse が負荷テスト中に本番トラフィックを正確に再生できるようにします。 依存関係モッカーは、遅延を伴うダウンストリームの応答をモックし、サービス間の干渉を排除し、通信コストを削減します。 テスト API ジェネレーターは、CI ステージ中に HTTP API を作成し、負荷テストツールがこれらの合成 API にトラフィックを送信できるようにすることで、非同期フローを同期しているかのように実行できます。 Impulse は、手作業を最小限に抑え、Airbnb のオブザーバビリティスタックとシームレスに統合し、チームが潜在的な問題を積極的に解決できるように設計されています。 このフレームワークは肯定的なフィードバックを受けており、チームがサービスの潜在的な問題を特定し、解決するのに役立っています。 Impulse は現在、いくつかのカスタマーサポートバックエンドサービスで実装されており、会社全体のチームによるレビューを受けています。
medium.com
Load Testing with Impulse at Airbnb
