1. はじめに
IBM がアプリケーションを作成するために役立つ情報を「パターン」として公開しているポータルサイト「 Code Patterns 」に
「Monitor the performance of your microservice app -
Integrate Instana into your polyglot microservice app running on Red Hat OpenShift 」
というコードパターンがあります。
和訳すると「 マイクロサービスアプリのパフォーマンスを監視する -
InstanaをRed Hat OpenShiftで実行されている多言語アーキテクチャーのマイクロサービスアプリに組み込む。」でしょうか
このコード・パターン自体は、英語ですが、実際に このコード・パターンを使って
Red Hat OpenShiftクラスターに APMツールのInstanaを導入し、マイクロサービスアプリケーションのパフォーマンスを監視した時の手順を日本語で何回かに分けて手順を起こそうと思います。
補足) Instana: アプリケーション・パフォーマンス管理(APM)ツールの1つでサービスに問題が発生した時に、インフラからアプリまでの依存関係を視覚化し、どこのサービスで、ソースコードの何行目が問題があるのか原因究明コストを大幅に削減できるのが特徴なツールです。
2. このコード・パターンの概要
このコード・パターンでは、Red Hat OpenShiftクラスターで多言語アーキテクチャのマイクロサービス で構成される旅行代理店のWebアプリケーション Bee Travelsを動かします。 そして、Instanaを OpenShiftに導入し、Webアプリケーション Bee Travelsを監視します。
Instanaは、インフラストラクチャ、アプリケーション、サービスを可視化、パフォーマンス管理することのできるパフォーマンス・モニタリング(APM)ツールです。
今回は、 Puppeteer を使用して旅行代理店のWebアプリケーション Bee Travelsへのトラフィックを生成し、 Instanaのダッシュボードでトラフィックを分析します。
このコードパターンで使用される旅行代理店のWebアプリケーションは、 GitHubの Bee Travelsプロジェクトの一部です。このコード・パターンに含まれるサービスは次のとおりです。
- Destination v1 (Node.js)
- Car Rental v1 (Node.js)
- Hotel v1 (Python)
- Currency Exchange (Node.js)
- UI (Node.js/React)
3. アーキテクチャー
下図はこのコード・パターンのアーキテクチャを表したもので、下記の1~3の処理を行います。
- Puppeteerスクリプトは、OpenShiftクラスターで実行されているBee Travelsアプリケーションへのトラフィックを生成します。
- Bee Travelsアプリケーションの各サービスのInstanaコードは、それぞれのサービスに関するデータをOpenShiftクラスター内のInstanaエージェントに送信します。(クラスターノードごとに1つのInstanaエージェント)
- Instana Agentは、そのデーターをInstanaのアカウントに送信します。ここで、Instanaダッシュボードを介してBee Travelsマイクロサービスを分析および監視できます。
4. 今後の内容
今回の投稿は、概要レベルで、次回からは、GitHubリポジトリ 「Integrate Instana with a Microservice Application on OpenShift」 の手順に沿って、以下の1〜5の内容の投稿したいと思います。
- コード・パターンを完了するために必要な前提条件をインストール。
- BeeTravelsアプリケーションのコードをInstanaでトレースできるように修正。
- BeeTravelsアプリケーションをOpenShiftにデプロイ。
- InstanaAgentのインスタンスをOpenShiftに作成。
- Pupeteerを使用してトラフィックを生成し、Instanaを使用してトラフィックを分析。
個人的には、この投稿をスタートに、以下のリストのように、OpenShiftにアプリがデプロイできる、APMツールでパフォーマンスモニタリングできる、ARMツールでリソース管理できるというのが、実際に手を動かして理解できる記事を作成したいと考えています。
・OpenShiftにマイクロサービスができる
→ Instanaを使ってOpenShift上で動作するアプリのパフォーマンスを監視する (2)
・APM(アプリケーション・パフォーマンス管理)ツールのInstanaを使って、OpenShiftのマイクロサービスをモニタリングする
→ 今後、投稿
・ARM(アプリケーション・リソース管理)ツールのTurbonomicを使って、OpenShiftのマイクロサービスを効率的に管理する
→ Qiita記事:Turbonomic のOpenShiftへのインストール Operator版
→ Qiita記事:Turbonomic のOpenShiftへのインストール (Instana連携編)