An Introduction to Configuration Management Tools
On a larger context, configuration management (CM) deals with the process of ensuring that a system performs in a desired, consistent state as changes are made over time. Although the idea did not originate in the IT industry, the term generally refers to server configuration management.
Automation has a major role to play in server configuration management. It is used to aid the server reach a desirable state, defined earlier by provisioning scripts by utilizing a tools distinct language and features. As a matter of fact, automation is the core of configuration management of servers and therefore it is common to refer configuration management tools as Automation Tools or IT Automation Tools. Such tools are also commonly referred to as Server Orchestration or IT Orchestration, due to their capability to manage one to hundreds of servers from a centrally controlled machine.
Also Read : BlockChain: Re-Imagining the Way We Trust
The popular choices for configuration management tools are Puppet, Ansible, and Chef. Even though each of these tools posess their own unique features and work in slightly different ways, they are all driven by an objective i.e to ensure the system performs in the state described by provisioning scripts.
Major Configuration Management Tools: A Comparison
Fig 1: Configuration Management Tools: An Overview
The availability of the three configuration tools in case of a main master or server failure is very high. This means that there are multiple servers or multiple instances present and if the main master or server fails, there is a backup server as a prompt replacement.
In case of Chef, when there is a failure on the primary server (generally called chef server), it is replaced by a backup server. Whereas Puppet has a multi-master architecture i.e if the active master goes down, another master steps in to take its place.
Ansible runs with a single active node, called the Primary instance which in case of a failure is replaced by a secondary instance.
Configuration or Ease of Setup
Speaking of ease of setup and installation, Ansible wins over the other two tools as it has an ‘agentless’ architecture whereas Chef and Puppet has a master-agent or master-slave architecture. The ‘agentless’ architecture means that Ansible has only one master running on the server machine, but no agents running on the client machine. It uses a SSH connection to login to the nodes or client server that needs configuration. Also, the client machine VM requires no special setup, which makes it easier to setup.
Chef has an extra component called workstation, which contains all the configurations which are tested and then passed on to the central Chef Server. While, Puppet has a certificate signing between agent and master. Both adds a layer of complication to the installation process of these configuration management tools.
Of all the three configuration tools Ansible dominates over the others with regards to management as it supports YAML language and uses both push and pull configurations.
Explaining configurations, there are two types namely ‘pull’ and ‘push’. Pulling all configuration from a central server to the slave nodes using no commands is called ‘pull’ configuration while push configuration involves all configuration in the server being pushed to the nodes using specific commands.
With respect to configuration language, YAML (Yet another Markup Language) is regarded to be the easiest one as it resembles English and uses a human-readable format. Whereas, Puppet DSL (Domain Specific Language) and Ruby DSL languages create difficulties in management.
To manage configurations using Chef you need to be a programmer as it offers configurations in Ruby DSL while Puppet uses its own language called Puppet DSL.
Scalability is a major factor considered by the enterprises before choosing a tool. All three configuration tools fares equally as each one of them are capable of managing large infrastructures while handling the burden of scaling configurations. Having said that, there is a slight difference between them with respect to scalability on account of the complexity of their configuration language.
With respect to interoperability, all three tools, Chef, Puppet and Ansible have roughly the same features. For all three configuration tools, main servers or control machines work on Linux or UNIX machines while slaves or nodes can be configured on Windows machines.
Finally, yet importantly pricing too plays a critical role in decision making in the adoption of any product or technology.
You can build, deploy Chef Automate in USD 137 per node annually. While, price range for Puppet ranges from USD 112 per node annually for standard support plans to USD199 per node annually for premium plan.
Ansible Tower can be obtained for USD10000 annually for standard IT operation upto 100 nodes with 8*5 hour support where premium plan is available for USD14000 annually with 24*7 support.
Of the three, on choosing the best it should be said that there is nothing like the best tool. All three configuration tools have their own advantages and disadvantages. Each tools employs different approaches to automation and feels right for specific user segments in the same target space. The final judgment is totally dependent on your organizational needs as well as your organizational environment. Contact Us for more support.