12 ms·
Just finished writing a book where I compare the experience of using Puppet, Chef, Salt, and Ansible. I use each tool to build an identical system so you can ge
by mattjaynes 13y ago
Just finished writing a book where I compare the experience of using Puppet, Chef, Salt, and Ansible. I use each tool to build an identical system so you can get a sense of how each one approaches the same problem.
The most valuable thing I got from that project was my introduction to Ansible. It was really a shining star in the pack.
I have to give credit to its predecessors (CFEngine/Puppet/Chef) and its competitor Salt all for being great tools in their own right. But it is Ansible that has the power and simplicity to really take on the ultimate competitor: manual installs and hodge-podge shell scripts.
Many of you would be shocked at how many tech companies still don't use any kind of configuration management (CM) tool.
When you think about it, a company's server setup is essentially the foundational "app" that the actual business app runs on. So, not using a CM tool is kinda like having no tests and no version control for your most important software.
Sound insane? It is.
Most developers would laugh at a company that had zero tests and didn't version control or even backup their code. But that's exactly what many companies do with their systems.
Yet, for many businesses, they don't realize the astronomical risks and costs of this neglect.
At a recent client job, the former system administrator set up all their servers manually and left ZERO documentation. I had to spend a few weeks devining what he did and try to capture everything into a CM tool (Chef in this case). Not one week after I finished doing that, one of their key servers inexplicably failed. Fortunately, I had done the work needed and they were able to bring up a replacement within minutes. Had that work not been done, the company would have been severly crippled and might have even died due to the days of downtime that would have been inevitable.
That's just a tiny example. The cost savings for a business are huge when the team uses a CM tool. When it takes a couple minutes to bring up a new server instead of hours/days/weeks, that's a huge savings (assuming your engineers cost greater than $0).
With Ansible, there is no more an excuse for not using a CM tool. It's so simple that it can actually be easier than doing a manual install or writing a shell script. Some of the more complex CM tools take difficult weeks to learn, but with Ansible you can be up and running with confidence in a couple hours.
Not only that, but Ansible gives you robust remote execution capabilities right out of the box along with a lot of other cool stuff.
Shameless plug:
If you want to see Ansible in action and how it compares to the other CM tools, check out my book. Just barely launched a few days ago: http://devopsu.com/books/taste-test-puppet-chef-salt-stack-ansible.html http://devopsu.com/books/taste-test-puppet-chef-salt-stack-a...
- DannoHung 13y agoI'm probably going to buy your book because getting our servers to be managed in a sane way is something I'm slowly trying to drive at our company. But I noticed you mentioned that if you have more than 100 servers then it's not really a great resource for understanding what's going on with the different tools. Where can I gain that perspective?
- mattjaynes 13y agoHi Dan, It really depends on your situation. Please shoot me an email and we can discuss in more detail: matt@nanobeep.com All of the tools will scale to at least several thousand servers, but they each have slightly different ways of doing it. I'd recommend choosing the tool that makes the most sense for you at your current scale since they all can probably scale to what you need. I mention that the book is for folks with less than 100 servers because I don't go into how to set up these tools for higher scale in the book. So, to get the info on how to scale up to very large pools of servers it'd probably be best to first pick a tool and then look at its specific documentation for scaling up.