Do I need IT configuration management (CM)? In a single word, broad brush answer -- "Yes."
Why? Consider the simplest aspect of IT configuration management -- asset discovery and management. Regard your organization's IT infrastructure; are you sure that you know the components that comprise your IT systems and, if so, how do you monitor and keep track of them?
In the past, organizations have had up to a +/-20% error rate on average between what they expected to be in their IT estate and what was actually there, according to research conducted by Quocirca. Let's start at the far end -- you find that you have 20% more IT equipment than you expected; is it all licensed and under maintenance contract? If not, what impact would there be on the business if the equipment failed or there was a requirement for an external IT audit?
On the other end, an organization with about 20% less IT equipment than expected is probably paying too much for licenses and maintenance at a time when the business expects staff to clamp down on costs.
The same can be said for software: underestimate your software environment and you are opening yourself up to extra license charges and fines; overestimate it and you may end up overpaying for the different software vendors' platforms. In the case of hybrid cloud, knowing what hardware you are using is less important than knowing which services are being used and what the cost of each is.
Having a system that pulls all of this together, as well as ensuring that you know exactly which hardware and software assets you have in place and how they are contextually connected, is a key to controlling the costs of your IT platform.
IT configuration management software and the DevOps environment
While asset management and configuration management are not the same, without the knowledge of which hardware and software assets are available across your whole IT estate, you cannot gain the greatest value from the CM platform.
There are levels of granularity and nuance required within IT configuration management systems to optimize how they work and the value that they provide. Another factor to look at is the timeline for a new application or new functionality to become available for a business after it is initially requested. Much of this is determined by existing waterfall approaches to project management, but as the DevOps movement accelerates, the presence of IT configuration management will likely become the primary factor in determining the timeline of delivery.
This is where the newer CM tools come into effect. The ability to seamlessly join the development, test and production environments together in a controlled and manageable manner enables the DevOps environment to flourish, providing additional value to the business.
By using an effective and comprehensive CM tool, code can be packaged up as needed and provisioned across the various stages of the process. Developers can use the tools to ensure that the repetitive task of creating new application bundles can be carried out with complete consistency; the CM tool can then move this package through to the test environment when the developer is ready. Once testing is complete, the knowledge that the CM tool acquires of which physical and logical resources are required and what dependencies there are between the packaged code and the physical world can be managed automatically.
An example of configuration management software's role in DevOps involves a developer working with the open source toolkit set of Jenkins alongside Puppet or Chef. Although not a single tool set, these tools demonstrate just how configuration management can work in the DevOps environment. The developer controls their code builds through Jenkins and then uses Chef or Puppet to automate the delivery of the code through the test and production stages.
Chef and Puppet, in addition to other CM tools, can function as a provisioning product by packaging the code up, preparing it for runtime and pushing it out as a full, working system. Dependencies between different software packages, dependencies on physical hardware and management of required resources can all be controlled via these systems. Dependencies can also automatically search across a complex, multi-center IT platform and identify the best places for deployment -- and so remove a lot of the hard, error-prone manual activity that is often involved.
Configuration management process and the IT environment
These IT configuration management systems can be complex, but that shouldn't be the selling point. A lot of tech people don't mind this -- the use of a command line interface is seen as a badge of honor, even if there are easier ways of doing things. For a business, those badges of honor are meaningless. Effectiveness and efficiency are essential characteristics for businesses to take note of in IT. In addition, anything that makes the automation of configuration management processes easier and more accessible for less skilled users will help these systems function better.
For example, a sysadmin may be an excellent scripter; they may be able to rattle off whole lines of script quickly and get it right 99 times out of 100. The 100th time is a problem though -- that is where everything can go completely wrong. It is far better for the sysadmin to notice that script when checking if it works effectively -- and then ensure that it continues to run efficiently.
With good CM tools in place, it also becomes far easier to deal with the dynamic environments of modern day. The relatively static platforms of the past are essentially dead now -- highly virtualized and cloud platforms require tools that can better understand the variability in the physical host systems that a workload utilizes and allow for it. Getting developers, sysadmins and others in the CM process chain to continually change their code and scripts to allow for such a dynamic environment is asking for trouble -- CM systems that can automatically deal with change and can orchestrate the CM process in context with the dynamics of the platform are key to a successful virtualized environment.
Effective CM tools will also be able to dynamically manage resource provisioning to workloads, creating systems that are able to optimally deal with cyclical workloads and spikes.
Whichever route your organization chooses, the aim has got to be to improve business value. Here, the use of CM tools to better enable and manage a DevOps environment while creating a fully controlled continuous development capability must not be overlooked.
IT configuration management is not a simple, single process that can be easily automated. It is a whole raft of different processes that often seem to be tangential to each other, yet all have to work and come together to provide the service that a modern organization requires.
So -- back to the original question -- do you need CM? The answer is a resounding, "Yes." Undoubtedly -- it makes little difference the size of the organization, what region of the globe it is in or which vertical market you operate in. As long as you have a need to manage the creation, provisioning and management of software workloads within your organization, CM is the only way to keep up with, or stay ahead of, the competition.
Learn more on why configuration management systems are so essential
Read about how to select and successfully install automated CM tools
Learn more about modern open source configuration management tools and how they can benefit your company