ページを選択

ロード テストは、通常のトラフィック、大量、または突然のトラフィックスパイクの間に、ウェブ サイト、ウェブ アプリケーション、API のパフォーマンスを測定するうえで非常に重要です。 この記事は、継続的インテグレーション (CI) ツールを使用した Docker コンテナーを使用したロード テストについて理解するのに役立ちます。 ロード テスト アプリケーションへの Docker アプローチを使用すると、ユーザー間でテストを共有し、Docker コンテナーを使用してテスト環境を簡単にレプリケートできます。 Docker がどのようなものか、および CI を介してテスト アプリケーションをロードするために使用される Docker コンテナーとツールを使用して簡単に説明します。

 

ドッカーとは何ですか?

港湾労働者! あなたのチームの間でこの魅力的な言葉を聞いたり、技術ブログで読んだりしたことがありますし、そもそも威圧的に聞こえるかもしれません。 Docker は、アプリのソース コードとすべての依存関係パッケージを Docker コンテナーと呼ばれる形式でパッケージ化するコンテナー化プラットフォームです。 オペレーティング システムまたはシステム構成のオーバーヘッドを考えずに、アプリケーションがすべての環境で実行されるようにします。 これはクールではありません!

さらに、Docker は、コンテナーを使用してアプリケーションを簡単にビルド、デプロイ、および実行できる一般的なツールです。 このため、アプリケーションは同じ動作でどこでも実行できます。 そして重要なことは 、Dockerはオープンソースです

 

ドッカーコンテナとは何ですか?

Docker コンテナーは、軽量でスタンドアロンの実行可能なソフトウェアパッケージで、アプリケーションが必要とするすべてのもの (コードベース、システム ライブラリ、システム ツール、設定) が含まれています。 コンテナーはコードとその依存関係をまとめ、アプリケーションを迅速かつ確実に実行できるようにします。

 

Docker を使用すると、開発者はアプリケーションが実行されるシステムを気にせずにコードを記述することに集中できるため、アプリケーションの移植性が高くなります。 ローカル マシンでアプリケーションを実行する方法は、運用環境に近いか、同じになります。

 

ドッカーの主な特長

  • 容易に拡張できる. 軽量のコンテナーにより、docker コンテナーは数秒でスピンアップでき、簡単に拡張できます。
  • 生産性を向上させます。 アプリケーション開発、環境設定のための技術的なオーバーヘッドを軽減します。 さらに、分離された環境でアプリケーションを実行し、リソースの使用を減らすのに役立ちます。
  • アプリケーション分離: 各アプリケーションは互いに独立して実行され、アプリケーションは独立して実行されます。
  • インフラストラクチャとメンテナンスのコストを削減する。 既存のプラットフォームを Docker に簡単に移行できるようにサポートし、自動化された方法で実行されるため、メンテナンス コストを削減できます。
  • 群れ. Swarm は、Docker コンテナーのクラスタリングおよびスケジューリング ツールです。 これにより、複数のホスト マシンに展開された複数のコンテナーを管理できます。
  • ルーティング メッシュ: これは、ルーティングとコンテナへのトラフィックのバランスを取る方法で役立ちます。

 

ドッカーの利点

  • Docker は、アプリケーションの移植性を有効にします。
  • Docker は、開発リリースサイクルを高速化します。
  • それはマイクロサービスアーキテクチャで輝いています。
  • Docker は、アプリケーションの分離環境を提供します。
  • Docker は、アプリケーションの水平スケーリングを高速かつ簡単に行えます。
  • リソースの効率的な使用が可能です。

 

ドッカー インサイド CI ツール

Docker の最大の利点は、依存関係の競合を心配する傾向がないことです。 たとえば、Golang 1.11 で 1 つのプロジェクトをビルドし、Golang 1.12 バージョンのプロジェクトを 1 つ作成する場合、Docker は、この両方のイメージを作成し、競合のない別のコンテナーで並行して実行することもできます。 異なるバージョンで調理された画像はレジストリに保存することができ、Jenkinsのような継続的な統合ツールの一部として使用することができます。

Jenkins は、パフォーマンス テストまたは統合テスト用に構築された使用可能な Docker イメージを選択し、Docker イメージを最初からクッキングするためのオーバーヘッドが保存されるこの場合のサポートを提供します。 Docker レイヤーのキャッシュは、ここで多くの時間を節約します。 CI パイプラインの一部として、パフォーマンス テスト用の Docker イメージを作成する必要があり、このイメージは CI を使用して実行してアプリケーションのパフォーマンス テストを実行できます。 このステップを自動化することもでき、機能の追加や変更を行うたびに、パフォーマンス テストを実行して、最近の変更によるパフォーマンスへの影響をベンチマークして保護することができます。

 

パフォーマンス テストでの Docker の使用に関する制限事項

Docker には多くの利点がありますが、パフォーマンス テストを行う間は、いくつかの制限があります。

  • 同じマシン上で複数の Docker コンテナーを使用して負荷テストのシミュレーションを実行すると、実行中のサーバーの CPU を大量に消費し、テスト結果に影響を与える可能性があります。
  • Docker を使用したパフォーマンス テスト レポートには、十分なアプリケーションの詳細がありません。
  • パフォーマンス テストを実行しているホストの OS とコンテナーを微調整する必要があります。
  • Docker コンテナーは使い捨て可能なので、レポートの損失につながる可能性があります。

