Software Configuration Management with Commitspark

Introduction

In Software Configuration Management (SCM), one of the topics organizations are concerned with is controlling changes to applications in a way that changes must not take effect without prior approval. This is especially challenging in scenarios where a single application is rolled out to a large number of customers in independent deployments, where each deployment must be operated with slightly different configuration with customer-specific settings.

Example: White Label Online Shop Offering

Consider an organization that offers a fully managed white label online shop solution to a large number of companies operating in a given business domain. While it is assumed that the majority of shop functionality should be identical across the business domain, there are visible aspects like shop branding as well as details like marketing tracker IDs that differ between shops.

As an organization operating such a white label shop platform, it is critical to tightly control shop configuration so that customers' production instances are never subject to unintended or invalid configuration changes.

Technical Implementation

With Commitspark, a shop solution provider can move configuration data of all shops into a single Git repository, for example on GitHub. Shop developers can then access configuration data simply by executing configuration queries against the Git repository using the Commitspark GraphQL API library. Users tasked with managing configuration data can in turn use the easy to use Commitspark data editing frontend that hides away all technical complexity, so that even non-technical users can update shop configurations.

Benefits of Using Commitspark

By using Commitspark to manage the configuration of a fleet of white label shop instances, the following benefits can be realized:

  • Prepare and test configuration changes before production roll-out by using temporary Git feature branches in order to leave data in a production branch untouched
  • Obtain tight control over configuration data by using GitHub features such as protected branches and pull requests to limit write access to production configuration data
  • Use automation such as GitHub Workflows to execute situation-specific tests that validate correctness of configuration data
  • Have peace of mind that the Commitspark GraphQL data schema informs developers of the types and structure of configuration data they can expect, preventing downtime that would be caused by mismatches
  • Decouple business related configuration (e.g. shop branding) from infrastructure configuration (e.g. CPU resource allocation) to match the typical separation between tech and non-tech roles inside organizations
  • Enable non-technical users to manage configuration data as structure and correctness of data is enforced through Commitspark as well as automation workflows
  • Have a detailed record of any configuration changes natively provided by Git, so that any changes can be tracked back to an individual user as well as the ability to seamlessly revert a change in case an undesired change managed to slip through

Conclusion

With Commitspark, it becomes possible to tightly control application configuration data while at the same time safely opening up configuration management capabilities to non-technical users.