How to Use Configuration Management For Continuous Delivery Of Software

Thriving Technologist

As described in the video on isolating customers from your changes, there are typically a minimum of three environments into which software can be deployed.

There are configuration settings used by your application, service, or product with software that need to change depending on the environment. These are called environment-specific configuration settings, and this video describes an approach for managing their values.

You may have configuration settings in several files like the web.config (.NET), database.yml (rails), or .json files (nodejs) as examples. The settings in these files that are specific to an environment need to be set appropriately whenever your product and its components are deployed.

Though there are utilities and tools often available that will set these appropriately for each type of file, this makes deployment more complicated since there is still duplication.

The same database connection may exist in multiple files that all need to access the same database, but are for a different technology for example.

Rather than using these technology-specific approaches, a more efficient method that will help your team be more agile is to centralize all environment specific configuration in one master file or list. Then you need to use some script or technology that can read those settings and overwrite the values in the source code or configuration files once deployed to an environment to the correct setting.

The more configuration settings your application has, the more important it is that you create automated tests to verify that they work properly. One of the most costly ways to deliver software is to have an extremely flexible set of configurations and not have an automated way to test all of the combinations. The time spent manually testing this is much less than the investment necessary to build out the automation - and will pay you back time and again in time to market with future changes.

Join my Patreon:  https://thrivingtechnologist.com/patreon

Learn about one-on-one career coaching with me: https://thrivingtechnologist.com/coaching

TechRolepedia, a wiki about the top 25 roles in tech:  https://thrivingtechnologist.com/techroles

The Thriving Technologist career guide:  https://thrivingtechnologist.com/guide

You can also watch this episode on YouTube. 

Visit me at thrivingtechnologist.com

To listen to explicit episodes, sign in.

Stay up to date with this show

Sign in or sign up to follow shows, save episodes, and get the latest updates.

Select a country or region

Africa, Middle East, and India

Asia Pacific

Europe

Latin America and the Caribbean

The United States and Canada