Deployment/Configuration Tools Comparison

Here are some of the major deployment/configuration tools and their features:

Puppet
Pros:
  • Easy installation
  • Supports all majors operating systems
  • GUI is user friendly
  • Stable and mature solution
Cons:
  • Built with Ruby, unlike other tools that are Python-based
  • New users must learn Puppet DSL
  • Remote execution is challenging

More on puppet

Chef
Pros:
  • Meant to be used by programmers
  • Useful for large-scale development
  • Stable and mature solution
  • Good version control capabilities
Cons:
  • Complicated tool to use
  • Familiarity with Ruby is required
  • Documentation can be overwhelming

More on Chef

Ansible
Pros:
  • Easy and fast deployment
  • Secure SSH connection
  • Meant for environments that can scale rapidly
  • Push and pull models are supported
Cons:
  • Basic support for Windows
  • GUI is not very interactive
  • Difficult to locate syntax errors with YAML

More on Ansible

SaltStack
Pros:
  • Implemented in python and controlled with YAML files which are simple to understand
  • Fast communication between master and client
  • Provides high scalability and resiliency
  • Vibrant support community
Cons:
  • Difficult to set up
  • Salt GUI is under development
  • Does not support variety of Operating Systems
Docker: Containers
Pros:
  • Biggest advantage: Containers use less resources
  • Well documented
  • Fast
  • Consumes less space compared to VMs
Cons:
  • Security
  • Platform dependent
  • Storage is complicated
Docker Swarm: Cluster Management
Pros:
  • Easy Installation and Use
  • Native feature to docker hence possess faster operation with docker containers
Cons:
  • No native monitoring or logging tools, only 3rd party tool available to suffice such operations
  • Provision for only manual scaling
  • Less capable for failures, recovery and such functionality

More on DockerSwarm

Kubernetes: Cluster Management
Pros:
  • Tool built with logging and monitoring capabilities
  • Open-source, scalable and powerful
  • Stable and complete solution in the market, success stories : Google, Pokemon GO
  • Auto-scaling and Failure handling with CPU utilization
Cons:
  • Not easy to use - a more complicated setup and configuration

More on Kubernetes

Sources