オープンソース コミュニティとクラウド コンピューティングの急速な進歩に伴い、クラウドネイティブ マイクロサービスは、新しいアプリケーション システムの中核アーキテクチャとしてますます広く使用されるようになりました。Gartner のマイクロサービスの定義によれば、「マイクロサービスとは、範囲が狭く、しっかりとカプセル化され、疎結合され、独立してデプロイ可能で、独立してスケーラブルなアプリケーション コンポーネントです。」
マイクロサービスの父である Martin Fowler は、マイクロサービスについて次のように概説しました。 現在、マイクロサービス業界には統一された標準の定義がありません。
しかし、一般的に言えば、マイクロサービス アーキテクチャはアーキテクチャ パターンまたはアーキテクチャ スタイルであり、単一のアプリケーションを一連の小さなサービスに分割し、それぞれが独自の独立したプロセスで実行され、サービス間を調整し、相互に連携することを推奨します。ユーザーに究極の価値を提供します。サービスは、軽量の通信メカニズム (通常は HTTP ベースの RESTful API) を使用して相互に通信します。
各サービスは特定のビジネスを中心に構築されており、実稼働環境、実稼働に類似した環境などに個別にデプロイできます。この方法により、アプリケーション システムの応答速度、柔軟性、デプロイの弾力性が向上し、ビジネスの発展に追いつくことができます。迅速な反復と最適化。現在、業界ではますます多くのアプリケーション サービス システムがマイクロサービス アーキテクチャにアップグレードされており、既存のアプリケーション監視システムに新たな課題をもたらしています。
マイクロサービス アプリケーション監視システムの構築と開発を促進し、業界におけるマイクロサービス フルリンク監視テクノロジーの実用的な道筋を模索するために、私たちは、ノンコードでマイクロサービス フルリンク監視を収集するオープンソースの可観測プラットフォーム SkyWalking を導入しました。侵入情報を収集し、マイクロサービス システムのトポロジ関係を視覚的に表示し、トランザクション リンクを追跡し、パフォーマンスのボトルネックを正確に特定し、マイクロサービスのフルリンク アプリケーションを監視するための既存のテスト ツールと方法の不足を補います。
スカイウォーキングの紹介
SkyWalking は、オープンソースの監視可能なプラットフォーム APM システムであり、マイクロサービス、クラウドネイティブ アーキテクチャ、およびコンテナベース (Docker、k8s、Mesos など) アーキテクチャ向けに設計されたアプリケーション パフォーマンス監視ツールであり、収集、分析、集約、視覚化に使用されます。サービスおよびクラウド ネイティブ インフラストラクチャのデータからのデータ。
分散トレース、サービス グリッド テレメトリ分析、メトリクスの集計および視覚化のための統合ソリューションを提供します。SkyWalking は主に次の 4 つの部分で構成されます。
0 1 エージェント エージェント
プローブはデータを収集し、SkyWalking の要件に従って再フォーマットします (プローブが異なればサポートされるソースも異なります)。
エージェントは各サービス インスタンスで実行され、サービス インスタンスのトレースやメトリクスなどのデータを収集し、OAP サーバーによる分析のために gRPC 経由で SkyWalking バックエンドにレポートします。この記事では、エージェント プログラムについて詳しく紹介します。第3章。
0 2 OAPサーバー
SkyWalkingのOAP(Observability Analysis Platform、観測分析プラットフォーム)は、リンクサンプリングデータを分析するための分析コンピューティングシステムです。
OAP サービスは主に次の 3 種類のデータを計算する必要があります。
(1) 記録データ
トレースやアクセスログなどの記録されたリンクデータは、RecordStreamProcessor によって処理されます。
(2) メトリクスデータ
記録されたインジケーター データ、ほとんどの OAL (Observability Analysis Language) インジケーターはそのようなデータを生成し、MetricsStreamProcessor によって処理されます。
(3) TopNデータ
遅い SQL の定期的な収集など、記録された定期的なサンプリング データは、TopNStreamProcessor によって処理されます。
トレースやアクセスログなどの詳細データはデータ量が比較的多いですが、マージして処理する必要がないため、OAPノード内で処理することができ、これらの詳細データはキャッシュ、非同期バッチ処理、ストリーム書き込みにより処理されます。 . 外部ストレージ(ストレージ)に書き込みます。
OAL (Observability Analysis Language) で定義された指標データのほとんどは、マイクロサービスによって集約および計算される必要があるため、OAP クラスター コンピューティング フローでは 2 つのステップに分かれています。
ステップ 1: エージェントによって送信されたデータを受信して解析し、OAL または他の集約モードを使用して、現在の OAP サービス ノードでデータ集約を実行します。
集約する必要のないデータは外部ストレージ (Storage) に直接書き込まれ、マイクロサービスで集約する必要があるデータの場合は、特定のルーティング ルールに従って指定された OAP サービス ノードに送信されます。
ステップ 2: ステップ 1 で処理されたデータを受信して解析し、二次集計計算を実行し、結果データを外部メモリ (ストレージ) に書き込みます。
上記の 2 つのステップでは、OAP サービス ノードは、受信者 (処理ステップ 1) とアグリゲーター (処理ステップ 2) の 2 つの役割に分割されます。
デフォルトでは、すべての OAP サービス ノードは混合ロールであり、ステップ 1 とステップ 2 の操作を実行できます。SkyWalkingの大規模システム導入シナリオでは、ネットワークトラフィックに応じて2段階の役割分担が可能です。
OAP サーバーは、SkyWalking UI インターフェイスによって送信されたクエリ要求にも応答し、以前に永続化されたデータをクエリし、正しい応答結果を形成して、それを表示のために UI インターフェイスに返します。
0 3 ストレージ データベースストレージ
OAP サービスの外部ストレージ デバイスとして、データ ストレージを担当し、複数のストレージ タイプをサポートしており、ElasticSearch、Mysql などの既存のストレージ システムを使用することも、ストレージ システムをカスタマイズすることもできます。
SkyWalking データは、ElasticSearch、Mysql、TiDB、InfluxDB、および H2 の実装された永続化システムに保存できます。H2 はインメモリ データベースです。保存されたデータはメモリ内にあり、ディスクには保存されません。SkyWalking サービスを再起動すると、これはデフォルトのストレージ方法であり、ElasticSearch クラスターは通常、バックエンド ストレージとしてオンラインで使用されます。
0 4 UIインターフェイス
SkyWalking データの視覚化と管理を担当し、フロント エンドとバック エンドを分離します。UI インターフェイスは、ユーザーのクエリ操作を GraphQL リクエストにカプセル化し、それを OAP バックエンドに送信して後続のクエリ操作をトリガーします。クエリ結果が取得された後、チェーンコール関係の表示と表示、さまざまな監視指標、パフォーマンス指標などの表示を担当します。
SkyWalking を構成するサブシステムの上記の紹介から、Agent エージェント プログラムはさまざまなリンク サンプリング データを収集し、それを分析のために GRPC 経由で OAP に渡し、データベースに保存し、最後に統計レポートを分析するための UI インターフェイス、サービスの依存関係およびトポロジ図が表示されます。
SkyWalking アプリケーションの拡張とパフォーマンスのチューニング
カスタム プラグイン開発の例では、特定のシステムに基づいてカスタム プラグインを開発し、それを SkyWalking デプロイメント パッケージの plugins ディレクトリにデプロイします。
クエリ インターフェイスが呼び出されると、図 1 に示すように、複数のスレッドが SkyWalking のメソッドのサンプリング情報を表示できます。
図1 クエリメソッドのサンプリング情報
図 1 のクエリ方法のリンクをクリックすると、図 2 に示すように詳細なスパン情報が表示されます。
図2 スパン情報
上記の情報から、追加した 3 つのタグは、呼び出し開始時間、呼び出し終了時間、およびシステム間クエリ メソッド実行時間 (ミリ秒) であることが明確にわかります。
システムを再構築したアーキテクチャは、マルチマイクロサービスとマルチリンクシステムが特徴です。パラメータ設定検査、可観測性技術、データ移行、同時検証の4つの成果を応用することができます。
パフォーマンス チューニングの例: SkyWaling Agent がビジネス パフォーマンス テストに与える影響を最小限に抑え、ビジネス システムのパフォーマンス ボトルネックを正確に監視するために、SkywalkingAgent のパフォーマンス チューニングを実行しました。サンプリング周波数やサンプリング量などの関連パラメータを調整することで、SkywalkingAgent のパフォーマンス チューニングを実行しました。 、エージェント後の SkyWalking の展開による追加のパフォーマンスの損失を減らすことができます。
図 3 は、SkyWaling Agent を展開しない場合、SkyWaling Agent 標準化を展開する場合 (パフォーマンス チューニングなし)、およびパフォーマンス チューニングを使用して SkyWaling Agent を展開する場合のパフォーマンス テスト結果の比較です。チューニング後は、パフォーマンスが向上していることがわかりました。標準化された展開シナリオと比較して、パフォーマンスの損失は、エージェントが展開されていない状況と比較して最小限に抑えられました。
最後に:以下の完全なソフトウェア テスト ビデオ チュートリアルが整理されてアップロードされており、必要な友人は自分で入手できます[100% 無料を保証]
ソフトウェアテストの面接ドキュメント
私たちは高給の仕事を見つけるために勉強しなければなりません。次の面接の質問は、アリ、テンセント、バイトなどの一流インターネット企業からの最新の面接資料であり、一部のバイトの上司が権威ある回答をしています。このセットを完了してください。面接資料は誰もが満足のいく仕事を見つけることができると信じています。