Preparing an application for config data upload
Summarize
Summary of Preparing an application for config data upload
In Configuration Data Management (CDM), an application represents the complete collection of configuration data for an application service, application model, or dynamic CI group in the CMDB. Preparing an application to accept uploaded config data involves creating an application record, structuring it with standard folders, and mapping existing configuration data into this data model. This preparation enables support for multiple deployables, which correspond to environments such as Development, Test, and Production.
Show less
Note that with the Washington DC release, DevOps Config is being deprecated and will no longer install on new instances but remains supported on existing ones.
Key Steps to Prepare an Application
- Create an application record using a user account with the CDM Admin role.
- Map your existing configuration into the standard hierarchical data structure generated by the system.
- Create a changeset (a draft version of the application) in the CDM code editor to model the configuration data by defining nodes in appropriate folders.
- Upload your existing configuration data into the changeset using REST APIs or the CDM code editor. Supported data formats include XML and CSV, parsed according to CDM rules.
- Define and manage component variables, components, collections, and deployables within the changeset to represent logical elements, release compositions, and environment-specific configurations.
- Commit the changeset, resolving any conflicts, which persists the configuration data into the application data model and generates snapshots for each affected deployable.
Key Concepts and Components
- Components: Represent logical elements of an application or infrastructure (e.g., micro-services, servers) and contain variables for configuration.
- Collections: Define release compositions made up of components, including version-specific variable or override settings (e.g., different memory allocations for different releases).
- Deployables: Represent environment-specific config datasets (Development, Test, Production) that can be deployed via CI/CD pipelines. Deployables aggregate collections and may override variables per environment.
Post-Upload Management
After uploading, you update variable and override values in deployables to tailor configurations for each environment. Once saved and committed, the system validates config data by running policies against immutable snapshots. These snapshots serve as permanent, exportable records of the configuration state.
Benefits for ServiceNow Customers
- Enables structured management and deployment of configuration data across multiple environments.
- Supports version control and conflict resolution via changesets.
- Facilitates validation and governance of configuration data through policy enforcement on snapshots.
- Integrates with CI/CD pipelines by providing deployables tailored to specific environments.
Additional Resources
For detailed configuration tasks, customers can refer to instructions on defining/updating components, collections, and deployables, as well as managing changeset conflicts and validating configuration data.
An application in CDM is the full collection of config data for an application service, application model, or dynamic CI group [infrastructure] in the CMDB. After you upload your source config data, the application can support all potential deployables that make up each version of the development, test, and production environments of the service.
Overview: Preparing an application to accept uploaded config data
- On the Apps tab, you, a user with the CDM Admin [sn_cdm.cdm_admin] role, create an application record.
The system generates an application that includes several standard folders in a hierarchical structure. You will map your existing config data into this data structure to enable the benefits that are described in CDM data model.
The application supports creation of multiple deployables. For example, you might create a deployable for each typical environment: Development, Test, and Production. You might also create multiple versions of each deployable for each environment type.
- Working in the CDM code editor, you now create a changeset — a draft copy of the application that you can edit.
- While working in the changeset, you create the following types of nodes in the appropriate folders. This process models the config data, that is, it prepares the application to map your source config
data into the CDM data structure.Note:
Starting with Configuration Data Management version 4.2, you can define a node using any UTF-8 character, including the forward slash (/).
- Now that the structure is in place, you use the REST APIs or the CDM code editing panel to upload your existing configuration data into the changeset. The process is described in Uploading your config data. For more information, see CdmApplicationsAPI, CdmChangesetsAPI, and CdmSnapshoAPI. Note:If you're uploading an XML or CSV file to import your existing config data into CDM, the CDM parser parses the data in a specific way. For more information, see Parsing of XML files in CDM and Parsing of CSV files in CDM.You can upload the following types of datasets: component variables, components, collections, and deployables.
- Components
- Components are the building blocks that typically represent the config data for a logical element of an application or a part of an infrastructure service. For example, a monolithic app, a micro-service, a physical
server, or a Docker template.
A component can contain variables that can take on different values in collections and deployables. More detailed instructions appear in Define or update a component.
- Collections
A collection is the set of components that together define a release — You can think of a collection as a release composition.
A collection can contain variable or override settings that are specific to the particular version. For example, the VM config data used in release-1 is different from the data used in release-2. release-1 might use the value
2Gbfor the memory setting ("memory": "2Gb") and release-2 might specify a different value ("memory": "4Gb"). In addition, a collection might include config settings that do not appear in its components. You might think of such values as "overlays".- Deployables
A deployable is a config dataset (for a development, test, or production environment) that can be deployed into your CI/CD pipeline as a service. Each deployable in an application configures a service in the CMDB. For example, you might create three deployables, one for each environment type: Development, Test, and Production.
A deployable is made up of the collection or set of collections that define the release for a particular environment. The combination of collections+environment link to an application service in the CMDB or an infrastructure service.
A deployable can contain variable or override settings that are specific to the environment. For example, the
databasevariable has one value in the development environment and a different value in the production environment. An override value in the production deployable might specify a required container parameter that is not needed in the development environment.
- After the data is uploaded, you return to CDM. You update variable and override values so that the relatively small set of components and collections can provide config data for all three deployable environments. For example, the Development deployable can use the same components and collections as the Test deployable. Development uses the default database variable value. Test, in contrast, uses a different value that is appropriate for the test environment.
- Now, save and commit the changeset. The system performs the following actions:
- Determine whether there are conflicts with other earlier commits. If the system reports a conflict, you must resolve it and recommit or create a changeset and redo your changes. For more information on conflict resolution, see Conflicts between changeset commits.
- Push all changes into the data model of the application (the config data is persisted).
- Generate a snapshot of each deployable that is affected by the changes in the changeset. The system validates config data by executing specified policies against a snapshot. At the moment that the snapshot is created, the snapshot can be published and used to export the config data. Snapshots are permanent records that cannot be edited.