Observability Conference 2022、日本ユニシスのエンジニアが解説するデベロッパーにとってのオブザーバビリティ

Observability Conference 2022から、デベロッパー目線でオブザーバビリティを解説したセッションを紹介する。「開発者が語る! 事例を通したオブザーバビリティの活用ポイント」と題されているセッションを行ったのは日本ユニシス株式会社の岡田尚希氏だ。

動画:開発者が語る!事例を通したオブザーバビリティの活用ポイント

プレゼンテーションを行う岡田氏プレゼンテーションを行う岡田氏

岡田氏はオブザーバビリティについてログ、メトリクス、トレーシングで構成されるという常識的な定義を説明したが、トレーシングについては「各サービスのログを繋ぎ合わせたもの」であると語っている。間違ってはいないものの、クラウドネイティブなシステムにおけるトレーシングの「分散されたサービスの連携を可視化するもの」という特徴が抜け落ちているのが気になるところだ。

そして「なぜ観測をするのか?」という問いを設定し、デベロッパーを農家に見立てて観測を行うことで収穫される作物の品質を上げることができるからであり、そのためにデベロッパー自身がオブザーバビリティについて意識するべきだと語った。

デベロッパーはオブザーバビリティを意識することで品質を上げられるデベロッパーはオブザーバビリティを意識することで品質を上げられる

そして「観測すべきデータは何か?」を知っているのはデベロッパーであることから、デベロッパー自身が積極的に開発するソフトウェアにオブザーバビリティを取り込むべきだと強調し、取得できるすべてのデータを使うことを推奨している。

オブザーバビリティではすべてのデータを取り込むことを推奨オブザーバビリティではすべてのデータを取り込むことを推奨

岡田氏は従来のモニタリングとは異なり、「どんなデータも事前定義なく送ることでどんなデータも観測できる」と説明している。サイボウズの武内氏のセッションでもメトリクスの冗長化、メトリクスデータ用ストレージの永続化にも注意を払う必要があるという内容があった。データやストレージは壊れるのを前提としてシステムを構成するというのがクラウドネイティブな発想だろう。岡田氏がすべてのデータを使うように推奨しているのは、パブリッククラウドのAzureのサービスを使うことが前提になっていることが理由のようだ。

サーバーにすべてのデータを送り、それを活用することに意味があると強調サーバーにすべてのデータを送り、それを活用することに意味があると強調

ここでオブザーバビリティのためのソフトウェア、サービスを簡単に紹介。ここではオープンソースソフトウェアであるPrometheusやElasticsearchなどが挙げられているが、特にAzureに注目して説明していることから、岡田氏がAzureの機能を前提にしてセッションを組み立てていることがわかる。

Azureのオブザーバビリティを中心に説明Azureのオブザーバビリティを中心に説明

特に後にユースケースの3つ目として、モノリシックなアプリケーションのオブザーバビリティについてもワンクリックで観測を始めることができるなどの特徴を持っていることを解説しているが、これについてもAzureが前提であることに留意されたい。

Azure Monitorを解説Azure Monitorを解説

ここからAzure Application Insightsについて時間を割いて紹介を行った。

Azure Application Insightsのトレーシングの紹介Azure Application Insightsのトレーシングの紹介

異常を知らせるAzureのAlertsサービスについては、監視するだけではなくインシデント管理とも関連付けることで運用管理者の負担が軽減できるという。

インシデント管理もできるAzureのサービスを紹介インシデント管理もできるAzureのサービスを紹介

ユースケースとして岡田氏が説明したのは、IoT端末からデータを吸い上げてサーバーレスのアプリケーションを組み合わせたデモンストレーションのシステムだ。複数のデバイスからデータが表示されないという不具合を解決したケース、デバイスの死活管理を実装したケース、Javaで書かれたモノリシックなアプリケーションからApplication Insightsでモニタリングを可能にしたユースケースなどを説明した。

デバイスからのメトリクスデータを使って不具合を解決デバイスからのメトリクスデータを使って不具合を解決

この例ではAzureのインフラストラクチャー側の不具合でエラーメッセージも確認することができなかったという状況を、死活管理のためのファンクションを実装することで回避できたと説明。

Azureの不具合をユーザーアプリ側で対応した例を紹介Azureの不具合をユーザーアプリ側で対応した例を紹介

モノリシックなJavaアプリケーションについては「ポータルからポチるだけ」でアプリケーションのオブザーバビリティが実装できるという手軽さを解説。ここでもAzure前提の機能紹介となった。

また単にシステムの挙動を観測するのではなく、メトリクスを上手く使うことでアプリケーションの分析にも活かせるというユースケースも紹介。ここでは美容サロンの予約を行うWebアプリケーションのログインから予約成立に至る成立率を割り出すことで、ビジネスに活かすことができると説明した。このレベルになるとAppDynamicsなどのApplication Performance Monitoring(APM)の領域だが、岡田氏はメトリクスを上手く使うことの可能性を示唆したと言えるだろう。

運用担当者だけではなく、アプリケーションデベロッパーに対してオブザーバビリティが重要な視点であることを伝えたかった岡田氏だが、解説のプラットフォームがAzure前提であるのは気になるところだろう。またすべてのデータを取るべきというのは、デベロッパーに対してまず始めることを推奨するには必要だろうが、オブザーバビリティデータの永続性などに対する観点も次回は期待したい。

Original Post>