Heh. I’m an intern on the ops team at a small-medium company (just under 150 employees, at least 50 or so engineers, ~$20 mil rev), and we use Chef for configuration management. I’ve observed that some members of the ops team are actually afraid to converge servers. I also find the precedence rules, node variable (?) rules etc to be horrifically confusing. I haven’t worked with Ansible before, but it sounds more similar to how I would implement it if I hacked away at the problem for a few months (my understanding is ansible basically just lets you run arbitrary scripts thru ssh).
Being able to have chef integration tests (or are they considered unit tests?) seems really powerful. But holy fuck does Chef have a ton of (what feels to me like) cruft
Chef got to where it is today because people used it to build systems at a scale that was simply not feasible before. And as it grew more capable, people built more tooling in and then leveraged that to build even larger systems.
So, if you're not building systems at the Netflix or Amazon scale, then Chef might have features and tooling that you don't need -- today. But as you grow and you find you do need those tools, they will be there.
I can tell you that Chef was a key part of the system for taking the Raytheon GPS OCX system and letting us build out an entire virtual datacenter in a matter of hours instead of months. Once everything is racked and stacked and cabled together, just press the "Go" button and everything builds itself and installs itself in a fully automated way.
If you're not familiar with GPS OCX, that's the next-generation ground control systems for GPS satellites -- both the current generation of satellites that is currently aloft and the next-generation fleet that is being developed.
With regards to Ansible, there are many lessons that the Puppet and Chef communities learned years (or decades) ago that are being re-learned yet once again -- like ssh isn't a very scalable communications mechanism when you start talking about handling thousands of servers.
The concept of "just let me run my custom scripts everywhere" is a nice one, so long as you're talking about a dozen or so machines, each of which is a unique snowflake "pet". But when you want to start building a cattle farm, that method stops being so useful.