Kubernetesの運用を容易に――New Relicが可観測性を向上させる理由【デブサミ2020夏】
【A-3】New RelicのOSSツールとKubernetesクラスターの可観測性
New RelicはSaaS型のオブザーバビリティ(可観測性)プラットフォームだ。アプリケーションやブラウザ、モバイル、インフラといった多種多様なシステムのパフォーマンスを収集・判定・通知・分析することが可能である。New RelicはKubernetesクラスターの可観測性向上にも力を入れており、利用しているツールの多くはGitHub上に公開されている。本セッションではNew Relic株式会社のSenior Technical Support Engineerである田中孝佳氏が、Kubernetesのイベントやログを計測し可観測性を持たせる方法を解説した。
オブザーバビリティプラットフォームにより最適な運用を実現
田中氏ははじめに「New Relicはオブザーバビリティ(可観測性)プラットフォームである」と提唱した。オブザーバビリティとはどのような概念なのだろうか。
一般的に、システムの状態を観測する行為は、モニタリングという用語で表現されることが多い。これは、何かシステムにおかしな挙動が発生している場合に通知してくれること。いわばWhenやWhatを知らせるものである。一方のオブザーバビリティは、おかしな挙動が発生した根本原因まで特定し、対応策を検討できること。いわばWhyやHowを扱うものだ。
この前提をふまえ、田中氏は本セッションのテーマであるKubernetesクラスターのオブザーバビリティ向上の知見を解説していく。Kubernetesクラスターの運用においては、以下の4つの課題を解決する必要がある。
1. 運用ツールの設計・運用
サービスの可用性を支えるには、運用ツール自体の可用性も高くなければいけない。運用ツールをどのように設計・運用し、その目的を達成するか。
2. 計測する指標の選定
各Kubernetesクラスターのどんな指標を取得すべきか。
3. 動的に変化するクラスターへの追随
Kubernetesは自己修復性の特徴を持っており、クラスターの状態が動的に変化する。どのようにしてクラスターの動きに追随すべきか。
4. アプリも対象とした運用
Kubernetesはあくまでインフラ環境である。その上で動くアプリケーションの動作まで計測できてこそ、適切な運用となる。
「それぞれの課題について、当社は次のような解決策をご提示します。『1. 運用ツールの設計・運用』は、オブザーバビリティプラットフォームを活用できるのではないか。『2. 計測する指標の選定』については、Metrics、Events、Logs、Traces(4つの頭文字を取ってMELT)という指標を取得すべきではないか。『3. 動的に変化するクラスターへの追随』を行うには、DeploymentやDaemonSetといったKubernetesのオブジェクトに関連づけた計測が必要。『4. アプリも対象とした運用』は、アプリケーション中心のオブザーバビリティを採用することが有効ではないか。それぞれ、順に解説していきます」(田中氏)
まず田中氏は「1. 運用ツールの設計・運用」の課題について取り扱う。解決策として提示されたオブザーバビリティプラットフォームとは、指標となるデータの保持や可視化、アラートなどの機能を兼ね備えたプラットフォームのことだ。
オブザーバビリティプラットフォームには2つの特性が求められる。1つ目は多くの人が使えること。なるべく学習コストが低く、かつ必要に応じてどこからでもアクセスできなければならない。2つ目は運用コストが低いこと。運用に特別なスキルが不要なだけではなく、コストの予測が立てやすいことも重要である。「これら2つの特性を兼ね備えることを、オブザーバビリティの民主化と呼ぶことにしましょう」と田中氏は説明する。
オブザーバビリティの民主化を実現するには2つの方法がある。1つ目はできるだけ広く使われているツールを採用すること。例えば、CNCF Graduated Projectsのオープンソースソフトウェア(KubernetesやPrometheusなど)がこれに該当する。
2つ目はNew RelicのようなSaaSを利用すること。運用ツールそのものの開発・運用を、すべてSaaS側に任せることが可能になるためだ。コストの予測可能性はSaaSのプランにも依存するが、New Relicはその特徴も十分に兼ね備えている。
そして、民主化を実現する2つの方法はけして背反するものではなく、うまく組み合わせて適切な運用を実現することが重要だという。
この記事は参考になりましたか?
- この記事の著者
-
CodeZine編集部(コードジンヘンシュウブ)
CodeZineは、株式会社翔泳社が運営する開発者のための情報メディアです。日々の開発に取り組むエンジニアやテクノロジーを学びたい方に向けて、プログラミングやAI活用、開発ツール、エンジニアの学びとキャリアに関する記事をお届けしています。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社
この記事は参考になりましたか?
この記事をシェア
