CDMデータモデル

  • リリースバージョン: Xanadu
  • 更新日 2024年08月01日
  • 所要時間:11分
  • 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 展開可能と同じコンポーネントとコレクションを使用できます。開発 では、デフォルトの データベース 変数値を使用します。対照的に、テストでは、テスト環境に適した別の値を使用します。
    コンポーネント変数フォルダー
    コンポーネントの Vars フォルダーには、 Components フォルダー内の任意の CDI が使用できる変数を含めることができます。コンポーネント の Vars フォルダーは 1 つだけです。
    コレクション

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

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

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

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

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

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

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

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

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

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

    BookStore アプリケーションの例の次の図では、番号はコンポーネント、コレクション、および 展開可能項目間の関係を示しています。
    1. コンポーネントは、環境または環境のバージョンを表すコレクションを形成するためにグループ化されます。FS2 (機能セット 2) コレクションには、現在開発およびテスト中のアプリケーションのコアバージョン 2 の構成データが含まれています。対照的に、FS1 は、徹底的にテストされ、現在本番環境でアプリケーションを実行している以前のコア バージョン 1 を保持しています。
    2. この例では、FS2 (テスト環境で使用されるコレクション) と FS1 (運用環境で使用されるコレクション) の両方が、 S3 と特定の VM templateの両方の構成データを使用します。したがって、FS1 コレクションと FS2 コレクションはどちらもこれら 2 つのコンポーネントを継承します。コレクションは異なる機能セットを表すため、FS1 と FS2 は変数またはオーバーライドを使用して、コンポーネントにいくつかの異なる設定を指定する可能性があります。
    3. 各展開可能項目には、その環境 (開発、テスト、または運用) に適したコレクションが含まれています。この例では、TEST 展開可能項目は、FS2 コレクション、新しいバージョンの機能セット、およびテスト環境で使用されるその他の構成設定を使用します。対照的に、本番展開可能項目は本番環境で FS1 を使用します。FS1 は、本番環境で検証された構成データのコレクションの以前のバージョンです。

      各展開可能項目では、変数は環境に適した値に設定されます。たとえば、PROD では、 データベース 変数は prod1 (本番データベース) に設定されます。ただし、TEST deployable は、テスト チームが使用するデータベースの 1 つである test3 を指定します。

    この図は簡略化されています。実装では、複数のコレクション、変数と上書きの設定、オーバーレイ設定 (展開可能項目を構成するコンポーネントとコレクションに表示されない設定) を 展開可能項目 に含めることができます。さらに、環境タイプごとに複数の展開可能項目がある場合があります。

    コンポーネントとコレクションが、さまざまな環境の展開可能項目にビルドできるコンテンツを提供する方法

    定義

    CDI
    構成データ項目 (CDI) は、単純なキー値ノードです。
    変数
    変数は、CDI 内で参照できるキーと値の項目です。
    親ノードと子 (リーフ) ノード
    • CDI と変数はキーと値の項目です。CDI と変数は子ノードにしかなれません。
    • コンポーネント、コレクション、展開可能項目、およびフォルダーノードは、親ノード (キー値項目またはその他の親ノードを持つことができるノード) にすることができます。
    コンポーネント
    コンポーネントは通常、アプリケーションの論理要素またはインフラストラクチャサービスの一部の構成データを表す構成要素です。たとえば、モノリシック アプリ、マイクロサービス、物理サーバー、Docker テンプレートなどです。

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

    コレクション

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

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

    展開可能項目

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

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

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

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

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