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
Progress Chef
Score 6.5 out of 10
N/A
Chef IT infrastructure automation suites were developed by Chef Software in Seattle and acquired by Progress Software in September 2020. The Chef Enterprise Automation Stack is an integrated suite of automation technologies presented as a solution for delivering change quickly, repeatedly, and securely over every application's lifecycle. The Chef Effortless Infrastructure Suit is an integrated suite of automation technologies to codify infrastructure, security, and compliance, as well as…
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.
Chef is a very nice tool for establishing and maintaining a consistent configuration across a range of servers. In addition, Automate allows the continued monitoring and maintenance of servers so they don't drift from established standards. Overall, it deals very well with complex systems. Chef is slightly less applicable for a micro-services approach where the servers are replicated from a simple and known starting point.
Chef is very easy to learn. Written in ruby, Chef code is high enough level for non-ruby coders to get a general idea of what the script is doing.
Chef can be a one stop shop for writing code, testing infrastructure, and deployment of applications.
The Chef support team is very helpful in their auto manager support as well as active support in their Slack channels from development engineers & architects.
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.
One main concern with Chef is the maintainability of Chef master.
The Chef-client should be installed on every node we want to do any automation.
It is mostly Ruby and there's a learning curve. Need to understand the fundamentals of Chef very throughly to play around with attributes, templates etc etc.
The Chef-client agent needs to be run on the nodes frequently to update the details of it state to master. And also to index the nodes based on tags.
The suite of tools is very powerful. The ability to create custom modules allows for unlimited potential for managing all aspects of a system. However, there is pretty significant learning curve with the toolset. It currently takes approx 3-4 months for new engineers to feel comfortable with our implementation
It loads quick enough for basically all our systems. Because we have this for local dev environments, speed isn't really a big issue here. Yes, depending on the system, sometimes it does take a relatively long time, but it's not an issue for me. One thing that is annoying is that if I want to make a small change to a cookbook and re-run the Chef client, I can't just make the change in the cache and run it. I have to do the whole process of updating the server.
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
Support for Chef is easily available for fee or through the open source community as most the issues you will face will have been addressed through the Chef developer community forums. The documentation for Chef is moderate to great and easily readable.
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.
Chef is the more developer-oriented of the three main tools in this space. It has a steeper learning curve as a result but it allows you to do more. Puppet seems to be more geared towards automated the management of the operating system. Ansible is an excellent tool but requires you to allow SSH connectivity into all of your instances.
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.