2025年2月4日
SRE書籍翻訳者
アマゾンウェブサービスジャパン合同会社シニアデベロッパーアドボケイト。AWS製品の普及と技術支援を担当し、特にオブザーバビリティ、SRE、DevOpsといった領域を担当。OpenTelemetryやGoのコミュニティの支援も活発に行っている。『SREをはじめよう』『効率的なGo』『SLO サービスレベル目標』『オブザーバビリティ・エンジニアリング』『Go言語による並行処理』翻訳、『SREの探求』監訳をはじめ、技術書の翻訳に多数関わる。好きなプログラミング言語の傾向は、実用指向で標準の必要十分に重きを置くもので、特にGoやPythonを好んでいる。
X: @ymotongpoo
GitHub: @ymotongpoo
みなさん、こんにちは。趣味として技術書の翻訳を行っている山口能迪(やまぐちよしふみ)と申します。
前回の記事では「SREへの理解を深める4冊」というテーマで、SREをこれから学ぶ方、さらには実践していく方向けにおすすめの技術書をご紹介しました。今回は、SREの実践に欠かせないプラクティスの1つ、オブザーバビリティ(可観測性)への理解を深める書籍をいくつかご紹介します。
さきほどオブザーバビリティのことを「SREの実践に欠かせないプラクティスの1つ」として紹介しましたが、歴史的に見ればオブザーバビリティそのものが非常に大きな技術領域です。そしてSREを実践するしないにかかわらず、オブザーバビリティはそれ単体で非常に有益なプラクティスでもあります。
オブザーバビリティは、モニタリングと比較されることがよくありますが、こうした概念の定義に関する疑問は新しい技術領域にはつきものです。「オブザーバビリティとはなにか」について理解をするうえで、『オブザーバビリティ・エンジニアリング』は非常に有益な書籍です。
本書は、Honeycomb.ioというオブザーバビリティSaaSの役員3名(原著執筆時)がオブザーバビリティについて解説した書籍です。2025年1月現在においても、オブザーバビリティを概論として理解する上で、本書ほどまとまっている書籍はありません。
本書は5部構成になっていますが、まず第1部でなぜモニタリングではなく、オブザーバビリティという新しい概念として区別する必要があったのかが解説されています。そして第2部では分散トレースに関する解説や、どのようにそれらを構造化ログやメトリクスと連携させて用い、どのようにデバッグに使うかなど、オブザーバビリティにおいて重要な基礎技術が解説されています。第3部ではシステムにオブザーバビリティを持たせるために、チームとして何をすべきか、という解説があります。ここで長期的な運用に踏み込んだ話題が出てきます。第4部ではオブザーバビリティと運用コストに関する話題が解説され、そして第5部は組織の文化としてオブザーバビリティをどう発展させていくか、という大きな話題が解説されています。
以上を見て分かる通り、本書は細かな製品の使い方の話ではなく、オブザーバビリティという概念とその基礎技術、またそれを支える組織の話が中心となっています。本書の内容を理解することで、みなさんが普段使われているオブザーバビリティ/モニタリングの基盤への理解がより深まることと思います。
オブザーバビリティが求めることの1つに「システムがユーザーに与える影響を含めてあらゆる状態が理解できるようにする」というものがあります。この「ユーザーに与える影響」をきちんと定義するのがサービスレベル目標です。サービスレベル目標については前回の記事で取り上げた『SRE サイトリライアビリティエンジニアリング』『サイトリライアビリティワークブック』、また上に挙げた『オブザーバビリティ・エンジニアリング』でも章を割いて解説されるほど、非常に重要なテーマです。
本書はそんなサービスレベル目標に関して解説した力作です。オブザーバビリティが、“システムが関わる人々への影響や生じた問題の調査に必要なテレメトリーを収集、可視化すること”を指すとすれば、サービスレベル目標は“そもそも何を優先的に計測すべきかを教えてくれる指針”です。私は、現代のビジネスが多かれ少なかれシステムによって支えられているのであれば、システムがビジネスにどのような影響を与えうるのかを理解しようと努めることは、最低限必要な態度であると考えています。
本書はそうしたビジネスへの影響を理解するための指針としてのサービスレベル目標について、その概念、実際にそれ設定するためのプロセス、さらにそれを組織に必要なものとして運用していく文化について、詳細に解説しています。システムが提供する価値の品質の目標値は、ユーザーのシステムに対する期待値を正しく設定するとともに、システムが提供する価値に対して行き過ぎたコストをかけないための基準値でもあります。行き過ぎたコストをかけないことにより生まれた余裕を、新たな価値の提供に振り向ける。これはまさにエンジニアが持つべき態度そのものではないでしょうか。
本書は『オブザーバビリティ・エンジニアリング』と同様に、コードを写経するワークショップを進めていくような類の書籍ではありません。一方で、サービスレベル目標を理解することで、システムに対する大きな視点が持てるようになることでしょう。
自分たちのシステムにおけるオブザーバビリティについての議論を始めると、ついつい視点がシステム全体、あるいはコンポーネント全体といったマクロの方向に向かいがちです。しかし、システムを開発するという作業は関数単位、あるいはコード1行単位のかなりミクロな活動です。
そういったミクロな活動においても実はオブザーバビリティが重要であることを意識させてくれるのが、本書『効率的なGo』です。
本書は書籍タイトルにGoと入っているので、Goユーザー向けに書かれているように思われるかもしれませんが、実際はサンプルコードにGoを使っているに過ぎず、その内容はいかなる言語であっても活用できる書籍になっています。
「パフォーマンスチューニング」という言葉を聞くと、その言語のフレームワークやランタイムに詳しい人達が、超人的なハックによって行うもの、という印象を抱く人がいるかもしれません。しかし、実際には、サービスレベル目標の設定でも行うような、期待値に沿う程度の基礎的な改善を行うことが主眼であるべきです。本書が解説するのは、そのために必要なミクロなレベルでのオブザーバビリティです。
CPUやメモリといったプリミティブなコンポーネントの動作についての理解を大まかに理解したうえで、ベンチマークやプロファイルといったツールを活用する方法について、本書全体を通して1つ1つ理解できます。本書を読むことで「パフォーマンス」に対する認識を深めることができるでしょう。
『オブザーバビリティ・エンジニアリング』にも触れられているOpenTelemetryですが、さまざまなオブザーバビリティ関連ツールがあるなかで、なぜ注目を集めているのでしょうか。Kubernetesがコンテナオーケストレーションの参照実装および標準をつくっているとすれば、OpenTelemetryはまさにそれをオブザーバビリティの領域で行っています。本書はそんなOpenTelemetryについての入門書です。
本書が特徴的なのは、変更の激しいライブラリーの実装等、変化が起こり得る部分は公式ドキュメントや公式サンプルに譲り、すでに仕様として固定された概念的な部分や設計についての解説を行っていることです。OpenTelemetryはその特徴として、必ず仕様が実装に先行することを徹底している点があります。実装が仕様に追いついていない箇所はまだまだありますが、主要な部分は仕様通りとなっています。本書を先に読むことで、OpenTelemetryを使ったシステムを使う上で必要な概念が理解でき、公式ドキュメントを読み進める際も役立つことでしょう。
本記事で紹介した4冊は、極力多くの方々のニーズを満たすような書籍を取り上げたつもりです。意図せず全て私が翻訳に関わった書籍になっていますが、これは元々オブザーバビリティ領域を主題とする書籍が少なかったことに起因しています。本記事で挙げた書籍以外にも、近年では各種オブザーバビリティツールを用いたオブザーバビリティの実践に関する書籍が出版されるようになってきました。本記事を通じて多くの方々がオブザーバビリティへの理解を深め、そのニーズが高まることを願っています。
関連記事
人気記事