最新のマイクロサービス・アーキテクチャーを採用するシステムを安定稼働させるためには、従来とは異なる最新のシステム監視手法が必要だ。銀行の基幹系システムを「Google Cloud」上にマイクロサービスで構築したみんなの銀行の事例から、マイクロサービス時代のシステム監視を学ぼう。

 「オンプレミス時代のシステム監視といえば、物理サーバーの死活監視が中心だった。しかしクラウドでは物理サーバーは見えない。さらに今はコンテナに加えて、コンテナをコントロールするサービスメッシュも監視する必要がある」。みんなの銀行の宮本昌明執行役員CIO(最高情報責任者)は、現在におけるシステム監視の課題をこうまとめる。

 みんなの銀行は開業にあたり基幹系システムをGoogle Cloud上に構築した。顧客との接点はスマートフォンアプリケーションだけだ。システム監視はサーバーの死活という視点ではなく、顧客のスマホアプリが正常に利用できるか否かとの視点で実行する必要がある。「Google Cloudは正常に稼働していても、スマホアプリのレスポンス(応答)が遅くなっている可能性がある」(宮本CIO)ためだ。

 そこでみんなの銀行は、Google Cloud上で稼働する基幹系システムを監視する仕組みを、米Datadog(データドッグ)が提供するシステム監視SaaS(ソフトウエア・アズ・ア・サービス)の「Datadog」を採用して構築した。

みんなの銀行におけるシステム監視の概要
みんなの銀行におけるシステム監視の概要
[画像のクリックで拡大表示]

 まずは監視対象であるみんなの銀行の基幹系システムの概要を見ていこう。すべてのアプリケーションは「Google Kubernetes Engine(GKE)」のコンテナ上で稼働するマイクロサービスとして実装し、各マイクロサービスのデータベース(DB)は「Cloud Spanner」で稼働する。マイクロサービス間の通信はサービスメッシュである「Istio」が制御し、マイクロサービス間のデータ連携は「Apache Kafka」が制御する。

クラウドの各種サービスから稼働情報を収集

 システムの稼働情報であるメトリクスは、Google Cloudの各種サービスやミドルウエアからDatadogに収集する。コンテナのCPU稼働率などはコンテナをホストするGKEから、DBの稼働情報はCloud Spannerから、アプリケーション間の通信が成功しているかどうかはIstioから、データ連携の遅延状況などはApache Kafkaから集める。メトリクスは数値として収集し、システムの稼働状態を時系列で追いかけるといった、統計的な分析に使用する。

 マイクロサービスとして実装された各アプリケーションが出力するログもDatadogに収集する。ログはテキストデータであり、アプリケーションで発生したエラーなどが記録されている。Datadogはログデータを逐次分析し、深刻なエラーの発生状況や、エラー発生件数の推移などを監視する。

 さらにDatadogが運用するロボットが、インターネット経由で各マイクロサービスのAPI(アプリケーション・プログラミング・インターフェース)を呼び出して、そのレスポンス(応答)などを計測している。

 みんなの銀行の基幹系システムでは様々な外部SaaSも使用しており、その数は16種類にも達する。そうした外部SaaSの稼働データなどもDatadogに集約して分析している。

 そしてこれらメトリクス、ログ、ロボットによるAPI呼び出しなどによって集めたデータは、すべてDatadogのダッシュボードにおいてグラフなどを使って一覧表示できる。みんなの銀行では運用担当者だけでなく、宮本CIO自らがこのダッシュボードを使ってシステムの稼働状況をチェックしている。

この先は日経クロステック Active会員の登録が必要です

日経クロステック Activeは、IT/製造/建設各分野にかかわる企業向け製品・サービスについて、選択や導入を支援する情報サイトです。製品・サービス情報、導入事例などのコンテンツを多数掲載しています。初めてご覧になる際には、会員登録(無料)をお願いいたします。