Puppet vs. Chef vs. Ansible vs. SaltStack

Share It!

Puppet, Chef, Ansible, and Salt were all built to make it much easier to configure and maintain more than hundred of servers. It’s not mean that smaller companies won’t take benefit of these tools, as automation and orchestration generally make administrator life easier in an infrastructure of any size. All four configuration management tools are designed to reduce the complexity of configuring distributed infrastructure resources, enabling speed, and ensuring reliability and compliance. In this article, I am trying to explore my findings.

Ansible

See Also:
1. How to Install the Chef Server on CentOS/RHEL 5/6/7
2. What is Chef Automation Tool and It’s Features
3. Install and Configure a Chef Workstation on CentOS/RHEL 7/6
4. How to connect Chef Server with Nodes on Linux

Puppet

Puppet is a configuration management tool that is used in deploying, configuring, managing, maintaining, a server machine. Puppet keeps the configuration of your hosts under check and can be used in one shot to configure a machine like installing package, editing and configuring, create and manage users required etc. The main added advantage is that you can manage the configuration of almost all open-source tools available out there, using puppet.

The Puppet Enterprise product offers the following capabilities:

  • Orchestration
  • Automated provisioning
  • Configuration automation
  • Visualization and reporting
  • Code management
  • Node management
  • Role-based access control
  • Pros:

  • Dynamic people group support around development tools and cookbooks.
  • Well-established support community through Puppet Labs.
  • Most complete Web UI in this space.
  • Simple installation and initial setup.
  • Powerful, local ability to work with shell-level develops.
  • Strong reporting capabilities.
  • Cons:

  • For more advanced tasks, you will need to use the CLI, which is Ruby-based (meaning you’ll have to understand Ruby).
  • Support for pure-Ruby versions (rather than those using Puppet’s customized DSL) is being scaled back.
  • Because of the DSL and a design that does not focus on simplicity, the Puppet code base can grow large, unwieldy, and hard to pick up for new people in your organization at higher scale.
  • Model-driven approach means less control compared to code-driven approaches.
  • Pricing:

    Puppet Enterprise is free for up to 10 nodes. Standard pricing starts at $120 per node. (Get more info here.)

    Chef

    Infrastructure automation

  • Cloud automation
  • Automation for DevOps workflow
  • Compliance and security management
  • Automated workflow for Continuous Delivery

    Pros:

  • One of the most flexible solutions for OS and middleware management.
  • Designed for programmers.
  • Strong documentation, support and contributions from an active community.
  • Code-driven approach gives you more control and flexibility over your configurations.
  • Chef offers hybrid and SaaS solutions for Chef server, analytics and reporting.
  • Cons:

  • Requires a steep learning curve.
  • Initial setup is complicated.
  • Doesn’t support push functionality.
  • It’s not a simple tool, which can lead to large code bases and complicated environments.
  • Pricing:

    A free solution is available to get you started. Pricing starts at $72 per node for the standard Hosted Chef and is $137 per node for the top-of-the-range Chef Automate version.

    Ansible

    Streamlined provisioning

  • Configuration management
  • App deployment
  • Automated workflow for Continuous Delivery
  • Security and Compliance policy integration into automated processes
  • Simplified orchestration
  • Pros:

  • SSH-based, so it doesn’t require installing any agents on remote nodes..
  • Suitable for environments designed to scale rapidly.
  • Shares facts between multiple servers, so they can query each other.
  • Easy installation and initial setup.
  • Syntax and workflow is fairly easy to learn for new users.
  • Sequential execution order.
  • Supports both push and pull models.
  • Playbook structure is simple and clearly structured.
  • Cons:

  • Less powerful than tools based in other programming languages.
  • SSH communication slows down in scaled environments.
  • Requires root SSH access and Python interpreter installed on machines, although agents are not required.
  • The syntax across scripting components such as playbooks and templates can vary.
  • Variable registration is required for even basic functionality, which can make easier tasks more complicated
  • No consistency between formats of input, output, and config files.
  • Pricing:

    The Self-Support offering starts at $5,000 per year, and the Premium version goes for $14,000 per year for 100 nodes each. (Get more info here.)

    SaltStack

    Orchestration and automation for CloudOps

  • Automation for ITOps
  • Continuous code integration and deployment
  • Application monitoring and auto-healing
  • DevOps toolchain workflow automation with support for Puppet, Chef, Docker, Jenkins, Git, etc.
  • Pros:

  • Effective for high scalability and resilient environments.
  • Easy and straightforward usage past the initial installation and setup.
  • Strong community.
  • Their DSL is feature-rich and isn’t required for logic and states.
  • Active community and support.
  • High scalability and resiliency in the master model with minions and hierarchical tiers.
  • Cons:

  • Installation process may not be smooth for new users.
  • Documentation is not well managed and is challenging to review.
  • Web UI offers limited capabilities and features.
  • Not the best option for OSs other than Linux.
  • The platform is new and not entirely mature as compared to Puppet and Chef.
  • Pricing:

    Free open source version, and a SaltStack Enterprise version that is based on an annual per node subscription basis

    Automation Tools Conclusion

    Reference: http://blog.takipi.com/deployment-management-tools-chef-vs-puppet-vs-ansible-vs-saltstack-vs-fabric/

    Enjoy it!

    No Responses

    Leave a Reply

    Your email address will not be published.