Puppet Enteprise is an IT automation and configuration management solution that enables users to manage and automate infrastructure and complex workflows. The vendor states Puppet Enterprise combines both model‑based and task-based capabilities in a way that enables organizations to scale their multi-cloud infrastructure as their automation footprint grows, with more flexibility from both agent-based and agentless capabilities.
N/A
Salt
Score 6.2 out of 10
N/A
Built on Python, Salt is an event-driven automation tool and framework to deploy, configure, and manage complex IT systems. Salt is used to automate common infrastructure administration tasks and ensure that all the components of infrastructure are operating in a consistent desired state.
Most of the major issues that people had with the language have been addressed in Puppet 4 which primarily pertain to the limitations of the language and its ability to scale. It would be nice to allow for full ruby support as an unsupported option though so developers are able to reference their own data sources dynamically.
Managing heterogeneous environments of large numbers of nodes, especially nodes which may need sudden changes (security updates, for instance), or frequent replacement, is a strength for Saltstack. Simplicity is not a strength for Saltstack. In a homogenous environment (all CentOS 7, for example, with no Debian or Windows) I might recommend using Ansible instead - it is less flexible and granular, but simpler to configure.
A superb remote execution framework! SaltStack allows us to easily program numerous functions on top of it. For example, we developed a fast parallel asynchronous deployment tool that handles all software deployment, including interdependent service management.
Configuration management is now easy. We take advantage of this to automate (in tandem with AWS tools) the stand-up of all servers and services. It is also relatively easy to create new configuration management states for software not yet supported by the community (e.g. Grafana).
Flexibility. Numerous small utilities have been built which simply wrap around SaltStack to allow tedious tasks to become easy.
The complexity can get a little overwhelming in a more collaborative deployment methodology across multiple platforms and data centers.
Some external changes to Puppet like the new Puppet 4 architecture can cause considerable time consuming migration efforts especially if you have a lot of legacy classes and configuration that do not conform readily to the new design.
Puppet has top class support. You can simply mail them with their query and they will respond to your query in a timely manner. We do have enterprise license for puppet. Also there is a vibrant community for puppet out there. So even if you dont purchase a premium support option you can simply google your queries and get answers
We haven't had to spend a lot of time talking to support, and we've only had one issue, which, when dealing with other vendors is actually not that bad of an experience.
Puppet was selected before I joined the team, had it been my choice I would have much rather went with Chef as it has the ability to do things that Puppet has not yet added to their system such a the ability to quickly query what host currently are allowing puppet to maintain their files or the ability to run remote commands without having to include it in a manifest like Chef does with the knife command. Salt allows you to do similar things to the knife command that is included with Chef, and also allows you to transfer files quickly to multiple host at once with a short simple command.
I've used shell scripts over ssh, custom in-house deployment tools, Chef, and SaltStack. I've evaluated Ansible, but I was never happy with performance over SSH. Chef's loose configuration data model and lack of philosophy and conventions around use makes it difficult for a team to share responsibility for configuration code. Needing to use additional tools to do orchestration for cross-host/agent dependency relationships made me look for more. SaltStack, while not as mature when I first tried it, impressed me with its speed and elegant design
With all the DevOps and automation that we have going on, we save a ton of time on the configuration of the server. It's safe to say that configuring servers via console or via UI is a thing of the past.
We try to get all the things done by using a centralized repo (GitHub). Puppet is one tool that actually gets the actual work done.
The small amount that we spent on purchasing premium Puppet is completely justified because of the time and effort that this tool actually helps us save.