依存関係マッピングは、組織のIT運用におけるアプリケーション、システム、プロセス間の関係を特定、理解、視覚化するプロセスです。
現代のIT環境は、さまざまな種類のソフトウェア、ハードウェア、ネットワーク・デバイス、仮想化テクノロジーで構成されており、オンプレミスのインフラストラクチャーとクラウド環境が混在しています。これらすべてのシステムを識別してその依存関係を理解することは重要かつ挑戦となるプロセスですが、組織がITエコシステムを合理化および最適化するために役立ちます。
このプロセスは、即時の修復を必要とする脆弱性や、独立したプロセスの方が有利な非効率性を組織が発見するのに役立ちます。これにより、組織は意思決定能力を向上させ、いずれかのコンポーネントの障害や問題がITエコシステムの残りの部分にどのような影響を与えるかをより適切に理解できるようになります。依存関係マッピングには通常、ガント・チャートなどの視覚化によるIT環境全体のIT資産の視覚的表現が含まれます。
依存関係は、垂直方向(異なる種類のITコンポーネント間の依存関係、サービスからアプリケーションなど)、または水平方向(類似のコンポーネント間の依存関係、アプリケーションからアプリケーションなど)のいずれとなります。
依存関係のあるエコシステムでは、1つのコンポーネントで生じたインシデントや問題(ソフトウェアのバグやコードの誤動作など)によって依存関係のチェーン全体が危険にさらされ、システム全体の停止につながる可能性があります。これは一般に「依存性地獄」と呼ばれています。依存関係がどのように機能するかを理解し、不要な依存関係を削除することで、組織はこれらのシナリオを最小限に抑えるよう努めることができます。
アドホックまたは手動のプロセスによって依存関係を特定しようとすると、長く時間がかかるプロセスになる可能性があり、なおかつITチーム・メンバーがシステムの複雑さを完全に理解できるという保証はありません。そのため組織では、アプリケーション、データ、タスク間の関係を視覚化するために、依存関係マッピング・ツールとオートメーションを使用することがよくあります。
依存関係マッピングは、可観測性プラクティスのコア・コンポーネントであり、現代のエンタープライズITサービスの相互依存性を考えると、ますます重要になっています。可観測性は、組織が分散アプリケーションを視覚化し、パフォーマンスを最適化してより迅速に自動化による問題の特定と解決を行うのに役立ちます。
依存関係マッピングは、進行中のプロジェクトと組織的な変更を効果的に管理するには、システムがどのように相互作用し、相互に依存しているかを把握している必要があるため、ITプロジェクト管理と変更管理の重要な要素です。
組織の包括的なストラテジーに影響を与えるさまざまな種類の依存関係と依存関係マッピングがあります。依存関係を種類別に分類することは、組織がITシステム内で最も重要な依存関係とその改善方法をより深く理解するのに役立ちます。
アプリケーション依存関係マッピングは、アプリケーション検出や依存関係マッピングとも呼ばれ、特にアプリケーション間の依存関係に関係する表現です。アプリケーション依存関係マッピングは、組織がアプリケーションのパフォーマンスのボトルネックを解決し、アプリケーションをより確実かつ効率的に実行する方法を特定するのに役立ちます。
これには、サーバー、ネットワーク、データベース、ストレージ・システム間の依存関係を理解することが含まれます。たとえば、インフラストラクチャー依存関係マッピングは、1つのサーバーのクラッシュが他のサーバーにどのような影響を与えるか、または1つのデータベースの障害が組織のデータ・ストレージ全体にどのような影響を与えるかなどを特定します。特にアップタイムや災害復旧を理解するのに役立ちます。
この領域では、システムの内部コンポーネントと既存の依存関係、および企業内の個別のシステム間の依存関係を特定します。また、組織の業界内の外部依存関係を含めることもできます。どのシステムをこの依存関係マッピングに含めるかは、組織の業種や何に重きを置いているかによって決まります。
たとえば、銀行の金融システム、エネルギー生産者のスマート・グリッド・システム、医療機関の医療情報システムなどを含めることができます。
この簡単な方法では、IPアドレスにpingを実行し、その応答からpingされたデバイスの種類を調べます。これは、組織の簡単なネットワーク監査には役立ちますが、特にアジャイル環境では、依存関係についてのリアルタイムのインサイトは得られません。
この依存関係マッピングの種類は、ネットワーク内のノードと接続の物理的および論理的な配置に関係します。
これは組織の内部ITインフラストラクチャー内の依存関係のことであり、オンプレミスのデータセンターとプライベートクラウドのソフトウェア、サーバー、その他のツールの間に存在する依存関係などがそれに該当します。
これは組織が管理するアプリケーション、プロセス、システム内の依存関係であり、組織が問題を解決するために介入したり、依存関係を削除/強化したりできます。
今日のIT環境においてソフトウェア開発とネットワーク・インフラストラクチャーで依存関係が存在することには、いくつかの理由があります。例えば、次のようなユースケースです。
現代の組織はたいていオープンソース・ソフトウェアを使用しますが、そのために独自のアプリケーションとオープンソース・ソフトウェアのアップデートやその他の変更を管理するサード・パーティーとの間の通信が必要になります。
組織が成功を収めるには俊敏な動きが必要です。そのため、ビジネスの俊敏性、つまりサービスを素早く再構成し、需要や顧客の習慣の変化に対応する新しいソリューションを立ち上げる能力を獲得してきました。
組織は、より俊敏になるために、マイクロサービス・アーキテクチャーを採用し、APIを介して通信する独立した複数のサービスに分割されたアプリケーションを構築するようになりました。このアプローチにより、さまざまなチームがアプリケーション内のさまざまなサービスに取り組むことができ、最終的にソフトウェア開発プロセスが加速されます。
マイクロサービスのコンポーネントは独立して動作し、各マイクロサービス・ソリューションは理想的には完全に自律的です。それに対し、マイクロサービス・ソリューションには多くの場合、APIを介してネットワークで他のマイクロサービスと通信するコンポーネント・サービスがあります。これにより、依存関係が生じることがあります。
パブリッククラウドを使用する組織は、データ、サービス、アプリケーションを外部的にホストします。運用を効果的に管理し、クラウド・コンピューティングの拡張性というメリットを活かすためには、組織はクラウド・サービスとオンプレミス・サービスがどのように相互に依存しているかを理解することが不可欠です。多くのクラウド・プロバイダーは、これらの依存関係をマッピングするツールを備えています。
依存関係マッピングと、この領域で提供される強化された可観測性により、組織は次のことができるようになります。
ITの依存関係を完全に可視化し、ある問題が別の問題にどのように発展する可能性があるか(SSLライブラリーの問題でネットワーク全体にセキュリティーの脆弱性が生じたり、外部API構成の変更によってアプリケーションがオフラインになったりする可能性など)を理解している組織は、なによりもまず壊滅的な事態が発生するのを防ぐ点で有利です。
それぞれの依存関係の変更がシステム全体にどのような影響を与えるかを把握することは、組織が将来の攻撃や問題に対してより適切な備えをするのに役立ちます。
依存関係マッピングをしっかりと実践している組織は、インシデント対応プロトコルに優先順位を付けて最適化し、アップタイムを最大限に確保することができます。
依存関係マッピングは、組織が発見した問題を初期の問題またはエラーまでさかのぼって追跡するのに役立ちます。これは、根本原因を特定し、システム全体を強化するのに役立ちます。
依存関係は本質的に悪いものではありません。実際には有益なものとなり得ます。たとえば、依存関係では既存のコードを活用して他のコンポーネントで再利用できるため、新たな開発ニーズを最小限に抑えることができます。ただし、すべての依存関係が必要というわけではありません。
依存関係を全体的に可視化することは、どの依存関係が必須または価値があり、どの依存関係を削除する必要があるかを組織が決定するのに役立ちます。
重要な依存関係を理解することは、組織がリソースをより効果的に配分するのに役立ちます。システムの他の部分が依存しているコンポーネントに適切なリソースを確実に供給し、監視することによって、組織は、広範囲に及ぶパフォーマンスの低下や障害の可能性を低減するための措置を講じることができます。
AIとオートメーションの力を活用することで、問題がアプリケーション・スタック全体でプロアクティブに解決します。
単純なタスクの自動化だけではなく、注目度が高く、顧客と接し、収益を生み出すプロセスを、組み込み型の導入とスケーリングで処理しましょう。
幅広いプロセスとタスク合理化するワークフロー自動化ソフトウェアで生産性を向上させます。