This topic describes the terms that are related to Application Configuration Management.
When developers develop a system, they usually extract some parameters or variables that need to be changed from the code and save the parameters in a separate configuration file. This enables the static system artifacts or deliverables such as WAR and JAR packages to better fit with the physical operational environment. Configuration management is usually a part of system deployment. System administrators or operation and maintenance (O&M) engineers are in charge of configuration management. Configuration modification is an efficient way to adjust the behavior of a running system.
Dynamic configuration and static configuration
System configurations can be static or dynamic. If the version of a configuration is bound to the version of the software, the configuration is static. If a configuration can be modified as many times as needed when a system of a specific version is deployed and running, the configuration is dynamic. For example, the build-version: 1.0.0 configuration is static because it is bound to the software version. The configuration that defines the thread pool size is dynamic because the configuration can be modified as many times as needed when the system is running.
In data centers, data management refers to all activities that are related to configurations. These activities include the operations to modify, store, and distribute configurations, manage updates, control versions, and audit modifications.
The configuration management system may frequently distribute configuration updates to other relevant systems. Configuration pushing refers to the procedure from when the configuration updates are pushed to when the configuration updates are applied.
Push tracking is a process that is used to track how configuration updates are submitted, pushed, and applied. Push tracking allows you to find the applications and machines where a configuration update is applied, when the configuration update is applied, and the impacts of the update.
Your application systems can register listeners in Application Configuration Management by using SDKs or other methods to monitor and apply configuration updates.
A configuration item refers to a configurable parameter with its value range. A configuration item is typically expressed in the param-key=param-value format. For example, the logLevel=INFO|WARN|ERROR configuration that is used to specify the level of the printed log entries is a configuration item.
A configuration set is a set of configuration items. These configuration items can be correlated or not. A system configuration file is usually considered a configuration set. The file contains configurations that are related to the system. For example, a configuration set can contain system settings about data sources, thread pools, and log levels.
Data IDs in Application Configuration Management refer to IDs of configuration sets. Data ID is one of the dimensions in which configurations are organized. In most cases, data IDs are used to classify system configuration sets. A system or application can have multiple configuration sets. You can identify these configuration sets by assigning an informative name to each of them. Data IDs usually use a naming convention similar to that for Java packages (for example, com.taobao.tc.refund.log.level) to ensure global uniqueness. The naming convention is not mandatory.
In Application Configuration Management, configuration sets can be classified into groups. Group is one of the dimensions in which configurations are organized. Typically, informative strings, such as "Buy" and "Trade", are used as group names to classify configuration sets. You can use groups to distinguish configuration sets that have the same data ID. When you create a configuration in Application Configuration Management, if you do not specify a group name, DEFAULT_GROUP is used. Groups are applicable to scenarios where configurations of the same type are applied to different applications or components, such as the database_url and MQ_topic configurations.
In Application Configuration Management, namespaces are used to isolate configurations by tenant. Different namespaces can contain configurations that belong to the same group or use the same data ID. Namespaces are applicable to scenarios where you want to isolate configurations of different environments. For example, you want to isolate the configurations of the staging environment from those of the production environment.
Application Configuration Management SDK automatically creates configuration snapshots on your on-premises machine. You can use configuration snapshots to recover the system when the client cannot connect to the Application Configuration Management server. Configuration snapshots are similar to local commits in Git or cache, which is updated at an appropriate time. However, unlike cache, configuration snapshots do not expire.