Findy Tools
開発ツールのレビューサイト
目次
Xのツイートボタン
このエントリーをはてなブックマークに追加
Xのツイートボタン
このエントリーをはてなブックマークに追加
公開日 更新日

SRE/o11y アーキテクチャUpdate

会員限定コンテンツです。無料登録すると制限なしでお読みいただけます。
無料登録してアーキテクチャを見る

はじめに

近年、オブザーバビリティの概念は急速に注目を浴びており、その重要性が一層浮き彫りになっています。そこで本記事ではオブザーバビリティに先進的に取り組んでいる注目の企業8社の事例を取り上げるとともに、各社が技術選定においてどのような意図や考え方で工夫をしているのかを紹介していきます。

オブザーバビリティとは

オブザーバビリティとは、システムやアプリケーションの内部動作を監視し、理解するための能力を指します。これは、システム全体の健全性、パフォーマンス、エラー、およびその他の重要な指標をリアルタイムで把握し、可視化することに焦点を当てています。オブザーバビリティを導入することで、エンジニアはシステムの異常や障害を早期に検出し、効果的なトラブルシューティングを行うことができます。さらに、ユーザーエクスペリエンス向上にも貢献し、サービスの信頼性を高めます。オブザーバビリティは、データを通じてシステムの全体像を明らかにし、エンジニアリングの意思決定を補完する重要なツールとなっており、現代のテクノロジーランドスケープにおいて欠かせない要素です。

各社のオブザーバビリティの事例 3選

1. 食べログ(株式会社カカクコム)


「監視データは一箇所に」「監視システムの運用コストを減らす」

株式会社カカクコム 食べログシステム本部 技術部 SREチーム

食べログのアーキテクチャ図会員限定コンテンツ無料登録してアーキテクチャを見る

食べログでは、「監視データは一箇所に」「監視システムの運用コストを減らす」ことを目的に、Kubernetesやその上で稼働するアプリケーションの監視にNew Relicを利用しています。Kubernetesコアコンポーネントやノードの監視にはNew Relic Kubernetes Integrationを利用し、ミドルウェア以上の監視にはPrometheusとNew Relic Prometheus Remote Writeを利用しています。これにより、New Relic一箇所からシステム全体を横断して監視できる一方、データ保管にはSaaSを使うことで監視システムの運用コストを下げています。アプリケーションの障害もその原因がKubernetesにある場合もあるため、監視データを一箇所へ集約してクエリできるようにしておくことはシステム全体把握に役立ちます。

▼カカクコム様の事例はこちらをご参照ください

https://speakerdeck.com/shimokuni/shi-berogu-on-kubernetes-yun-yong-15nian-yi-shang-noda-gui-mo-regasisisutemuwo-kubernetesnicheng-seteiku

2. 家族アルバムみてね(株式会社MIXI)


コストパフォーマンス最適化のためのデータ輸送量削減と統合的な可視化

清水 勲さん / 株式会社MIXI Vantageスタジオ みてねプロダクト開発部 基盤開発グループマネージャ

みてねのアーキテクチャ図会員限定コンテンツ無料登録してアーキテクチャを見る

New Relic APMを活用しつつ、インフラやKubernetesのメトリクスについてはPrometheusを活用することで、New Relicのデータ転送量を抑えつつ、Grafanaによってインフラの各種メトリクスを統合的に可視化することができている。アプリケーションのログはGrafana Loki、その他ログはAthenaやBigQueryを活用しコストパフォーマンスの面で最適化をしている。

▼MIXI様の事例はこちらをご参照ください

https://gihyo.jp/article/2023/03/mitene-06observability

3. バクラク(株式会社LayerX)


ローカル開発環境におけるオブザーバビリティへの取り組み

株式会社LayerX Enablingチーム

バクラクのアーキテクチャ図会員限定コンテンツ無料登録してアーキテクチャを見る

プロダクトの成長に伴い、内部のアーキテクチャも進化していきます。サービスの分割や機能追加に伴うプロセスの増加、外部サービスの連携など、1つのプロセスだけでは簡潔しないアーキテクチャとなり、ローカル開発の複雑化も進んでいきます。

バクラクでは、増え続けるサービスや外部連携を円滑に開発するため、 lxdev と呼ばれるローカル開発に特化したプロセスマネージャを使い、ローカル開発のプロセス起動やログの閲覧などを簡単にしています。

ローカル開発で複数のプロセスを横断するような機能を開発するとき、以下の問題が発生します。

  • 複数プロセスのログの確認が面倒
  • どのサービスがどのサービスを呼んでいるのか、コールツリーがログだけでは判断が難しい

この問題を解決するために、Grafana が提供するオープンソースの Loki、 Tempo を活用し、ローカル開発でもログとトレースの集約を行い、可視化することにしました。

これによって、ローカル上で複雑なコールスタックや、外部連携の発生などが可視化され、開発における複雑なシステム動作の認知負荷の低減に成功しています。

▼LayerX 様の事例はこちらをご参照ください

https://tech.layerx.co.jp/entry/2022/12/12/131507

LayerXの画像イメージ1会員限定コンテンツ無料登録してアーキテクチャを見る LayerXの画像イメージ2会員限定コンテンツ無料登録してアーキテクチャを見る