これらすべての制限から私たちを救うために、我々はパフォーマンステストプロセスを自動化するために、簡単にジェンキンスと統合することができる LoadViewのようなソリューションを使用することができます。

 

ジェンキンスとのロードビューロードテスト統合

アプリケーションをテストするたびに、期待どおりに機能しているかどうかをテストします。 それがうまくいけば、アプリケーションの機能が正常に動作していることを示します。 しかし、現実の世界では、同じアプリケーションが何百人、あるいは何千人ものユーザーによって使用され、独自の合併症をもたらす可能性があります。 アプリケーションが、特に収益を生み出す上で重要な場合は、予想されるトラフィックの要求に対応できることを認識することが重要です。

明らかに、すべてのアプリケーションが収益を生み出すことと結びついているわけではありませんが、ユーザーエクスペリエンスは依然としてオンラインドアからオンラインチェックアウトカウンターへの訪問者を得るための大きな要因です。 そのプロセスの間にいつでも彼らの経験が遅い、遅れている、または単に混乱している場合、彼らはすぐに興味を失うでしょう。 彼らは自分の経験が悪い理由は、同時にあなたのサイトやアプリケーションに他の何千人ものユーザーがいるので、気にしません。 彼らが知る限り、彼らはあなたのアプリケーションを使用している唯一の人だと思います。 信じがたいが、それは本当だ。 現実の世界と同じように、彼らは時々他の人と同じように列に並ばなければなりません。 ただ、彼らの待ち時間がシームレスで楽しく、長すぎないことを確認してください。

アプリケーションがそのようなトラフィックを処理できるかどうかを検証する必要があります。 だから、すべての変更や新機能の開発で、我々はジェンキンスと統合することができる私たちのLoadViewプラグインを介してアプリケーション上の負荷やストレステストを実行することができます。

次に、Jenkins と LoadView との統合を使用してロード テストを実行する手順について説明します。

  1. LoadView ロード テスト シナリオを使用して Jenkins でビルドをテストする前に、負荷テスト シナリオを LoadView に追加する必要があります。
  2. ジェンキンスとの統合を開始するには、LoadView セキュリティ トークンとして使用する LoadView 一意識別子が必要です。
  3. LoadView で、[統合の追加] ウェブ API の [アカウント統合の追加] で統合 UID > > を作成 > します。 この統合 UID をコピーします。

ドッカー統合 UID

 

  1. ストレス テストを設定するには、テスト シナリオ ID が必要です。 シナリオ ID は、次に示すように、シナリオのセットアップ ページで確認できます。

ドッカーロードテストシナリオ

 

ジェンキンスでの LoadView プラグインの設定

  1. Jenkins アカウントにログインします。
  2. Jenkins で、 資格情報の> 追加資格情報 LoadView >セキュリティ トークン (UID)に移動します。 資格情報を構成および検証します。
  • 種類: 読み込み表示セキュリティ トークン (UID)。
  • スコープ: グローバルに設定します。
  • ID: デフォルトのままにするか、一意の ID を指定します。
  • 説明: 他のテストとは別に設定する一意の説明を入力します。
  • UID: ロードビューアカウントから UID を入力します。 追加したら 、[UID の検証 ] を選択して、Jenkins が LoadView API にアクセスできることを確認します。

3. 次に、ジョブを選択し、[構成]

ドッカージェンキンス

 

  1. > ビルド後のアクションのビルド ビルド アクション > の追加 ビルド後アクション > LoadView-Run ロード テスト シナリオに移動します。 ビルドの LoadView ストレス テスト設定を指定します。
  • 資格情報: 説明を使用して API キーを選択します。
  • シナリオ ID: ビルドで使用するテスト シナリオ ID を貼り付けます。 LoadView のシナリオ ページから ID をコピーします。
  • エラーしきい値: ここでは、特定のシナリオで許容できるエラーしきい値を設定できます。 割合がそのしきい値を超えると、Jenkins 内の障害としてフラグが付きます。
  • 平均時間: テスト中の 平均応答時間を 指定します。 エラーしきい値と同様に、制限を超えると Jenkins で失敗として記録されます。
  1. [ 保存 ]をクリックします。

テスト結果の表示:

テストが実行されると、ステータスが Jenkins コンソール出力にリアルタイムで表示されます。

ジェンキンスコンソール出力

 

ジェンキンスのパフォーマンス結果

 

ラップアップ: Docker アプリケーションのロード テスト

Docker には多くの利点がありますが、同じマシンで複数の Docker コンテナーを使用する場合に、サーバーで大量の CPU を消費するなど、負荷の大きい負荷を伴うロード テストを実行する場合に制限が生じることがあり、テスト結果に大きな影響を与える可能性があります。 Jenkins のような CI ツールと簡単に統合できる LoadViewのようなソリューションを使用すると、完全に管理されたクラウドから数千の同時接続を使用してロード テストを作成および管理できます。

この記事では、Docker と Jenkins を使用してクラウドベースのロード テストを実行する方法について簡単に説明しました。 テスト シナリオの設定と LoadView によるロード テストの構成について詳しく学習するには、パフォーマンス エンジニアの 1 人と デモ を設定します。

LoadViewプラットフォームを今すぐ試してみて、ロードテストクレジットで$ 20を取得して開始してください。