クラウドネイティブ時代の可観測性をSignalFxが実現できる理由とは?【デブサミ2020夏】
【B-7】クラウドネイティブ時代のオブザーバビリティとは? SignalFxで実現するマイクロサービスのトレーサビリティとリアルタイム監視・分析
近年、クラウドネイティブが注目を浴びている。これは、インフラ基盤にクラウドを用いるだけではなく、その上で実行されるアプリケーションも含めてクラウド最適化することを示す概念である。クラウドネイティブ体制下では、いかにして環境のオブザーバビリティ(可観測性)を向上させるかが重要だ。Splunk Services Japan合同会社の池山邦彦氏は「クラウド監視SaaSのSignalFxがオブザーバビリティ実現の秘訣」と提唱する。クラウドネイティブ時代における開発・運用の課題とSignalFxの利点について池山氏が解説した。
いかにしてサービスの依存関係を可視化し追跡可能にするか
クラウドネイティブでは、モニタリングだけではなくオブザーバビリティ(可観測性)を実現することがシステム運用の要点となる。モニタリングとは問題発生の有無を観測するためのものだ。一方のオブザーバビリティでは、どんな問題が起きているかだけではなく、なぜ問題が起きたのか、どんな影響がシステムに生じるのかを発見することに重きが置かれる。
では、システムはモノリシックな状態からいかにしてクラウドネイティブな状態へと変遷するのか。池山氏は下図を用いて解説した。
「初期の段階は、図の左端にあるRetain & Optimizeです。オンプレミスなインフラとモノリシックなアプリケーションによってシステムが構築されており、ウォーターフォールモデルによる長いスパンの開発が行われます。また、この段階ではDevチームとOpsチームの間に壁が存在している状態です。
クラウド移行の第一段階として、左から二番目のLift & Shiftになります。サービスのスケーラビリティやサーバー調達の容易性を向上させるため、クラウドの導入がスタートします。インフラ環境をオンプレミスからクラウドIaaSへと移行していくのです。
次のフェーズは、右から二番目のRe-Factorです。マネージドサービスやPaaSなどを活用し、より柔軟にスケールできるアーキテクチャへと変革していきます。ですが、まだアプリケーションコンポーネントの相互依存は強い状態です。
最終段階が、図の右端にあるRe-Architect / Cloud-Nativeです。アプリケーション同士が疎結合になり、サービス単位でのスケールやリリースが可能になります。DevチームとOpsチームが緊密に連携し、DevOpsやSRE(Site Reliability Engineering)と呼ばれるチームがサービスのパフォーマンスや運用の自動化に責任を持つようになるのです。アーキテクチャの変遷とともに技術は複雑化し、運用や監視に求められる要件も大きく変化していきます」と池山氏は語った。
クラウドネイティブ化が進むと、インフラはさまざまなクラウド環境へと分散して配置される。採用されるプログラミング言語やフレームワーク、データベースも多様化し、コンテナなどのリソースは非永続的であるため環境は動的に変化していく。かつ、サービス同士の相互の依存関係を可視化し追跡可能にするため、分散トレーシングやリアルタイム分析が重要になる。オブザーバビリティは、こうした多様かつ動的な環境を運用する上での要になる概念なのだ。
オブザーバビリティでは、メトリクス・トレース・ログという性質の異なるデータを取得・分析することが重要となる。メトリクスは異常検知を行い「システムに何が起きているか」を発見するためのもの。トレースは問題への対処をする上で「どこで問題が起きているのか(アプリケーション・サービスの依存関係や深度も含めて)」を見るためのもの。ログは根本原因を探るために「なぜ問題が発生したのか」を確認するためのものである。では、いかにしてこの三本柱のデータを取得すべきなのだろうか。
この記事は参考になりましたか?
- この記事の著者
-
CodeZine編集部(コードジンヘンシュウブ)
CodeZineは、株式会社翔泳社が運営する開発者のための情報メディアです。日々の開発に取り組むエンジニアやテクノロジーを学びたい方に向けて、プログラミングやAI活用、開発ツール、エンジニアの学びとキャリアに関する記事をお届けしています。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社
この記事は参考になりましたか?
この記事をシェア
