CDM データモデル
CDM データモデルは、自動化、品質検証、および CSDM など、ソフトウェア提供の広範なライフサイクルをサポートする標準化されたデータ構造です。CDM は既存の構成データをインポートし、定義したポリシーを使用して検証してから、有効な構成データを組織の既存の DevOps パイプラインにエクスポートして、アプリケーション、サービス、およびインフラストラクチャを実装します。
CDM データモデルの概要
- 厳格で透明性の高いバージョン管理と変更管理を実装します。
- 機密データを暗号化し、データの適切なアクセス制御を確保できます。
- 構成データの自動検証を有効にします。
- 値を含む変数を使用し、値をオーバーレイすることで、構成データ構造を再利用できます。
CDM データモデルの構造
CDM 内のアプリケーションは、CMDB 内のアプリケーションサービス、アプリケーションモデル、または ダイナミック CI グループ [インフラストラクチャ] の構成データの完全なコレクションです。CDM ユーザーは、標準の階層構造で次の空のフォルダーを含むアプリケーションレコードを作成します。システムが既存の構成データを取り込んだ後、データを適切なフォルダー内のコンポーネントに構造化します。コンポーネントのコレクションを作成し、そのコレクションを 展開可能項目 - 提供プロセスで展開できる構成データセット (開発、テスト、または本番環境用) に結合します。各コンポーネント、コレクション、変数、および展開可能項目は、構造内の ノード です。
- コンポーネント
- コンポーネントは通常、アプリケーションの論理要素またはインフラストラクチャサービスの一部の構成データを表す構成要素です。たとえば、モノリシックアプリ、マイクロサービス、物理サーバー、Docker テンプレートなどです。
コンポーネントには、直接または含められた子孫コンポーネントを含めることができます。コンポーネントには、コレクションと 展開可能項目で異なる値を取ることができる変数を含めることができます。
コンポーネントを共有コンポーネントのライブラリにグループ化できます。
ヒント:コンポーネントまたはコレクション内の変数のデフォルト値を定義すると便利な場合がよくあります。これは、少数のコンポーネントとコレクションからさまざまな展開可能項目を作成できるため、強力な戦略です。コンポーネントまたはコレクションを継承する展開可能項目は、オーバーライド、オーバーレイ、および変数設定を使用して、環境タイプのニーズを満たすことができます。 たとえば、 [開発] 展開可能 では、 [テスト] 展開可能と同じコンポーネントとコレクションを使用できます。[開発] では、デフォルトのデータベース変数値を使用します。対照的に、[テスト]では、テスト環境に適した別の値を使用します。 - コンポーネント変数フォルダー
- コンポーネントの 変数フォルダーには、コンポーネントフォルダー内の任意の CDI が使用できる変数を含めることができます。コンポーネントの 変数フォルダーは 1 つだけです。
- コレクション
コレクションは、リリースを定義するコンポーネントのセットです — コレクションはリリースの構成と考えることができます。
コレクションには、特定のバージョンに固有の変数またはオーバーライド設定を含めることができます。たとえば、release-1 で使用される VM 構成データは、release-2 で使用されるデータとは異なります。release-1 はメモリ設定に値
2Gb(「メモリ」:「2Gb」)を使用し、release-2 は別の値 (「メモリ」:「4Gb」)を指定する場合があります。さらに、コレクションには、そのコンポーネントに表示されない構成設定が含まれている場合があります。このような値はオーバーレイと呼ばれます。コレクションは、特定のバージョンのアプリケーション、ローカリゼーション、または機能セットを表す場合があります。たとえば、collection-2 という名前のコレクションには、アプリケーションの リリース 2.0 機能を表すコンポーネントまたはコンポーネントバージョンのセットが含まれる場合があります。対照的に、リリース 3.0 の機能を表す collection-3 という名前のコレクションには、同じコンポーネントまたはコンポーネントバージョンのセット、追加のコンポーネントまたはコンポーネントバージョン、およびその他の変数、オーバーライド、およびオーバーレイ設定が含まれる場合があります。
- コレクション変数フォルダー
- コレクション変数フォルダーには、コレクションフォルダー内の任意の CDI が使用できる変数を含めることができます。各コレクションには、1 つのコレクション 変数フォルダーがあります。コレクション変数はコンポーネント変数よりも優先順位が高くなります。
- 展開可能項目
データ構造に展開可能項目を追加して構成します。展開可能 は、展開プロセスによって展開できる構成データセット (開発、テスト、または本番環境用) です。アプリケーションの各 展開可能 は、CMDB 内のサービスの構成を表します。
展開可能項目は、特定の環境のリリースを定義するコレクションまたはコレクションのセットで構成されます。コレクション + 環境の組み合わせは、CMDB 内のアプリケーションサービスまたはインフラストラクチャサービスにリンクします。
展開可能 には、環境に固有の変数またはオーバーライド設定を含めることができます。たとえば、
データベース変数が開発環境で 1 つの値を持ち、本番環境で異なる値を持つとします。本番 展開可能 のオーバーライド値で、開発環境では必要のない必須コンテナパラメーターが指定されている場合があります。DEV-2 という名前の 展開可能 の例には、collection-2 コレクションが含まれ、リリース 2.0 の開発環境に固有の変数、オーバーライド、およびオーバーレイの設定が指定されます。これに対し、PROD-2 という名前の 展開可能 には collection-2 コレクションも含まれますが、代わりにリリース 2.0 の運用環境に固有の設定が指定されます。
変更セットに問題がなければ、変更を保存してコミットできます。システムは、他のユーザーのコミットされた変更セットとの競合をチェックします。競合がない場合、システムは変更を保持し、変更の影響を受けるすべての 展開可能 のスナップショットを生成します。スナップショットは、エクスポート可能な構成データセットを表します。システムは、各スナップショットに対してポリシーを実行し、検証結果を返すことで、構成データを検証します。
- 展開可能変数フォルダー
- 展開可能変数フォルダーには、展開可能項目フォルダー内の任意の CDI が使用できる変数を含めることができます。各展開可能項目には、1 つの展開可能変数フォルダーがあります。展開可能変数は、コレクション変数よりも優先順位が高くなります。
例
- コンポーネントは、環境または環境のバージョンを表すコレクションを形成するためにグループ化されます。FS2 (機能セット 2) コレクションには、現在開発およびテスト中のアプリケーションのコアバージョン 2 の構成データが含まれています。対照的に、FS1 は、徹底的にテストされ、現在本番環境でアプリケーションを実行している以前のコアバージョン 1 を保持しています。
- この例では、FS2 (テスト環境で使用されるコレクション) と FS1 (本番環境で使用されるコレクション) の両方が、S3 と特定の VM template の両方の構成データを使用します。したがって、FS1 コレクションと FS2 コレクションはどちらもこれら 2 つのコンポーネントを継承します。コレクションは異なる機能セットを表すため、FS1 と FS2 は変数またはオーバーライドを使用して、コンポーネントにいくつかの異なる設定を指定する可能性があります。
- 各展開可能項目には、その環境 (開発、テスト、または本番) に適したコレクションが含まれています。この例では、TEST 展開可能項目は、FS2 コレクション、新しいバージョンの機能セット、およびテスト環境で使用されるその他の構成設定を使用します。対照的に、PROD 展開可能項目は、本番環境で FS1 を使用します。FS1 は、本番環境で検証された構成データのコレクションの以前のバージョンです。
各展開可能項目では、変数は環境に適した値に設定されます。たとえば、PROD では、データベース 変数は prod1 (本番データベース) に設定されます。ただし、TEST 展開可能項目は、テストチームが使用するデータベースの 1 つである test3 を指定します。
定義
- CDI
- 構成データアイテム (CDI) は、単純なキーと値のペアを持つノードです。
- 変数
- 変数は、CDI 内で参照できるキーと値のアイテムです。
- 親ノードと子 (リーフ) ノード
- CDI と変数はキーと値のアイテムです。CDI と変数は子ノードにしかなれません。
- コンポーネント、コレクション、展開可能項目、およびフォルダーノードは、親ノード (キー値アイテムまたはその他の親ノードを持つことができるノード) にすることができます。
注:構成データ管理 バージョン 4.2 以降では、スラッシュ (/) を含む任意の UTF-8 文字を使用してノードを定義できます。
- 名前パス
- 名前パスは、リストで選択したノードの完全なフォルダーパスです。REST API では、名前パスを次の形式でアレイで指定できます。
- バックスラッシュ形式:例 - testApp/deployables/Development1/cdi1注:ノード名にバックスラッシュ (「/」) が含まれている場合、この形式は使用できません。
- 置換文字を含むバックエンド名のパス:例 - testApp�deployables�Development1�cdi1
- アレイ:例 - ['testApp','deployables','Development1','cdi1']
- バックスラッシュ形式:例 - testApp/deployables/Development1/cdi1
- コンポーネント
- コンポーネントは通常、アプリケーションの論理要素またはインフラストラクチャサービスの一部の構成データを表す構成要素です。たとえば、モノリシックアプリ、マイクロサービス、物理サーバー、Docker テンプレートなどです。
コンポーネントには、コレクションと 展開可能項目で異なる値を取ることができる変数を含めることができます。より詳細な手順は コンポーネントの定義または更新 に表示されます。
- コレクション
コレクションは、リリースを定義するコンポーネントのセットです — コレクションはリリースの構成と考えることができます。
コレクションには、特定のバージョンに固有の変数またはオーバーライド設定を含めることができます。たとえば、release-1 で使用される VM 構成データは、release-2 で使用されるデータとは異なります。release-1 はメモリ設定に値
2Gb(「メモリ」:「2Gb」)を使用し、release-2 は別の値 (「メモリ」:「4Gb」)を指定する場合があります。さらに、コレクションには、そのコンポーネントに表示されない構成設定が含まれている場合があります。このような値は「オーバーレイ」と考えることができます。- 展開可能項目
展開可能 は、CI/CD パイプラインにサービスとして展開できる構成データセット (開発、テスト、または本番環境用) です。アプリケーションの各 展開可能 は、CMDB 内のサービスを構成します。たとえば、各環境タイプのに 1 つずつ、開発、テスト、本番の 3 つの展開可能項目を作成できます。
展開可能 は、特定の環境のリリースを定義するコレクションまたはコレクションのセットで構成されます。コレクション + 環境の組み合わせは、CMDB 内のアプリケーションサービスまたはインフラストラクチャサービスにリンクします。
展開可能 には、環境に固有の変数またはオーバーライド設定を含めることができます。たとえば、
データベース変数が開発環境で 1 つの値を持ち、本番環境で異なる値を持つとします。本番 展開可能 のオーバーライド値で、開発環境では必要のない必須コンテナパラメーターが指定されている場合があります。- 変更セットとスナップショット
- CDM アプリケーションに変更をコミットすると、システムは変更をアプリケーションの変更セットとして保持します。システムは、変更セットの影響を受けるすべての 展開可能 のスナップショットも生成します。スナップショットは、エクスポート可能な構成データセットを表します。システムは、各スナップショットに対してポリシーを実行し、検証結果を返すことで、構成データを検証します。検証に合格し、公開されたスナップショットは、構成データとしてリリースパイプラインにエクスポートできます。
- 共有コンポーネントとコンポーネントライブラリ
- 構成データ管理 の共有コンポーネントを使用すると、複数のアプリケーション間でコンポーネントを使用できます。
整理しやすくするために、これらの共有コンポーネントはコンポーネントライブラリで管理されます。これらのコンポーネントライブラリは、アプリケーション間でコンポーネントの構成データの信頼できる唯一の情報源を確保することで、一貫性と保守性を向上させます。
- ファイルノード
- CDM アプリまたはコンポーネントライブラリの構成データモデルにファイルを添付すると、ファイルノードが作成されます。これには、添付ファイルへのリンクが含まれています。ファイルノードを使用すると、ServiceNow AI Platform でサポートされている任意の MIME タイプのファイルを添付できます。