高度なコンテナ監視を実現するための6つの鍵
2023年10月16日
読了時間:4分

組織は、よりスケーラブルで、効率的かつアジャイルなインフラストラクチャーを構築するために、コンテナ化にますます注目しています。コンテナ化では、コードの実行に必要なライブラリーと依存関係とともに、ソフトウェア・コードをパッケージ化します。これにより、デスクトップ、オンプレミスIT、クラウドネイティブなどのあらゆるインフラストラクチャーで実行できる自己完結型コードが作成されます。

移植可能でリソース効率の高いテクノロジーを組織が必要とするにつれて、コンテナの重要性が高まり、最新のクラウドネイティブ・アプリケーションで事実上のコンピュート・ユニットとなっています。ガートナーは、CIOが報告したように、2026年までにグローバル企業の90%がコンテナ化されたアプリケーションを使用し、5件に1件のアプリケーションがコンテナで実行されると予測しています。

コンテナ化されたアプリケーションを構築、デプロイ、管理するためのオープンソース・プラットフォームであるDockerが2013年にリリースされて以来、コンテナの人気と採用は増加しています。

コンテナの仕組み

コンテナはオペレーティング・システム(OS)の仮想化を利用し、OSカーネル(Linux名前空間とcgroup、Windowsサイロとジョブ・オブジェクト)を活用してプロセスを分離し、それらのプロセスがアクセスできるCPU、メモリ、ディスクの量を制御します。

コンテナの開発スピードにより、組織は新しいビジネス・サービスを迅速に構築、導入、拡張できます。すべてのインスタンスでゲストOSが必要な仮想マシンとは異なり、ホストOSの機能とリソースを活用します。

組織がマイクロサービス、サーバーレス、DevOpsなどの最新の開発手法を採用するにつれて、これらはますます重要になっています。これらはすべて通常のコード・デプロイメントを少しずつ利用しています。

マイクロサービス・アーキテクチャーは、アプリケーションを小規模で自律的なサービスに分割します。コンテナとマイクロサービスは概念が異なり、別々に使用できますが、コンテナにマイクロサービスをデプロイするのが一般的です。コンテナ化により、DevOpsチームはソフトウェアをテスト環境から本番環境に移行するときに発生する複雑さを回避できます。

コンテナ監視が重要な理由

組織は、他のソフトウェアと同様に、コンテナ化されたアプリの正常性を監視し、性能の問題を追跡する必要があります。コンテナの可視性を維持し、包括的なコンテナ・メトリクスを追跡することで、組織はコストを削減し、さまざまなユースケースでソフトウェア・ライフサイクルをより適切に管理できます。

アプリケーション監視とApplication Performance Management(APM)の一側面であるコンテナ監視は、パフォーマンス・メトリクスの追跡、コンテナの効率の向上、平均修復時間(MTTR)の短縮、ワークロードの信頼性の向上など、組織にいくつかのメリットをもたらします。これを実現するために、組織はコンテナ監視ソリューションを利用して、コンテナのパフォーマンスをリアルタイムで可視化できます。コンテナの監視は、オブザーバビリティーを実現し、最終的にはITサービスの可用性を確保するのに役立ちます。

チームがコンテナ化された環境の全体像を把握するためには、アプリケーション全体の動作を追跡し、具体的なコンポーネントとレイヤーをすべて可視化できることが不可欠です。

組織がコンテナのパフォーマンスと正常性を設定、監視、最大化する6つの方法

1. 監視KPIを定義

包括的なコンテナ監視戦略では、ビジネス目標と確実に一致するように、最初にKPIを設定する必要があります。組織によって、コンテナ戦略のニーズと目標は異なる可能性があるため、測定する内容を目標に合わせる必要があります。

個々のKPIで重点を置くべき3つの重要な領域があります。

  • パフォーマンス監視:クラスター・レベルでもコンテナ・ランタイム内でも、コンテナのパフォーマンスを追跡することが重要です。組織は、応答時間やネットワークのレイテンシーなどのKPIに焦点を当てて、組織のアプリケーションやWebサービスに関してエンドユーザーに望ましいエクスペリエンスを提供できるようにする必要があります。
  • リソース使用率の監視:コンテナは大量のリソースを必要とする可能性があるため、CPU使用率、ディスク容量使用量、メモリ使用率などのKPIを追跡して、各コンテナが使用するコンピューティング・リソースの量を監視することが重要です。そうすることで、組織は、コンテナがCPUやメモリの容量を使い果たす前にノードを追加するなど、問題が大きくなる前に潜在的なインシデントに対処できます。
  • セキュリティーとコンプライアンスの監視:組織は、コンテナ・イメージや認証などの領域に対する攻撃の試みに重点を置いて、コンテナ環境のセキュリティー監視を優先する必要があります。コンテナ監視は、コンテナ・イメージとランタイム環境の脆弱性スキャンを提供するほか、ユーザーのMFAの割合、ファイアウォール侵害の試み、ランタイムの異常を通知するため、脆弱性評価スコア、インシデント応答時間、コンプライアンス状況などのKPIに貢献します。

