BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース 分散システムの可観測性戦略 - InfoQ Liveで学んだ教訓

分散システムの可観測性戦略 - InfoQ Liveで学んだ教訓

ブックマーク

原文(投稿日:2020/09/03)へのリンク

優れた可観測性戦略は、システムのビジネス目標を重視するとともに、分散システム全体のデータを使用して、その目標達成を判断する。このような戦略を実現するためには、チームによるデータ共有方法を単純化して、"やるべきことが簡単にできる"ようにする必要がある。これらは8月25日にオンラインで行われたInfoQ Liveの討論会で、分散システムの可観測性パターンに関して論じられたアイデアの一部だ。参加したパネリストは、 Liz Fong-JonesLuke BlaneyIdit LevineDaniel "Spoons" Spoonhower各氏である。

システムに既にあるのものを使って可観測性の改善に着手するには、どのような方法があるのだろうか?リクエストがシステム内をどのようにフローするかを確認できるトレースIDは、サービスメッシュを使用している場合でも、あるいはロードバランサやプロキシを使用している場合であっても、既存のネットワークコンポーネントを伝搬することが可能である。

既存のサービスを可観測性プラットフォームに参加させるには手軽な方法だ。Financial Timesがコンポーネントの識別にSystem Codeを使っている方法について、Blaney氏が説明してくれた。このデータフィールドをひとつ、ログやメッセージに含めるだけで、可観測性プラットフォームに含まれていることのメリットを即座に享受することができる。これは通常、すべてのチームに厳格なレポートのガイドラインを課すよりも、ずっと簡単な方法だ。

"開発チームはとても面倒くさがり屋だ"というFong-Jones氏の見解を踏まえて、パネリスト全員が、"最も簡単で正しい方法にする"ためのさまざまなバリエーションを提案した。ほとんどの開発チームは自分たちのサービス開発、自動ダッシュボードの開発方法の検討、運用手順書の更新などで多忙だからだ。Spoons氏は、マシンリーダブルな資料を中央集中的に作成する必要性を強調した。

同様に、構造化されたログを使用することによって、情報の参照が容易になり、パターンの検出に大きく寄与する。この時に推奨される行動のひとつは、仮説を立てた上でのテストを可能にすることだ。分散システム全体から得られるデータは膨大なものになる可能性があるため、焦点を絞る手段が必要になる。

サイト信頼性エンジニアリング(SRE)のプラクティスには、"普通の"ソフトウェアエンジニアリングとは違った考え方が求められる。DevOpsがソフトウェアエンジニアリングをIT運用に適用する試みであるのに対して、SREは障害に関して真逆のアプローチを採用するものであり、予期されるものを探す監視(monitoring)と、予期されないものに注目する観測(observing)の間の2重性だと考えることができる。

パネリストはそれぞれいくつかの落とし穴を経験しており、他の人たちが同じ失敗をしないことを望んでいる。Fong-Jones氏は、システムに可観測性を簡単に追加できるという製品には注意するように、と呼びかける。可観測性はデータとツールで実現できると考えている人が多いが、これは時間を掛けて進化させる機能であり、本当に重要なのは考え方と行動なのだ。

可観測性の最大のメリットは、ビジネスにおいて最も重要なものを対象とすることで初めて得られる、とSpoons氏は言う。誰かが着手して多くのことを成し遂げたとしても、クリティカルパスを外れていれば何のメリットもなく、結局は忘れ去られてしまう。

Blaney氏は開発者に対して、自分たちが正しい質問をしているか確認してほしい、と述べている。実際に使用されているかどうかを判断せずに、依存関係のバージョンアップをチェックすることが非常に多いのだ。これは微妙な違いであり、この分野に不慣れな人は、その重要性を見落としがちである。

マイクロサービス用のSquashデバッガを開発したLavine氏は、分散システムを開発するということは、デバッグなどの作業が現実的には開発時にのみ可能であるという意味だ、と説明する。従って、運用中の分散システムのトラブルシュートには、別のテクニックが必要になる。コンパイルされたバイナリにはビジネスロジックだけでなく、運用上のロジックも含める必要がある。Levine氏は経験から、トラフィックやサービスの動作に関する詳細な情報を入手するには、Envoyをサイドカーとして使用することが非常に有用であると理解している。

Fong-Jones氏もまた、"運用環境でのテスト。運用環境でのテスト。運用環境でのテスト"の重要性を強調している。運用環境を完璧に再現することは不可能だからだ。開発者は可能な限り、運用障害時のトラブルシュートに使用するものと同じツールやテクニックを、開発中も使用するべきである。

討論会の最後には、可観測性の次に来るものが議論された。将来のシステムは、さらに多くのデータを提供するものになるだろう。それによって人手による作業が少なくなることを、Spoon氏は期待している。Levine氏は、将来的にはシステムの状態の解析と対応が可能な自己回復型システムが多くなる、という考えだ。大規模システムの観測では一般的な、S/N比の問題に対しても有用だろう。

Blaney、Fong-Jones両氏は、データやツールのみに迷ってはいけない、本当の問題に集中し続けることが必要だ、と警告する。システムがよい状態にあるかどうかを、ビジネスの視点から問い続けることが大切なのだ。  

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

BT