初期の頃は、1台のWindowsサーバーに1つのアプリケーションをデプロイするのは素晴らしいアイデアに思えた。しかしその後、データセンターはサーバーで埋め尽くされ、この方法は扱いにくくなった。仮想化がこの問題を解決した。1台の物理マシンに非常に多くの仮想マシン(VM)を詰め込めるようになった。仮想サーバーのイノベーションは、ハードウェアの大規模な集約と管理の大幅な簡素化をもたらした。しかしVMの数が急増すると、VMスプロールが次の障壁となった。VMはあまりにも簡単に起動できたため、いくつ存在するのか、どこにあるのか、そもそも稼働させる必要があるのかさえ誰にも分からなかった。やがて、IT部門を支援する監視・管理ツールが進化した。
現在はコンテナが最前線に躍り出ており、クラウドネイティブなインフラでアプリケーションやワークロードをデプロイする最善の方法として、VMに取って代わる勢いさえ見せている。
Gartnerによると、2025年までに世界の企業の85%超が本番環境でコンテナ化アプリケーションを実行する見込みで、2019年の35%未満から増加する。しかしコンテナ数が爆発的に増えると、問題が顕在化するのは必然だった。そして今回も、こうした問題の解決を支援する監視ツールが登場している。
ここでは、コンテナ監視における主要トレンドをいくつか紹介する。
コンテナの課題が続出
Kubernetesをはじめ、コンテナ化全般が大きく成長したことで、監視上の課題が続出している。クラウドベースのアプリケーション管理はより複雑になり、死角も生じている。コンテナは使い捨てを前提としているため、アプリケーションと基盤ハードウェアの間に追跡しにくい新たな抽象化レイヤーが生まれるからだ。従来の監視ツールは、コンテナが生成するデータ量の増加や、相互依存する多数のコンポーネントを容易に移植できる性質に対応するよう設計されていなかった。コンテナのパフォーマンスと信頼性を可観測にするには、はるかに多くのテレメトリーデータが必要となる。
SaaS型監視ソリューション
朗報なのは、コンテナ監視を支援し、その一時的な性質を追跡できるSaaSソリューションが数多く登場していることだ。こうしたシステムは可観測性を高め、絶えず変化するコンテナエコシステムをより強力に可視化するほか、システムにどのような追加コンポーネントが組み込まれたか、問題が起きた際に何が起きたかなども把握できる。
Al Brown氏(Veritone)は、コンテナスタックの監視と復旧に利用できる優れたSaaSプラットフォームは数多く存在すると指摘した。これにはDynatrace、Sysdig、Lacework、Datadog、SolarWinds、Elasticsearchなどがある。
自動スケーリング
稼働するコンテナ数が少なければ、管理は比較的容易だ。しかし数が増えると、コンテナがいくつ存在し、それぞれ何をしているのかを監視・管理するのは難しくなる。
Kubernetesを擁するベンダーコミュニティとオープンソースコミュニティは、IT部門をさらに支援するさまざまなツールで応えてきた。IBM TurbonomicとRed Hat OpenShiftは、構成、スケールアップとスケールダウン、アイドル状態、信頼性、フォールトトレランスに対応する自動スケーリング機能を提供している
「自動スケーリングは、負荷やメトリクスに基づいて、必要なコンテナ数を自動的に増減させる優れた方法です」とBrown氏は述べた。
コンテナメトリクス
当然のことながら、コンテナの数や挙動をより簡単に監視できるよう、メトリクスを提供する優れたツールが市場に登場した。例えばオープンソースコミュニティは、メトリクス監視ソリューションとしてPrometheusを提供している。これはその一側面であり、Cloud Native Compute Foundationの一部でもある。
「Prometheusは利用が拡大しており、より多くのビジネスメトリクスも含むようになりました」とBrown氏は述べた。「これにより、リソース(CPU、メモリなど)の監視だけでなく、アプリケーションの挙動や問題も監視できるようになります」
Prometheusは、コンテナやIT環境の他の部分に関する一連のメトリクス情報を収集・保存する。これにはWebやアプリケーションのパフォーマンスなども含まれる。データは記録時刻のタイムスタンプとともに保存される。メトリクス自体は、コンテナ監視の特定の側面に役立つよう、IT部門が調整できる。メトリクスには、リクエスト時間、アクティブな接続数、アクティブなクエリ数、コンテナ数などが含まれる場合がある。
イベント駆動型アーキテクチャ
イベント駆動型アーキテクチャも、コンテナ監視を改善する方法の一つだ。例えばRed Hat OpenShiftを使えば、IT部門はOperatorを基盤として、組み込みまたはサードパーティー製のさまざまなイベントソースやコネクターに接続する疎結合・分散型アプリを構築できる。
「Knativeディストリビューションとして、コンテナベースのパッケージ形式、ゼロへのスケール、HTTP消費量に基づく高度な自動スケーリング機構、Apache Kafkaを基盤とするイベント駆動型サーバーレスアプリケーションへの本番グレードのサポート、関数型プログラミングモデルのサポートといったメリットを共有しています」と、Red HatのプリンシパルプロダクトマネージャーであるNaina Singh氏は述べた。