Choosing the best configuration management tools is not easy. There is a raft of options on the market, ranging from simple command-line interface scripting tools to full-blown packaging and provisioning systems, as well as application release automation and orchestration tools. The key to selecting the best configuration management tools is to focus on what the organization needs are and analyze which of the many offerings will suit your enterprise.
A single tool will not alone keep the end-to-end development, testing, configuration management, provisioning, monitoring and management processes in sync with one another. However, allowing different process stakeholders to manage themselves just go their own way is a recipe for disaster -- identifying issues and rectifying them becomes impossible when too many disparate systems are involved.
Therefore, consider the full context of the whole process when choosing the best configuration management tools. Ensure that what you select fits in with existing tools in an easy enough manner to enable full end-to-end monitoring and reporting.
Match CM tools to your organization's needs
Once a full understanding of the overall process is in place, a key decision point occurs around the level of technical complexity that your own organization can manage. Many CM tools require a deep knowledge of programming languages Ruby or Python, as well as the capability to craft complex scripts that can then be utilized repeatedly via process automation. Most tools will come with some sort of basic graphical user interface. An advanced GUI tends to be a costly option, such as Puppet's Enterprise Console and Red Hat's Ansible Tower, but it can significantly lower the technical barriers.
Organizations also need to make sure that their chosen tool supports the complete set of platforms in use – for example, a homogeneous Windows environment can be well served by Microsoft PowerShell Desired State Configuration (DSC), whereas heterogeneous environments will be better served through the use of one of the other CM systems that support multiple operating systems. However, ensure that support for virtual machines (e.g., VMware and Microsoft Hyper-V at a minimum) along with containers (e.g., such as Docker, rkt and Mesos) are in place to enable better workload flexibility and portability for the future.
The best configuration management tools support the different types of architectural platform that the organization is, and will be, using. Make sure that multiple cloud systems are included in how the CM tools operate – don't just go for the big three of Amazon Web Services, Google and Microsoft Azure. Make sure OpenStack is supported, and that the system is open enough to support other cloud platforms, such as IBM's SoftLayer.
Think about what CM tools will manage
How inclusive should the tool be? Do you just want to manage the provisioning of software into the operations environment, or do you want to support a full DevOps environment? Chef and Puppet are often used with the open source continuous integration pipeline tool, Jenkins to provide upstream capabilities, including software project management and build management. With downstream capabilities comes the need for managing how applications and functions integrate and operate together. Here, orchestration software from vendors such as Flexiant and Automic provide capabilities that can work alongside CM tools that have an API capability. For example, Flexiant integrates deeply with Chef to enable the deployment of systems across multiple clouds. Automic provides application release automation and database tracking and monitoring, with Chef, Puppet and other tools being pluggable into the overall Automic system.
Different sizes of organizations have different needs when it comes to choosing the best configuration management tools. Large organizations require CM tools that are capable of pushing new configurations out to dispersed systems in a fully managed and monitored manner. They turn to tools such as Puppet, Salt and Ansible. Small organizations can often manage with a simpler approach like a pull provisioning mechanism, where the target machines manage the scheduling of the installs, rather than a central master server or client doing so, may be sufficient for managing a few tens of servers and applications. Slaughter is one such example.
What CM tools do you already have?
Another factor to take into account is whether you already have a CM tool hidden within an existing system. For example, Microsoft's PowerShell DSC tool is preinstalled in more modern versions of Windows and Windows Server -- from Windows 8.1 and Windows Server 2012 R2. Red Hat's own original configuration management tool, Satellite, has had open source Puppet built in since version 6. SUSE has used SaltStack as the foundation for its configuration management capabilities since version 3.0 of SUSE Manager. Red Hat and SUSE are Linux server OS providers. Using such a built-in system can provide benefits in that the CM tool will have been integrated into the heart of the system. However, even here, the enterprise versions of the CM tool may add enough to the basic tools to make subscribing to the tools worthwhile.
This then brings in the matter of whether to go full free open source software (FOSS) without any paid support, an enterprise version of a CM tool -- including support and often extra functionality -- or a commercial of the shelf (COTS) system.
Quocirca recommends that pure FOSS is only used where the organization has a highly competent technical group which is capable of dealing with problems, documenting them and sorting out the wheat from the chaff when it comes to adding functionality or finding patches and workarounds from the open community working on the CM tool. Also, if a pure FOSS model is the direction that you want to take, ensure that the chosen tool has a vibrant and current community around it. The last thing you want to be up against is maintaining the software completely on your own.
Enterprise versions of FOSS are great for many organizations where these in-depth skills cannot be guaranteed -- the organization gets the advantage of no license fees, but pays a subscription for support. Make sure that the levels of support offered meet the needs of your organization, though -- some support offerings are English-only or only available during core US working hours, through premium rate telephone numbers or even restricted to email communications.
COTS software, such as Electric Cloud, Automic Software, Serena Software and others, is generally moving toward subscription models, and many are offering software as a service versions, where no installation is required on-site. This can reduce the costs of installing and managing a system. Many of the COTS systems find themselves bundled into the application release automation group, and some bleed into the orchestration area.
Overall, the best configuration management tools vary but are out there for any organization, no matter what size, complexity or skill level available within the company. However, if you just carry out a web search to identify all the possible systems out there, it will lead to mental overload. Ensure that you have an understanding of what characteristics you are really looking for in a CM system -- and then choose the right tool(s) for the job. Careful analysis of the factors discussed will ensure that you choose the best configuration management tools for your organization's current and future needs.
Read how configuration management tools from Puppet help to enable a DevOps environment.
Find out why configuration management can only benefit your company.