本文へスキップ
BigTree108

パフォーマンス・負荷テストサービス

パフォーマンス・負荷テストサービス。k6、JMeter、Gatling、Locustによる負荷テスト、ストレステスト、スパイクテスト、ソークテスト、ローンチやセールのピーク前のキャパシティプランニング、コード・データベース・インフラのボトルネック分析、フロントエンドのパフォーマンスとCore Web Vitals、CIでのパフォーマンステストを提供します。専任のパフォーマンスエンジニアが御社のチームに参画する形も、パフォーマンステストプロジェクトを一括で請け負う形も選べます。

パフォーマンステストの対応範囲

  • 負荷テスト

    想定されるトラフィックを、本番ログとアクセス解析から、思考時間と現実的なデータを備えたユーザー導線としてモデル化し、応答時間、エラー率、リソース使用量から、システムが目標に対してどの位置にあるかが分かるまで実行します。

  • ストレステストとスパイクテスト

    想定ピークを超えて負荷を上げ、限界点と最初に破綻する箇所を見つけます。また、マーケティングメールの配信やチケットの発売開始のような急激なアクセス増も再現し、オートスケーリングが間に合うか、システムが自力で復旧するかを確認します。

  • ソークテストと耐久テスト

    一定の負荷を数時間から数日間かけ続け、メモリリーク、接続プールの枯渇、キューの滞留、ログによるディスクの逼迫といった、短時間のテストでは見つからない問題を洗い出します。

  • k6、JMeter、Gatling、Locustのスクリプト

    JavaScriptで書くGrafana k6、既存のテスト計画やHTTP以外のプロトコルに対応するApache JMeter、JavaまたはTypeScriptで書くGatling、Pythonで書くLocustを使います。スクリプトは、テスト対象のコードと並べてリポジトリで管理します。

  • ボトルネック分析

    結果を、Grafana、Datadog、New Relic、Application Insightsのトレース、メトリクス、プロファイルとあわせて読み解きます。応答が遅い原因を、背後にあるクエリ、ロック、スレッドプール、外部呼び出しまで突き止め、修正のたびに同じ負荷で再テストします。

  • ローンチとピークに向けたキャパシティプランニング

    ローンチ、セールのピーク、キャンペーンに合わせた規模で負荷テストを行い、その負荷に耐えるインスタンス数とオートスケーリングの上限を文書化し、ピーク時の運用コストを当日までに見積もります。

  • フロントエンドのパフォーマンスとCore Web Vitals

    Largest Contentful Paint、Interaction to Next Paint、Cumulative Layout Shiftを実ユーザーのフィールドデータで追跡し、ラボではLighthouseとWebPageTestで原因を特定して、画像、スクリプト、フォント、キャッシュの見直しで改善します。

  • CIでのパフォーマンステスト

    GitHub Actions、GitLab CI、Azure Pipelinesで、リリースごとに合否のしきい値を設けた短時間の負荷テストを実行し、より大規模な実行にはGrafana Cloud k6、Azure Load Testing、BlazeMeterを使います。各実行を前回のビルドと比較し、ユーザーが影響を感じる前に性能の劣化を検出します。

  • 耐障害性とフェイルオーバーのテスト

    負荷をかけた状態で、AWS Fault Injection Service、Azure Chaos Studio、Chaos Meshを使ってインスタンス、ゾーン、依存先を停止させ、フェイルオーバー、リトライ、サーキットブレーカーが機能し、復旧が目標を満たすことを確認します。

パフォーマンスエンジニアを採用する

  • 専任のパフォーマンスエンジニア

    御社のチームにフルタイムで参画し、御社のツールとプロセスの中で働き、御社のリードに報告するパフォーマンスエンジニアです。面接は御社が行い、ウクライナでの雇用契約、給与支払い、請求書発行、休暇管理は当社が担います。

  • パフォーマンステストプロジェクト

    スコープと固定の計画が定まったパフォーマンステストの一区切りの業務です。当社側の担当リードが成果に責任を持ち、進捗は御社のチャネルで報告します。

  • 継続的なパフォーマンステスト

    パフォーマンステストを継続サービスとして提供します。毎月同じメンバーが担当し、優先順位は御社がバックログで決め、稼働時間は当社のポータルと請求書で確認できます。

