How we streamlined configuration management for multiple software applications
The Problem
Distributed app settings (across multiple servers and environments) can be difficult to keep track of, and even more difficult to secure. One of the solutions is to add one’s configuration to their source control. This helps manage the configurations, but leaves the configurations visible to whomever can see their source code. This is potentially a large security risk when credentials such as API keys, connection strings, usernames or passwords are in the configuration files.
Furthermore, configurations and settings are static. Once all the configurations are on the server, they usually do not change. To alter them, a developer or operations team member would need to SSH or RDP into the server and change them, or create a new release.
And finally, changing app settings in a production environment is a cumbersome task and values could be overwritten if one forgets about the changes that were made.
Our Solution
Our vision was to have a single dashboard that our users could use to see all of their current configurations in one place. This makes it easier for our users to find, compare, edit and manage their configurations on the fly. In addition, users can also make their applications more dynamic.
One of our goals was to allow users without coding experience to be able to interact with our solution and gain value from it, so we made our user interface simple and easy to understand.
We also wanted our users to be able to toggle features on and off in production at the click of a button. This allows for soft deploys*.
*As you may know, this is when all the code necessary for a new feature already exists in production but is not switched on, and the act of turning the feature on without a new release, is called a soft deploy.
Our solution allows our users a quick fallback, by enabling them to turn off features in production that are behaving poorly without the need for a new release or hotfix. In a case where our users’ applications are integrating with third-party services that are failing, taking too long to respond or have bugs in them, the integration endpoint could quickly be changed from the RemoteConfigs dashboard.
Sample Use Cases
The concept of RemoteConfigs is so simple, yet so powerful. Here are a few sample use cases of how you could be using RemoteConfigs in your software applications:
- Toggle a feature on or off without republishing your app or website
- Allow non-coders to make content or design changes on the fly
- Use different color schemes when you have a sale on
- Remotely alter parameters of an app executing as a cron job or scheduled task
- Manage settings for apps executing in different deployment environments
- Dynamically display announcements across your apps
Easy to Integrate
It’s easy to integrate RemoteConfigs into your software applications. The simplest way is to make use of one of our client libraries:
If our client libraries are incompatible with your programming language or IDE, there is always the option to make use of the RemoteConfigs REST API. Have a look at our Swagger docs.
Follow us on
Visit remoteconfigs.com and sign up to get started for free