Configuration Management Tools As Operating Systems

Last year I wrote a blog post comparing programming languages to driving experiences. Today in the chatroom, my friends and I were talking about config management tools. I’ve had the opportunity to use most of them, so I compared them to operating systems as such:

CM Tool OS Feels Like
Ansible Mac OS Here's the one way to do things, chosen Your Lord and God, Steve Jobs. You can do things other ways too, but be prepared for a little pain
Salt Linux Do whatever the fuck you want to do. You have unlimited freedom. It might be a bit painful sometimes though.
Puppet Windows ENTERPRISE ENTERPRISE ENTERPRISE ENTERPRISE ENTERPRISE ENTERPRISE ENTERPRISE ... Say it with me: DEVELOPERS DEVELOPERS DEVELOPERS DEVELOPERS DEVELOPERS DEVELOPERS DEVELOPERS DEVELOPERS DEVELOPERS DEVELOPERS
Chef DOS Bash on steroids. OKay, so maybe it's not like DOS, but you know, to fit into the OS analogy...

Naturally, the above list is listed in my personal preference. I really really really like Salt - I’ve used it since its inception. But Salt is quite tedious to use - I have a repository of salt states for fuck’s sake. That’s not normal. Ansible is far easier, and for all the simple projects that I have, Ansible is more than enough. It’s easy enough that I can write playbooks from scratch without having to resort to a saved salt state. In a proper project setting, I’d probably be using Salt - less technical debt in the future - but for now Ansible suits my needs perfectly.

My experiences with Puppet and Chef are much much less compared to my experience with Salt and Ansible. But every time I get exposed to an environment with Puppet, I feel like the people who use it also probably write FizzBuzz the enterprise way. It feels bureaucractic to use. Ditto with Chef, except Chef feels more commandline-y, if you know what I mean.

With Salt and Ansible, I feel like I can go in and cowboy the entire thing (not necessarily a good thing), but not so much with Chef or Puppet.

Now, of course, I haven’t had much experiences with these - I’m not really a dev ops kinda guy - I just do what needs to be done. My experiences cannot speak for those people who are in dev ops for a career. So take what I wrote here with a pinch of Salt. ;P

comments powered by Disqus