[レポート] マイクロサービスの可観測性についての Instana のデモセッション #DEM14-S #reinvent

2019.12.29

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

re:Invent 2019 では技術セッションだけでなく EXPO というスポンサーの展示会場もあるのですが、その EXPO 会場でも各パートナー企業によるスポンサーセッションも行われていました。そのなかのひとつ、Instana 社による標題についてのセッションをレポートします。

前半は「可観測性(Observability)」についての概論、後半は実際のアプリケーションを用いてパフォーマンス上の問題を観測、原因を Fix するデモンストレーションでした。
本セッションの資料ならびに録画は既に公開されていますので、興味がわきましたら詳細はそちらで是非ご確認下さい。

概要

(抄訳)現代的なマイクロサービスの環境において、テレメトリデータの収集に「充分だ」ということはありません。我々は、リアルタイムにそれらのデータを収集する必要があるのです。このセッションでは、現代的な組織が「分散トレーシング」「メトリクス」「ロギング」のコンビネーションを駆使して、如何に巨大で複雑なマイクロサービス環境を理解するか、実際の Instana 製品のデモを交えて説明します。

資料

登壇者

  • Kevin Crawley - Developer Evangelist, Instana

内容

「可観測性」の理論と論理

  • 1961 年の制御理論の論文より
    • 「その入力と出力を見るだけでシステム全体の動作を決定できるのであれば、そのシステムは観察可能であるといえる」
  • Control theory - Wikipedia
  • 可観測性が可能にするもの
    • 発生する問題のパターンの認識
    • 重要性の割り当て
    • 根拠付けの手助けによる問題発生の背景の理解
    • 対処の手ほどき - どのようにそれを Fix すればよいか

  • 何故可観測性が必要なのか?
    • 変更の頻度が上がる
    • 複雑性も上がる
    • それに適用 (Adopt) するか、さもなくば崩壊するか

分散トレーシング

  • “Dapper, a Large-Scale Distributed Systems Tracing Infrastructure,”
    • Google Technical Report dapper-2010-1, April 2010, p. 1
    • 「現代のインターネットサービスは、複雑かつ大規模な分散システムであることが多い」
    • 「これらのアプリケーションは異なるチームによって開発されたソフトウェアモジュールのコレクション(おそらくプログラミング言語も異なる)から構築され、」
    • 「そして複数の物理的な施設にまたがる数千もの機器にて動作しているでしょう」
    • 「このような環境では、システムの動作の理解とパフォーマンスに関する事象の根拠を探るためのツールにはとても価値があります」

  • 分散化したふるまいをどのように可視化するか?
    • 全てのトランザクションにカスタムヘッダを Inject する
      • HTTP
      • メッセージング
      • RPC など
    • 各トランザクションの階層構造とタイミングをガントチャートで可視化する
  • Dapper, a Large-Scale Distributed Systems Tracing Infrastructure,”
    • Google Technical Report dapper-2010-1, April 2010, p. 3, fig. 2

  • 単なる「分散トレーシング」以上のものが必要
    • もはやサービスを「シュレディンガーの猫」のように扱うことはない
      • (開けてみるまで中がどうなっているかわからない、という例え?)
    • イベントとトランザクションに関する更なるコンテキストが必要
    • 集約された「リクエストにフォーカスしたイベント」から生成される「実用的な洞察(Actionable insights)」
  • Peter Bourgon · Metrics, tracing, and logging
  • 莫大な量のデータを…
    • 集約する
    • SLI ・ SLO を決める
    • 機械学習
    • パフォーマンス分析
    • デバッグ

  • 我々はこれらのデータを再構築し、どのように行動すれば良いかの決断を容易にしてくれる仕組みを必要としている

以下、それを可能にするのは Instana の製品である、というデモンストレーションが続きます。
ここから先は実際の動画を参照ください(07:13〜17:00)。

  • まとめ:汝 (なんじ) 金曜日にデプロイ する勿 (なか) れ せよ
    • (旧約聖書・出エジプト記の「汝殺す勿れ」のパロディーですw)
  • 可観測性ツールは、チームの仕事を増やすことなくシステム (マイクロサービス) が性能発揮することを手助けする
  • あなたの成功事例をコミュニティでシェアしよう!

まとめ

20 分という短いセッションでしたが、可観測性が重要視される理由が端的に、かつ引用豊富に語られたセッションでした。デモも 10 分程度の短いものですので、興味のおありの方は是非動画をご覧になってください。