The Present and Future of Configuration Management

The importance of configuration management is written about a lot these days, mainly in terms of how to convince your manager of its importance and which tool is the best. What we don’t see a lot of discussion around is the current state and where things are going, so I will address that in this post.

Configuration management is not a new topic, it’s been around in some form or another for the last 15+ years. A lot of it started off with home-grown scripts, and then we started to see some community and commercial products being developed, like cfengine. Now we have several more really good open source tools to choose from including Puppet, Chef, Ansible, and Salt. Each of these tools has their place in an IT environment depending on the environment’s needs and priorities.

But while each tool offers different features, they all share a few major benefits that I’ll cover here. The most important feature that modern configuration management tools have is modular code that can be deployed to your environment that helps configure a VM, device, or application in a specific manner. The modules help ensure that the configuration you want stays on that host even if someone manually changes it. These modules can also be downloaded from central repositories, shared among people, and customized for each environment. You start putting these modules together and you can begin to build out your entire infrastructure. A lot of the tools have started to include integration with your cloud directly to be able to handle everything from the provisioning state all the way to final production-ready configuration, and most of the time it’s done very quickly, typically in five to ten minutes.

Another important feature they provide is consistency. When you have a specific module that knows how to deploy a VM or make a configuration change, you can be certain it is always done the same way. Human error, like typos or other simple mistakes, is removed. This also promotes greater uptime as there are less problems or custom changes that get introduced into an environment.

It used to be the big hype if you could manage all the configuration of your server/VM without having to touch it, but that really is mainstream these days from a technology perspective. What is really interesting now is starting to see the automation reaching out of the VM and into the network to control the load balancers, the firewalls, and the rest of your infrastructure. We are now starting to see a trend of really being able to automate and deploy an entire network without having to manually touch it. Now a lot of the configuration management tools are starting to integrate basic orchestration capabilities that will really allow them to reach beyond that single vm, device, or application and manage an entire service.  

Imagine being able to design out a network/application stack and then having it automatically deployed without someone ever having to manually submit requests for code deployment, VM’s, IPs, DNS, firewall changes, load balancers, etc. You can now push a button and have your entire application deployed and in production without having any manual work done to slow the process. That’s potentially a lot of man hours saved with full automation and orchestration.  Orchestration allows you to start tying all the modules together from your configuration management and start pulling in those parts of your infrastructure that can’t talk to directly to configuration management, such as a load balancer and firewall. Orchestration also helps ensure that you don’t add a new VM to the load balancer until the application is deployed and ready to take traffic.

Hopefully by now you’ve seen and understood all the great benefits of using a configuration management tool, if you just have a few servers, physical, virtual, private cloud, or hybrid cloud solution. The next steps that really need to be understood is how you can push the tools to provide full configuration management of your environment, and also making sure that you choose the right vendors that also believe in this philosophy. When you have vendors that are also committed to automation you will be able to save even more man hours, streamline processes, and provide greater stability through consistency.

At AHEAD, we’ve invested in understanding many of these configuration management vendors and exploring how their products function in a real world environment. In our Lab and Briefing Center, we provide you with the opportunity to explore these vendors and test them for yourself. To learn more, check out our configuration management briefing below.