In a world where the IT platforms that organizations depend on grow more complex, IT professionals must change their mindsets to keep up with the rapid dynamics in the market. Automation is the key to breaking through to the other side of the new computing paradigm; a major aspect of this is known as configuration management. Configuration management can be defined as the detailed recording and updating of information that describes an enterprise's hardware and software, which enables organizations to successfully provision new code and application packages and manage them throughout the lifecycle.
Gone are the days where an IT project involved buying a server or two, setting them up and installing some specific software to create a self-contained, relatively air-locked environment for a subset of users. Virtualized platforms are where organizations are now focusing -- and managing these requires a configuration management system that understands both the virtual and physical environments. Being able to provision, manage and move workloads across virtualized platforms -- including hybrid clouds -- has to be a key aim for any organization.
When a new IT system is created, the organization should have defined what the functionality needs to be. Storage, computation, network bandwidth, the load balancer and firewall are just some of the aspects required to create a new working system. However, it takes time to create the IT system -- and by the time it is ready, the organization's needs may have changed. An effective CM system gathers all the aspects that are required to create a working system, dispatches them into an operational environment in a completely managed manner and then monitors that workload and enables patching and upgrades to be carried out as rapidly and effectively as possible.
A good configuration management system will lower the costs of managing an IT platform for an organization. It will provide much greater uptime of the platform, as problems through human error are avoided. It will also provide a much better and deeper view into what is happening across the IT platform and help identify the root cause of any problem. Lastly, a strong CM system can give an accurate view of what hardware and software assets are in place, therefore avoiding over- and under-licensing and excess maintenance costs.
Hardware and software
There are two main parts to configuration management -- but both should be dealt with in a closely matched manner. The first is at the hardware level -- in either physical or virtual form. Any IT platform has dependencies on its physical attributes such as the type and number of servers, storage systems, network switches, routers and cabling. However, if that physical hardware is then aggregated into virtualized pools of resources, a CM tool can then ensure that it allocates resources on a real need basis, rather than on an estimated need.
The other aspect is software configuration management -- and this is where it can get a little more complex. An organization will have its core commercial software applications, such as CRM or ERP and may have multiple instances of these, each working to different patch and update levels. These applications are placed on top of databases and on operating systems with middleware gluing them together with analytics engines and other functions. All of these system parts need to be properly identified and their relationships with one another understood in order to function properly. Only through the use of a suitable CM tool can a complex software system like this be managed successfully, ensuring that Application A which requires an OS at a certain patch level, is not made inoperable through installing a patch that does not belong there.
Historically, it was possible to get systems that could both create scripts and run through the process of setting up known software -- from installing application servers and databases through to the application itself. Generally speaking, there was still a degree of manual intervention that was required -- IP addresses, LUN pointers and other settings often had to be manually applied.
In the new world, workload portability is all-important. No one knows when a workload will need to be moved -- whether it is from one part of an owned IT platform to another or across a hybrid private/public cloud platform. Therefore, manual intervention has to be minimized if not eliminated completely.
Configuration management tools provide elastic resources
This is where modern CM tools come into effect. Many of these tools can gauge the ideal initial size of the virtual resources that should be allocated for a specific workload, based on initial data provided by a systems architect. Indeed, some systems aim to calculate a workload's required resources based on its test environment metrics and the defined user group and transactional load. Even where the system gets this a little wrong, the use of dynamic elastic resources -- resources that can grow and shrink as required -- can overcome this.
Once that resource size is defined, the overall package of required software can be created. There are two main ways of doing this in the modern world -- either through virtual machines (VMs) or through containers.
Although very different in how they work, VMs and containers require the same capabilities from a CM tool -- the software involved needs to be brought together in the right way and then provisioned onto the IT platform in such a way that optimizes the resources being utilized. That workload then needs to be monitored and managed -- and updated and patched as necessary.
When looking for CM tools, it is critical that the tool selected can embrace both methods of working -- VMs and containers. As the world of containers is far more dynamic than the world of VMs, any tool must be flexible enough to embrace change as it goes along. Choosing a tool that is dependent on just VMs or just containers, e.g., Docker, will lead to problems in the future as new means of dealing with workloads come through.
Configuration management is necessary in DevOps
The capabilities provided by a strong CM process are essential for companies aiming to adopt a DevOps approach. DevOps can be defined as the operational philosophy that promotes better communication between development and operations teams. As previously stated, CM tools do more than just manage a system through development and test to production runtime. They also have to monitor and manage the workload when it is in the production environment, enabling easy patching and upgrading alongside the workload portability. As such, a CM tool is critical when it comes to DevOps. Total control across the lifecycle from development through test to live production running requires a single tool that can ensure that everything is fully managed at all times. This also must include the capability to roll back the code that worked well in the development and test stages but has problems in the production environment.
CM tools need to be all-embracing. Buyers should look at what is best for them -- the creation of a CM system built from a collection of top-of-the-line components, or an inclusive, single vendor CM platform, with only critical capability gaps plugged through adding in point tools.
Learn why your company should adopt a configuration management system
Google shares its 54 site reliability engineering prowess