スペシャリストが御社のチームに参画する方法は専任チームのページで、プロジェクトのデリバリー、引き継ぎ、料金の考え方はアウトソーシングのページで説明しています。

御社のパフォーマンステストを担当するメンバー

  • パフォーマンスエンジニア

    ワークロードモデル、スクリプト、分析

  • サイトリライアビリティエンジニア

    監視、オートスケーリング、キャパシティ

  • バックエンド開発者

    コード、クエリ、キャッシュの修正

  • データベース管理者

    クエリプラン、インデックス、接続数の上限

  • フロントエンド開発者

    Core Web Vitalsの改善

パフォーマンステストの進め方

どのテストも、書面の目標から始まります。ユーザー数またはリクエスト数、95パーセンタイルまたは99パーセンタイルの応答時間、許容できるエラー率、コストです。ワークロードは本番のトラフィックをもとにモデル化し、テストデータは本番と同じ規模で生成し、テストは本番と同規模の環境、または合意した時間帯の本番環境そのものに対して実行します。

結果はグラフだけでなく説明を添えてお渡しします。どのコンポーネントが限界に達したのか、なぜか、どの変更で改善するのかを示し、各修正は同じ負荷での再実行で確認します。スクリプト、データジェネレーター、しきい値は御社のリポジトリに残るため、御社のチームもリリースのたびに同じテストを実行できます。

その他のソフトウェアテストサービス

ソフトウェアテストとQAの概要

パフォーマンス・負荷テストに関するご質問

パフォーマンスエンジニアは、どの業界で働いていますか。

主にECと小売で、セールやキャンペーンの前に対応します。決済や取引システムにレイテンシ目標があるフィンテックと銀行、より大きな顧客を獲得しつつあるエンタープライズSaaS製品、アクセスが一斉に集中するメディアやストリーミングサービス、プラットフォームの規模を見積もる通信、クラウド、ホスティング事業者も対象です。

本番環境で負荷テストを行えますか。

はい、ステージング環境では実システムを再現できない場合に行います。テストは合意した低トラフィックの時間帯に実施し、エラー率とレイテンシの停止条件を設けて段階的に負荷を上げ、後で削除するテスト用アカウントとデータを使い、双方に担当者を置いて監視します。

k6、JMeter、Gatlingのどれを選びますか。

新規の案件の大半にはk6を使います。テストはJavaScriptで書き、コマンドラインから実行でき、パイプラインに組み込みやすいためです。テスト計画がすでにある場合や、JDBC、JMS、素のTCPなどHTTP以外のプロトコルの場合はJMeterです。JavaやTypeScriptのチームにはGatling、PythonのチームにはLocustを使います。御社のチームがすでに使っているツールで進めることもできます。

パフォーマンスエンジニアは、どのくらいで開始できますか。

適任のパフォーマンスエンジニアがすぐに対応可能な場合、開始までの条件は、御社の面接と、NDAおよび知的財産権の譲渡契約の締結のみです。そうでない場合は人材を探索し、通常は2〜3週間以内に候補者のプロフィールをお出しします。御社が承諾するまで、誰も業務を始めません。

BigTree108を通じてパフォーマンスエンジニアを採用するには、どうすればよいですか。

必要な業務内容、シニアリティ、稼働時間をお知らせください。1〜2名の候補者をプロフィールとともにご提案し、御社が自社で採用する場合と同じ形で面接を行います。契約はBIG TREE 108 LLCとの1本、請求書は月1通です。

成果物の権利は、誰に帰属しますか。

御社です。すべてのスペシャリストはBigTree108と署名済みの契約を結び、成果物のすべてを会社に帰属させています。さらに、御社との契約により、その権利は御社に引き継がれます。コード、デザイン、ドキュメントは、当社だけが変更できる場所ではなく、御社のリポジトリとツールに納品します。

アクセスの増加が見込まれますか。

システムの役割、現在のトラフィック量、見込んでいる量をお知らせください。1営業日以内に、目標を設定したテスト計画、候補者のプロフィール、または最初の負荷テストのスコープをご回答します。