8章監視

ここまで示してきたように、システムを粒度の細かいマイクロサービスに分割するとさまざまな利点を得られます。しかし、本番環境のシステムの監視については複雑さも加わります。本章では、粒度の細かいシステムにおける監視と問題の特定に関連する課題を調べ、この2つを両立させるためにできることを概説します。

次のような状況を想像してみてください。静かな金曜の午後、チームは仕事から解放された週末を過ごそうと早めにパブに繰り出すことを楽しみにしています。そこに突然メールが届きます。Webサイトに問題が発生しているのです。ツイッターでは会社の失敗に関して炎上しており、上司がくどくど言ってきて、静かな週末を過ごす見込みはなくなります。

まず何を知る必要があるでしょうか。一体何が問題だったのでしょうか。

モノリシックアプリケーションの世界では、少なくとも調査を開始すべき明らかな場所があります。Webサイトが遅いのでしょうか。原因はモノリスです。Webサイトが奇妙なエラーを発しているのでしょうか。これもモノリスです。CPUが100%になっているのでしょうか。モノリスです。焦げ臭いにおいがするのでしょうか。おわかりでしょう。単一障害点があると、障害調査が少し簡単にもなります。

マイクロサービスベースのシステムを考えてみましょう。複数の小さなサービスがユーザに提供する機能を提供し、そのサービスの中にはタスクを完了するためにさらに多くのサービスと通信するものもあります。このような手法には多くの利点がありますが(これは素晴らしいことです。そうでないと、本書は時間の無駄になってしまいます)、監視の世界では複雑な問題が増えてしまいます。

複数のサービスを監視して、複数のログファイルを調べる必要があり、ネットワーク遅延が原因で問題を引き起こす場所が複数あります。どのように解決するのでしょうか。雑然と絡み合った寄せ集めになってしまうかもしれないものを理解する必要があります。これは金曜の午後には(または、いつでも)最も扱いたくないものです。 ...

Get マイクロサービスアーキテクチャ now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.