CDM-Datenmodell

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 9 Minuten Lesedauer
  • Das Datenmodell CDM ist eine standardisierte Datenstruktur, die den breiteren Lebenszyklus der Softwarebereitstellung unterstützt – Automatisierung, Qualitätsvalidierung und CSDM. CDM importiert vorhandene Konfigurationsdaten, validiert sie anhand von Ihnen definierter Richtlinien und exportiert gültige Konfigurationsdaten in die vorhandene DevOps -Pipeline Ihrer Organisation, um -Anwendungen, Services und die Infrastruktur zu implementieren.

    Wichtig:
    Ab dem Release Washington DC wird DevOps Config auf den Übergang in den Zustand „Veraltet“ vorbereitet. Es wird ausgeblendet und in neuen Instanzen nicht mehr installiert, aber weiterhin unterstützt. Weitere Informationen finden Sie im Artikel Deprecation Process [KB0867184] (Abkündigungsprozess) in der Now Support Knowledge Base.

    CDM Übersicht über das -Datenmodell

    Das Datenmodell CDM ändert nichts an Ihrer Einstellung zur Konfiguration. Stattdessen verwenden Sie die REST API und Anwenderoberfläche CDM, um Ihre vorhandenen JSON-, YAML-, INI-, XML- und anderen Konfigurationsdaten einer intuitiven Datenstruktur zuzuordnen, die die folgenden Vorteile bietet:
    • Implementiert eine strikte und transparente Versions- und Change-Steuerung.
    • Ermöglicht die Verschlüsselung vertraulicher Daten und stellt eine entsprechende Zugriffssteuerung für die Daten sicher.
    • Aktiviert die automatisierte Validierung von Konfigurationsdaten.
    • Ermöglicht Ihnen die Wiederverwendung von Konfigurationsdatenstrukturen mithilfe von Variablen, einschließlich Werten und überlagernden Werten.

    Struktur des Datenmodells CDM .

    Eine Anwendung in CDM ist die vollständige Sammlung von Konfigurationsdaten für einen Anwendungsservice, ein Anwendungsmodell oder eine dynamische CI-Gruppe [Infrastruktur] im CMDB. Der Benutzer CDM erstellt einen Anwendungsdatensatz, der die folgenden leeren Ordner in einer hierarchischen Standardstruktur enthält. Nachdem das System Ihre vorhandenen Konfigurationsdaten erfasst hat, strukturieren Sie die Daten in Komponenten im entsprechenden Ordner. Sie erstellen Sammlungen der Komponenten und kombinieren die Sammlungen dann zu einem bereitstellbaren Element – einem Konfigurationsdatensatz (für eine Entwicklungs-, Test- oder Produktionsumgebung), der von Ihrem Bereitstellungsprozess bereitgestellt werden kann. Jede Komponente, Sammlung, Variable und jedes bereitstellbare Element stellt einen Knoten in der -Struktur dar.

    Ordnerstruktur für eine neue CDM Anwendung

    Komponenten
    Komponenten sind die Bausteine, die normalerweise die Konfigurationsdaten für ein logisches Element einer Anwendung oder einen Teil eines Infrastrukturservice darstellen. Zum Beispiel eine Monolith-App, ein Micro-Service, ein physischer Server oder eine Docker-Vorlage.

    Eine Komponente kann untergeordnete Komponenten enthalten, entweder direkt oder enthalten. Eine Komponente kann Variablen enthalten, die in Sammlungen und Bereitstellungenunterschiedliche Werte annehmen können.

    Sie können Komponenten in einer Bibliothek gemeinsam genutzter Komponenten gruppieren.

    Tipp:
    Oft ist es nützlich, einen Standardwert für eine Variable in einer Komponente oder Sammlung zu definieren. Dies ist eine leistungsstarke Strategie, da Sie mit einem kleinen Satz von Komponenten und Sammlungen eine große Vielfalt an bereitstellbaren Elementen erstellen können. Bereitstellbare Elemente, die eine Komponente oder Sammlung erben, können Überschreibungen, Überlagerungen und Variableneinstellungen verwenden, um die Anforderungen des Umgebungstyps zu erfüllen. Beispielsweise können für die Entwicklung bereitstellbar dieselben Komponenten und Sammlungen wie für den Test bereitstellbarverwendet werden. Die Entwicklung verwendet den Standardwert der Datenbankvariablen. Testhingegen verwendet einen anderen Wert, der für die Testumgebung geeignet ist.
    Vars-Ordner für Komponenten
    Der Vars- Ordner der Komponenten kann Variablen enthalten, die von jeder CDI im Komponentenordner verwendet werden können. Es gibt nur einen Vars -Ordner für Komponenten.
    Sammlungen

    Eine Sammlung ist der Satz von Komponenten, die zusammen ein Release definieren. Sie können sich eine Sammlung als eine Release-Zusammensetzung vorstellen.

    Eine Sammlung kann Variablen enthalten oder Einstellungen überschreiben, die für eine bestimmte Version spezifisch sind. Beispielsweise unterscheiden sich die in Release-1 verwendeten VM-Konfigurationsdaten von den in Release-2 verwendeten Daten. Release-1 verwendet möglicherweise den Wert 2 GB für die Arbeitsspeichereinstellung („memory“: „2 Gb“), und Release-2 gibt möglicherweise einen anderen Wert an („memory“: „4Gb“). Darüber hinaus kann eine Sammlung Konfigurationseinstellungen enthalten, die nicht in ihren Komponenten angezeigt werden. Solche Werte werden als Überlagerungenbezeichnet.

    Eine Sammlung kann eine bestimmte Version einer Anwendung, Lokalisierung oder eines Funktionssatzes darstellen. Beispielsweise kann eine Sammlung mit dem Namen „collection-2“ den Satz von Komponenten oder Komponentenversionen enthalten, die die Funktionalität von Release 2.0 für die Anwendung darstellen. Im Gegensatz dazu kann eine Sammlung mit dem Namen „collection-3“, die die Funktionalität von Release 3.0 darstellt, denselben Satz von Komponenten oder Komponentenversionen, zusätzliche Komponenten oder Komponentenversionen und andere Variablen-, Überschreibungs- und Überlagerungseinstellungen enthalten.

    Vars-Ordner für Sammlungen
    Der Ordner „Sammlungsvariablen“ kann Variablen enthalten, die von jeder CDI im Ordner „ Sammlungen“ verwendet werden können. Jede Sammlung hat einen Vars -Ordner für die Sammlung. Eine Sammlungsvariable hat eine höhere Priorität als eine Komponentenvariable.
    Einsetzbare

    Sie fügen bereitstellbare Elemente in der Datenstruktur hinzu und konfigurieren sie. Ein bereitstellbar ist ein Konfigurationsdatensatz (für eine DEV-, TEST- oder PROD-Umgebung), der von Ihrem Bereitstellungsprozess bereitgestellt werden kann. Jedes bereitstellbar in einer Anwendung stellt die Konfiguration eines Services in CMDBdar.

    Ein bereitstellbares Element besteht aus der Sammlung oder dem Satz von Sammlungen, die das Release für eine bestimmte Umgebung definieren. Die Kombination aus Sammlungen und Umgebungslink zu einem Anwendungsservice im CMDB oder zu einem Infrastrukturservice.

    Ein bereitstellbar kann Variablen enthalten oder Einstellungen überschreiben, die für die Umgebung spezifisch sind. Zum Beispiel hat die Datenbankvariable einen Wert in der Entwicklungsumgebung und einen anderen Wert in der Produktionsumgebung. Ein Überschreibungswert in der Produktion bereitstellbar kann einen erforderlichen Containerparameter angeben, der in der Entwicklungsumgebung nicht benötigt wird.

    Ein Beispiel bereitstellbar mit dem Namen DEV-2 würde die Sammlung Sammlung Sammlung -2 enthalten und Variablen-, Überschreibungs- und Überlagerungseinstellungen angeben, die für die Entwicklungsumgebung für Release 2.0 spezifisch sind. Im Gegensatz dazu würde bereitstellbar mit dem Namen PROD-2 auch die Sammlung Sammlung-2 enthalten, aber stattdessen Einstellungen angeben, die für die Produktionsumgebung für Release 2.0 spezifisch sind.

    Wenn Sie mit einem Changeset zufrieden sind, können Sie die Änderungen speichern und committen. Das System sucht nach Konflikten mit committeten Changesets anderer Benutzer. Wenn keine Konflikte vorliegen, behält das System die Changes bei und generiert dann einen Snapshot von jedem bereitstellbar, der von den Changes betroffen ist. Ein Snapshot stellt einen potenziellen exportierbaren Konfigurationsdatensatz dar. Das System validiert Konfigurationsdaten, indem es Richtlinien für jeden Snapshot ausführt und die Validierungsergebnisse zurückgibt.

    Ordner für bereitstellbare Variablen
    Der Ordner „Bereitstellbare Elemente“ kann Variablen enthalten, die von jeder CDI im Ordner „ Bereitstellbare Elemente“ verwendet werden können. Jedes bereitstellbare Element hat einen bereitstellbaren Vars- Ordner. Eine bereitstellbare Variable hat eine höhere Priorität als eine Sammlungsvariable.

    Beispiel

    Im folgenden Diagramm der Beispielanwendung „BookStore“ geben die Zahlen die Beziehungen zwischen Komponenten, Sammlungen und Bereitstellungenan.
    1. Komponenten werden gruppiert, um Sammlungen zu bilden, die Umgebungen oder Versionen von Umgebungen darstellen. Die FS2-Sammlung (Funktionssatz 2) enthält Konfigurationsdaten für Core-Version 2 der Anwendung, die derzeit entwickelt und getestet wird. FS1 hingegen enthält die frühere Core-Version 1, die gründlich getestet wurde und derzeit die Anwendung in der Produktionsumgebung ausführt.
    2. Im Beispiel verwenden sowohl FS2 (die Sammlung, die in Testumgebungen verwendet wird) als auch FS1 (die Sammlung, die in der Produktionsumgebung verwendet wird) Konfigurationsdaten für S3 und ein bestimmtes VM template. Daher erben sowohl die FS1- als auch die FS2-Sammlung diese beiden Komponenten. Da die Sammlungen unterschiedliche Funktionssätze darstellen, verwenden FS1 und FS2 wahrscheinlich Variablen oder Überschreibungen, um einige unterschiedliche Einstellungen für die Komponenten anzugeben.
    3. Jedes bereitstellbare Element enthält die Sammlung, die für seine Umgebung (Entwicklung, Test oder Produktion) geeignet ist. Im Beispiel verwendet das bereitstellbare Element TEST die FS2-Sammlung, die neuere Version des Funktionssatzes und andere Konfigurationseinstellungen, die in Testumgebungen verwendet werden. Im Gegensatz dazu verwendet das bereitstellbare PROD-Element FS1 in der Produktionsumgebung. FS1 ist die frühere Version der Sammlung von Konfigurationsdaten, die für die Produktion validiert wurde.

      In jedem bereitstellbaren Element werden Variablen auf Werte festgelegt, die für die Umgebung geeignet sind. In PROD wird die Datenbankvariable beispielsweise auf prod1 (die Produktionsdatenbank) festgelegt. Das bereitstellbare Element TEST gibt jedoch eine der Datenbanken an, die vom Testteam verwendet wird, test3.

    Dieses Diagramm ist vereinfacht. In Ihrer Implementierung kann Bereitstellungen mehrere Sammlungen, Variablen- und Überschreibungseinstellungen sowie Überlagerungseinstellungen (Einstellungen, die nicht in den Komponenten und Sammlungen angezeigt werden, aus denen das bereitstellbare Element besteht) enthalten. Darüber hinaus können Sie für jeden Umgebungstyp über mehrere bereitstellbare Elemente verfügen.

    Wie Komponenten und Sammlungen Inhalte bereitstellen, die Sie in bereitstellbare Elemente für eine Vielzahl von Umgebungen integrieren können

    Definitionen

    CDI
    Ein Config Data Item (CDI) ist einfach ein Schlüssel-Wert-Knoten.
    Variable
    Eine Variable ist ein Schlüssel-Wert-Element, auf das in einer CDI verwiesen werden kann.
    Übergeordnete Knoten und untergeordnete Knoten (Blattknoten).
    • CDIs und Variablen sind Schlüssel-Wert-Elemente. CDIs und Variablen können nur untergeordnete Knoten sein.
    • Komponenten, Sammlungen, bereitstellbare Elemente und Ordnerknoten können übergeordnete Knoten sein – Knoten, die Schlüssel-Wert-Elemente oder andere übergeordnete Knoten haben können.
    Hinweis:

    Ab Konfigurationsdaten-Management Version 4.2 können Sie einen Knoten mit einem beliebigen UTF-8-Zeichen einschließlich des Schrägstrichs (/) definieren.

    Namenspfad
    Der Namenspfad ist der vollständige Ordnerpfad des ausgewählten Knotens in der Liste. In der REST-API können Sie den Namenspfad im Array in den folgenden Formaten angeben:
    • Format mit umgekehrtem Schrägstrich: Beispiel: testApp/deployables/Development1/cdi1
      Hinweis:
      Wenn Ihr Knotenname einen umgekehrten Schrägstrich („/“) enthält, können Sie dieses Format nicht verwenden.
    • Back-End-Namenspfad mit Ersetzungszeichen: Beispiel: testApp, bereitstellbare Elemente, Entwicklung1, cdi1
    • Array: Beispiel: ['testApp','deployables','Development1','cdi1']
    Komponenten
    Komponenten sind die Bausteine, die normalerweise die Konfigurationsdaten für ein logisches Element einer Anwendung oder einen Teil eines Infrastrukturservice darstellen. Zum Beispiel eine Monolith-App, ein Micro-Service, ein physischer Server oder eine Docker-Vorlage.

    Eine Komponente kann Variablen enthalten, die in Sammlungen und Bereitstellungenunterschiedliche Werte annehmen können. Ausführlichere Anweisungen finden Sie unter Definieren oder aktualisieren Sie eine Komponente.

    Sammlungen

    Eine Sammlung ist der Satz von Komponenten, die zusammen ein Release definieren. Sie können sich eine Sammlung als eine Release-Zusammensetzung vorstellen.

    Eine Sammlung kann Variablen enthalten oder Einstellungen überschreiben, die für eine bestimmte Version spezifisch sind. Beispielsweise unterscheiden sich die in Release-1 verwendeten VM-Konfigurationsdaten von den in Release-2 verwendeten Daten. Release-1 verwendet möglicherweise den Wert 2 GB für die Arbeitsspeichereinstellung („memory“: „2 Gb“), und Release-2 gibt möglicherweise einen anderen Wert an („memory“: „4Gb“). Darüber hinaus kann eine Sammlung Konfigurationseinstellungen enthalten, die nicht in ihren Komponenten angezeigt werden. Sie können sich solche Werte als „Überlagerungen“ vorstellen.

    Einsetzbare

    Ein bereitstellbar ist ein Konfigurationsdatensatz (für eine Entwicklungs-, Test- oder Produktionsumgebung), der als Service in Ihrer CI/CD-Pipeline bereitgestellt werden kann. Jedes bereitstellbar in einer Anwendung konfiguriert einen Service in CMDB. Sie können beispielsweise drei bereitstellbare Elemente erstellen, eines für jeden Umgebungstyp: Entwicklung, Test und Produktion.

    Ein bereitstellbar besteht aus der Sammlung oder dem Satz von Sammlungen, die das Release für eine bestimmte Umgebung definieren. Die Kombination aus Sammlungen und Umgebungslink zu einem Anwendungsservice im CMDB oder zu einem Infrastrukturservice.

    Ein bereitstellbar kann Variablen enthalten oder Einstellungen überschreiben, die für die Umgebung spezifisch sind. Zum Beispiel hat die Datenbankvariable einen Wert in der Entwicklungsumgebung und einen anderen Wert in der Produktionsumgebung. Ein Überschreibungswert in der Produktion bereitstellbar kann einen erforderlichen Containerparameter angeben, der in der Entwicklungsumgebung nicht benötigt wird.

    Changesets und Snapshots
    Wenn Sie Änderungen an einer Anwendung CDM festschreiben, behält das System die Änderungen als Changeset der Anwendung bei. Das System generiert dann auch einen Snapshot von jedem bereitstellbar, der von den Changes betroffen ist. Ein Snapshot stellt einen potenziellen exportierbaren Konfigurationsdatensatz dar. Das System validiert Konfigurationsdaten, indem es Richtlinien für jeden Snapshot ausführt und die Validierungsergebnisse zurückgibt. Snapshots, die die Validierung bestehen und veröffentlicht werden, können als Konfigurationsdaten in die Release-Pipeline exportiert werden.
    Gemeinsam genutzte Komponenten und Komponentenbibliotheken
    Mit gemeinsam genutzten Komponenten in Konfigurationsdaten-Management können Sie eine Komponente in mehreren Anwendungen verwenden.

    Zur besseren Organisation werden diese gemeinsam genutzten Komponenten in Komponentenbibliotheken verwaltet. Diese Komponentenbibliotheken verbessern die Konsistenz und Wartbarkeit, indem sie eine einzige wahrheitsgemäße Quelle für die Konfigurationsdaten einer Komponente in allen Anwendungen sicherstellen.

    Dateiknoten
    Ein Dateiknoten wird erstellt, wenn Sie eine Datei an das Konfigurationsdatenmodell einer CDM -App oder einer Komponentenbibliothek anhängen. Sie enthält einen Link zur angehängten Datei. Mithilfe von Dateiknoten können Sie Dateien aller von Now Platformunterstützten MIME-Typen anhängen.