2. 必要な依存関係と統合を特定

コンテナ監視ツールは、Prometheus、JMX、statsDなどのオープンソースのコンテナ化ツールと統合して、組織が環境に関する洞察を得られるようにする必要があります。さらに、コンテナ監視ツールは、ホスト、OS、Java仮想マシン(JVM)、Cassandraノード、MySQLなどの依存関係を可視化する必要があります。IBM® Instana Observabilityプラットフォームは、動的グラフを使用して組織のアプリケーションをモデル化し、全コンポーネントの物理的・論理的依存関係を把握できるようにします。

3. ダッシュボードの作成とカスタマイズ

ダッシュボードは、インフラストラクチャーの監視とコンテナの正常性を評価するための重要な構成要素です。従業員は、問題が発生した場合に介入できるように、コンテナ環境で何が起こっているかを確認する必要があります。

最新のコンテナ監視ツールでは、DevOpsチームがコンテナ・データを集約して表示したり、特定のデータを表示する個別の視覚化を行ったりできるダッシュボードを作成します。Instanaは、動的なグラフとコンテキスト・ガイドを通じて状況を可視化します。これらの機能は、ユーザーがアプリケーション間の関係を表示し、問題を診断し、その影響を判断するのに役立ちます。

4. コンテナ・オーケストレーションとの統合

多くの組織は、Kubernetesなどのオープンソース・ツールを介して、コンテナ化されたアプリケーションのプロビジョニング、デプロイメント、管理を自動化する、コンテナ・オーケストレーションを使用しています。Kubernetesのコンテナ化された環境では、オートメーションを使用して、デプロイメント、負荷分散、スケーリングなどのタスクを、人間の介入を必要とせずに実行します。ただし、組織が各Kubernetesクラスターを把握できるように、監視は依然として重要です。コンテナは、オーケストレーション・プロセスの改善に役立つ大量のパフォーマンス・データを生成し、監視はオーケストレーションを正常に機能させるのに役立ちます。

5. ワークフローの自動化

自動化はコンテナ監視の重要な構成要素です。特定の自動化されたワークフローを設定することで、DevOpsチームの負担を最小限に抑え、人的ミスを最小限に抑えてコンテナの正常性と効率性を促進し、システムが人間よりも迅速に介入できるようになります。

6. パフォーマンス・インシデント通知を作成

コンテナ内のパフォーマンス・インシデントの迅速な診断と解決を可能にするには、異常検知機能が必要です。コンテナ監視ソリューションでは、インシデントが発生した時点でログに記録する必要があります。DevOpsチームとサイト信頼性エンジニアは個別に対処してトラブルシューティングを行い、根本原因分析とさらに広範な対応を必要とする問題の一部かどうかを判断できます。

IBMとコンテナ監視

組織がコンテナ化に目を向けるようになるにつれて、アップタイム、優れたサービス提供、ユーザー・エクスペリエンス向上のために、堅牢で規律のとれたコンテナ監視プラクティスを作成することがさらに重要になります。

コンテナ環境では、アプリケーションの正常性を維持するだけでなく、俊敏性と効率を最大化し、コンテナ化アプリケーションへの投資を完全に回収するために、可視化と監視が極めて重要です。

IBM Instana Observabilityのコンテナ監視は、この課題に対応し、ホスト、コンテナ、ミドルウェア、実行中のマイクロサービスなどのあらゆる技術層に、完全なコンテキストを備えた自動化された可視性を継続的に提供します。監視用ダッシュボードで、すべてのコンテナ、コンテナ内で実行されているテクノロジー・スタック全体、そのスタック上で実行されているアプリケーションに対する自動オブザーバビリティーを提供します。

 
著者
Keith O'Brien Writer, IBM Consulting