可観測性Observability)動向

KubeCon + CloudNativeCon Europe 2019 参加報告

Takashi Natsume
nttlabs
8 min readJun 17, 2019

--

皆さん、こんにちは!NTTソフトウェアイノベーションセンタの夏目です。新しい元号の令和に変わり、1ヶ月以上経ちましたが、いかがお過ごしでしょうか。さて、私、夏目は先月(2019年5月)にスペインのバルセロナで開催されたKubeCon + CloudNativeCon Europe 2019に参加しました。今回はその国際会議の内容を皆様にお伝えします。

図1. 展示会場にあったKubernetes誕生5周年記念のドーナツの壁

KubeCon + CloudNativeCon Europe 2019参加報告の講演

なお、このブログの記事の公開に先立ち、2019年6月7日(金)に公益社団法人日本技術士会で参加報告の講演をさせていただきました。

以下が私(夏目)の参加報告の資料となります。

資料1. 参加報告資料

今回はこの参加報告から可観測性(Observability)について、少し詳しく見て行きたいと思います。

可観測性(Observability)

まず、クラウドネイティブなシステムでの可観測性については、どのような扱いとなっているのでしょうか。まず、CNCF Cloud Native Definition v1.0(日本語版)を見たいと思います。そこには以下の記述があります。

クラウドネイティブ技術は、パブリッククラウド、プライベートクラウド、ハイブリッドクラウドなどの近代的でダイナミックな環境において、スケーラブルなアプリケーションを構築および実行するための能力を組織にもたらします。 このアプローチの代表例に、コンテナ、サービスメッシュ、マイクロサービス、イミューダブルインフラストラクチャ、および宣言型APIがあります。

これらの手法により、回復性、管理力、および可観測性のある疎結合システムが実現します。(後略)

ここでは、クラウドネイティブなシステムとは「可観測性」を実現したシステムであることが謳(うた)われています。

また、コンテナによるマイクロサービス・アーキテクチャにより、多くの「小さい」サービスが連携してユーザにサービスを提供する場合、それらの「小さい」サービスを跨った処理について追跡できる必要があります。

今回のKeynote講演では、可観測性(Observability)に関する講演がありました。

図2. 可観測性の3本柱(出典: Keynote: …What Does the Future Hold for Observability?
図3. Telemetry (出典: Keynote: CNCF Project Update

可観測性については3本柱として、メトリック、ログ、トレースがあり(図2)、その3本柱、他を取得・測定する方法をTelemetryと言います。このTelemetryは、クラウドネイティブなソフトウェアやシステムに必ず組み込まれていなければならない特徴(機能)であるとのことです(図3)。それは上述したCNCF Cloud Native Definition v1.0にある「可観測性のある」システムの実現に該当します。

Telemetryを提供するソフトウェアとして、OpenMetricsPrometheusFluentdOpenTracingJaegerOpenCensusなどがあります。OpenTracingについては可観測性の3本柱のうちトレースを取得でき、OpenCensusについてはメトリックとトレースを取得できます。今回の会議では、そのOpenTracingとOpenCensusに関する重大な発表がありました。それはOpenTracingとOpenCensusを統合して、OpenTelemetryというプロジェクト(ソフトウェア)にするという発表(図4)です。

図4. OpenTracingとOpenCensusが統合されOpenTelemetryに(出典: Keynote: CNCF Project Update

OpenTelemetryに関しては、「OpenTelemetry: Panel Discussion and Q&A 」や「OpenTelemetry: Backwards Compatibility with OpenTracing and OpenCensus」のセッションがあり、そこで何故2つのプロジェクトを統合することになったのか、後方互換性(Backwards compatibility)などについて説明がありました。

何故2つのプロジェクトを統合することになったのかについては、OpenTracingとOpenCensusはまったく同一ではないが重なり合う似ている機能を持っており、OpenTracingとOpenCensusを使い分けるのはユーザにとって使いやすくないことから統合するということになったとのことです。また、後方互換性については統合後2年間はOpenTelemetryにおいてOpenTracingやOpenCensusのAPIを使用可能にして、後方互換性を維持するとのことでした。

オープンソース・ソフトウェア(OSS)の世界では似たような機能を持つソフトウェアが複数登場して、普及を競い、一番普及して使われるようになったソフトウェアがデファクト・スタンダード(事実上の標準)となるといったことがよくあります。そのため、デファクト・スタンダードが決まる前に、あるソフトウェアを自社で導入し、その後デファクト・スタンダードが別のソフトウェアになり、導入したソフトウェアが廃れてしまうということがあり、いわゆる「目利き」が難しいと言われています。そして、クラウドネイティブに関連するOSSでも(Telemetry以外の分野でも)似たような機能を持つソフトウェアが数多く登場してきています。そのような中で、ユーザの視点で機能が重なり合うソフトウェアを統合する動きが出てきたことは、ユーザにとって好ましい動きであると思いますが、Telemetryに相当する機能を持つプロジェクトを見ると、まだまだ似た機能を持つプロジェクトが幾つもある状態であり、2つのプロジェクトの統合により、少しはその状態が緩和されるものの、全体的にはその状態がしばらく続くと考えられます。おそらく、今までのOSSと同じく普及の競争が行われて、勝ったものがデファクト・スタンダードとなるという流れになるのではないでしょうか。

そして、可観測性が将来どういう方向に進むかについてですが、Keynote講演(Keynote: …What Does the Future Hold for Observability?)ではその方向性について言及がありました。

図5. 可観測性の将来 (出典: Keynote: …What Does the Future Hold for Observability?

この講演では可観測性の進化の方向性として以下の3つが挙げられていました(図5)。

  1. 3本柱(メトリック、ログ、トレース)の相関を利用できるようにする分析
  2. 新しいシグナルと新しい分析
  3. インデックス・フリーなログの集約(と分析)

「1.」についてはメトリックの分析を行なっている時に、当該メトリックに関連するログに分析を切り替える等の例とツール(ソフトウェア)での実装例が紹介されていました。また、「2.」は例としてメモリの使用量の継続的なプロファイリングを通して、アプリケーションのコードを修正するための分析を行なうことができることと、それを実現するためのOSSのプロジェクトの立ち上げが表明されました。「3.」についてはシステムに分散しているログを集約して分析できる基盤の重要性およびツール(ソフトウェア)での実装例が説明されていました。講演の最後では、やはりコミュニティへの貢献を求めるメッセージがあり、新しいプロジェクトへの参加や、幾つかのツールでの実装例が紹介されたもののまだまだツールや機能を充実していく必要があることが分かりました。

おわりに

皆様、いかがでしたでしょうか。KubeCon + CloudNativeCon Europe 2019では非常に多くの講演があり、多くのトピックが扱われていました。上記で取り上げたのは、そのうちのごく一部です。なお、講演についてはCNCFのyoutubeのチャンネルでも見ることができます。皆さんも興味のあるトピックの講演をご覧になってはいかがでしょうか。それでは、またKubeCon + CloudNativeCon North America 2019でお会いしましょう!

--

--