Computers and computing systems have impacted nearly every aspect of modern living. For instance, computers are generally involved in work, recreation, healthcare, transportation, entertainment, household management, etc.
Normally, a computing system operates using a particular configuration. At a high level, a configuration includes all of the files, directories, dependencies, and/or libraries needed for the computing system to operate in a desired manner. To clarify, the configuration determines how the computing system will function and perform its various operations. As used herein, the terms “system configuration,” “computer configuration,” “server configuration,” and simply “configuration” are interchangeable.
From time to time, the system configuration will be changed. A configuration change may occur, for example, when one or more of the configuration's files, directories, dependencies, and/or libraries are altered such that the configuration has a new “state.” To properly categorize and characterize the distinct states of a configuration, versioning techniques are often used. Versioning relates to the process of 1) assigning version identifiers (i.e. identifiers used to differentiate one version from another), 2) maintaining both configuration history and configuration change history, and 3) performing the processes needed so that a computer system can reliably revert from a later version back to an earlier version (if needed) each time a configuration change is introduced. In particular, configuration versioning allows a computer system to remain backwards compatible with previous versions while, at the same time, allowing dramatically new features and configuration options to be introduced to the computer system.
When a configuration change occurs, the corresponding computer system may perform processes for preserving the computer system's existing configuration version. For instance, the system may require each new configuration change to be transactional. In some instances, version identifiers may also be updated to indicate which version the computer system is configured with.
In addition to modifying a computer's configuration, a computer's functionality can also be enhanced by networking with other computing systems via one or more network connections. By way of example, these network connections allow one computing system to remotely access services and/or other content located at one or more other computing systems. In some instances, these services may be operating in a cloud environment such that these services operate remotely from a computer system that is attempting to utilize that service. As used herein, services that operate in a cloud environment are collectively referred to as “cloud-based services.”
In some instances, a remote service (e.g., a cloud-based service) can be used to facilitate the various configuration changes (e.g., updates, deletions, or additions) to a computing system's configuration. Currently, however, there exists a substantial need in the field to improve the interrelationship between a remote service and a computing system, particularly with regard to configuration changes. As a result, there exists a substantial need in the field to improve how a remote service is used when managing a computing system's configuration.
The subject matter claimed herein is not limited to embodiments that solve any disadvantages or that operate only in environments such as those described above. Rather, this background is provided to illustrate only one exemplary technology area where some embodiments described herein may be practiced.