CDMデータモデル

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:12分
  • CDMデータモデルは、自動化、品質検証、CSDMなど、ソフトウェアデリバリーのより広範なライフサイクルをサポートする標準化されたデータ構造です。CDM は、既存の構成データをインポートし、定義したポリシーを使用して検証し、有効な構成データを組織の既存のDevOpsパイプラインにエクスポートして、アプリケーション、サービス、インフラストラクチャを実装します。

    重要:
    Washington DC リリース以降、DevOps コンフィグ は将来の廃止に備えて準備されます。これは非表示になり、新しいインスタンスにはインストールされなくなりますが、引き続きサポートされます。詳細については、Now Support ナレッジベースの「Deprecation Process (廃止プロセス) [KB0867184]」の記事を参照してください。

    CDM データモデルの概要

    CDMデータモデルは、構成についての考え方を変えるものではありません。代わりに、 CDM REST API とユーザーインターフェイスを使用して、既存の JSON、YAML、INI、XML、およびその他の構成データを直感的なデータ構造にマッピングすると、次のメリットが得られます。
    • 厳格で透過的なバージョンと変更の管理を実装します。
    • 機密データを暗号化し、データに対する適切なアクセス制御を行うことができます。
    • 構成データの自動検証を有効にします。
    • 値を含む変数やオーバーレイ値を使用して、構成データ構造を再利用できます。

    CDMデータモデルの構造

    CDM内のアプリケーションはCMDB内のアプリケーションサービス、アプリケーションモデル、またはダイナミック CI グループ [インフラストラクチャ] の構成データの完全なコレクションです。CDMユーザーは、標準の階層構造で次の空のフォルダーを含むアプリケーションレコードを作成します。システムが既存の構成データを取り込んだ後、データを適切なフォルダーのコンポーネントに構造化します。コンポーネントのコレクションを作成し、そのコレクションを 展開可能 項目 (開発、テスト、または本番環境用) に結合して、配信プロセスで展開できる構成データセットを作成します。各コンポーネント、コレクション、変数、および展開可能項目は、構造内の ノード です。

    新しい CDM アプリケーションのフォルダー構造

    コンポーネント
    コンポーネントは、通常、アプリケーションの論理要素またはインフラストラクチャサービスの一部の構成データを表す構成要素です。たとえば、モノリシックアプリ、マイクロサービス、物理サーバー、Docker テンプレートなどです。

    コンポーネントには、直接またはインクルードの子孫コンポーネントを含めることができます。コンポーネントには、コレクションと 展開可能項目で異なる値を取ることができる変数を含めることができます。

    コンポーネントを共有コンポーネントのライブラリにグループ化できます。

    ヒント:
    多くの場合、コンポーネントまたはコレクション内の変数のデフォルト値を定義すると便利です。これは、少数のコンポーネントとコレクションのセットからさまざまな展開可能項目を作成できるため、強力な戦略です。コンポーネントまたはコレクションを継承する展開可能項目では、上書き、オーバーレイ、および変数設定を使用して、環境タイプのニーズを満たすことができます。 たとえば、 開発 展開可能 では 、Test 展開可能と同じコンポーネントとコレクションを使用できます。開発 では 、デフォルトのデータベース 変数値が使用されます。対照的に、テストでは、テスト環境に適した別の値を使用します。
    Components Vars フォルダ
    components Vars フォルダには、 Components フォルダ内の任意の CDI で使用できる変数を含めることができます。コンポーネントの Vars フォルダーは 1 つだけです。
    コレクション

    コレクションは、リリースを一緒に定義するコンポーネントのセットです — コレクションはリリース構成と考えることができます。

    コレクションには、変数を含めたり、特定のバージョンに固有の設定を上書きしたりできます。たとえば、リリース 1 で使用される VM 構成データは、リリース 2 で使用されるデータとは異なります。release-1 はメモリ設定に値 2Gb を使用し ("memory": "2Gb")、release-2 は別の値 ("memory": "4Gb") を指定する場合があります。さらに、コレクションには、そのコンポーネントに表示されない構成設定が含まれている場合があります。このような値は オーバーレイと呼ばれます。

    コレクションは、アプリケーション、ローカリゼーション、または機能セットの特定のバージョンを表す場合があります。たとえば、 collection-2 という名前のコレクションには、アプリケーションの リリース 2.0 の機能を表すコンポーネントまたはコンポーネント バージョンのセットが含まれる場合があります。対照的に、リリース 3.0 の機能を表す collection-3 という名前のコレクションには、同じコンポーネントまたはコンポーネント バージョンのセット、追加のコンポーネントまたはコンポーネント バージョン、およびその他の変数、オーバーライド、およびオーバーレイ設定が含まれる場合があります。

    コレクション変数フォルダー
    コレクション の Vars フォルダーには、 コレクション フォルダー内の任意の CDI で使用できる変数を含めることができます。各コレクションには、1 つのコレクション Vars フォルダーがあります。コレクション変数はコンポーネント変数よりも優先順位が高くなります。
    展開可能項目

    データ構造に 展開可能項目 を追加して構成します。展開可能は、配信プロセスで展開できる構成データセット (開発、テスト、または本番環境用) です。アプリケーションの各 展開可能 は、 CMDB内のサービスの構成を表します。

    展開可能項目は、特定の環境のリリースを定義するコレクションまたはコレクションのセットで構成されます。コレクション + 環境の組み合わせは、 CMDB 内のアプリケーションサービスまたはインフラストラクチャサービスにリンクします。

    展開可能には、変数を含めたり、環境に固有の設定を上書きしたりできます。たとえば、 データベース 変数は、開発環境で 1 つの値を持ち、本番環境で異なる値を持ちます。本番 展開可能 の上書き値で、開発環境では不要な必須コンテナーパラメーターが指定される場合があります。

    DEV-2 という名前の展開可能の例には、collection-2 コレクションが含まれ、リリース 2.0 の開発環境に固有の変数、オーバーライド、およびオーバーレイ設定を指定します。これに対し、PROD-2 という名前の展開可能には collection-2 コレクションも含まれますが、代わりに、リリース 2.0 の運用環境に固有の設定を指定します。

    変更セットが完成したら、変更を保存してコミットできます。システムは、他のユーザーのコミットされた変更セットとの競合をチェックします。競合がない場合、システムは変更を保持し、変更の影響を受けるすべての 展開可能 のスナップショットを生成します。スナップショットは、エクスポート可能な構成データセットを表します。システムは、各スナップショットに対してポリシーを実行し、検証結果を返すことで、構成データを検証します。

    [展開可能な変数] フォルダー
    展開可能な Vars フォルダーには、 Deployables フォルダー内の任意の CDI で使用できる変数を含めることができます。各展開可能項目には、展開可能な Vars フォルダーが 1 つあります。展開可能変数は、コレクション変数よりも優先度が高くなります。

    BookStore アプリケーションのサンプルを示す次の図では、番号でコンポーネント、コレクション、および 展開可能項目の関係を示しています。
    1. コンポーネントはグループ化され、環境または環境のバージョンを表すコレクションを形成します。FS2 (機能セット 2) コレクションには、現在開発およびテスト中のアプリケーションのコアバージョン 2 の構成データが含まれています。対照的に、FS1 は、徹底的にテストされ、現在本番環境でアプリケーションを実行している以前の Core バージョン 1 を保持しています。
    2. この例では、FS2 (テスト環境で使用されるコレクション) と FS1 (本番環境で使用されるコレクション) の両方が、 S3 と特定の VM templateの両方に構成データを使用します。したがって、FS1 コレクションと FS2 コレクションはどちらも、これら 2 つのコンポーネントを継承します。コレクションは異なる機能セットを表すため、FS1 と FS2 では、変数またはオーバーライドを使用して、コンポーネントにいくつかの異なる設定を指定する可能性があります。
    3. 各展開可能項目には、その環境 (開発、テスト、または本番) に適したコレクションが含まれています。この例では、TEST 展開可能項目は、FS2 コレクション、新しいバージョンの機能セット、およびテスト環境で使用されるその他の構成設定を使用します。対照的に、本番展開可能項目は本番環境で 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']
    コンポーネント
    コンポーネントは、通常、アプリケーションの論理要素またはインフラストラクチャサービスの一部の構成データを表す構成要素です。たとえば、モノリシックアプリ、マイクロサービス、物理サーバー、Docker テンプレートなどです。

    コンポーネントには、コレクションと 展開可能項目で異なる値を取ることができる変数を含めることができます。詳細な手順は コンポーネントの定義または更新に記載されています。

    コレクション

    コレクションは、リリースを一緒に定義するコンポーネントのセットです — コレクションはリリース構成と考えることができます。

    コレクションには、変数を含めることも、特定のバージョンに固有の設定を上書きすることもできます。たとえば、リリース 1 で使用される VM 構成データは、リリース 2 で使用されるデータとは異なります。release-1 はメモリ設定に値 2Gb を使用し ("memory": "2Gb")、release-2 は別の値 ("memory": "4Gb") を指定する場合があります。さらに、コレクションには、そのコンポーネントに表示されない構成設定が含まれている場合があります。このような値は「オーバーレイ」と考えることができます。

    展開可能項目

    展開可能 は、サービスとして CI/CD パイプラインに展開できる構成データセット (開発、テスト、または本番環境用) です。アプリケーションの各 展開可能 は、 CMDB内のサービスを構成します。たとえば、環境タイプ (開発、テスト、本番) ごとに 1 つずつ、合計 3 つの展開可能項目を作成できます。

    展開可能は、特定の環境のリリースを定義するコレクションまたはコレクションのセットで構成されます。コレクション + 環境の組み合わせは、 CMDB またはインフラストラクチャサービス内のアプリケーションサービスにリンクします。

    展開可能には、変数を含めたり、環境に固有の設定を上書きしたりできます。たとえば、 データベース 変数は、開発環境で 1 つの値を持ち、本番環境で異なる値を持ちます。本番 展開可能 の上書き値で、開発環境では不要な必須コンテナーパラメーターが指定される場合があります。

    変更セットとスナップショット
    CDMアプリケーションに変更をコミットすると、変更がアプリケーションの変更セットとして保持されます。その後、変更の影響を受けるすべての展開可能スナップショットも生成されます。スナップショットは、エクスポート可能な構成データセットを表します。システムは、各スナップショットに対してポリシーを実行し、検証結果を返すことで、構成データを検証します。検証に合格し、公開されているスナップショットは、構成データとしてリリースパイプラインにエクスポートできます。
    共有コンポーネントとコンポーネントライブラリ
    構成データ管理 の共有コンポーネントを使用すると、複数のアプリケーションでコンポーネントを使用できます。

    整理しやすくするために、これらの共有コンポーネントはコンポーネントライブラリで管理されます。これらのコンポーネントライブラリは、アプリケーション全体でコンポーネントの構成データの信頼できる唯一の情報源を確保することで、一貫性と保守性を向上させます。

    ファイルノード
    ファイルノードは、 CDM アプリまたはコンポーネントライブラリの構成データモデルにファイルを添付するときに作成されます。添付ファイルへのリンクが含まれています。ファイルノードを使用すると、 Now Platformでサポートされている任意の MIME タイプのファイルを添付できます。