1. 17
  1. 8

    [Yes, this is a Medium article. Flames about that fact to /dev/null. We all know some portion of you get all ragey at Medium.]

    For what it’s worth, I used to be a huge Chef fan but have rather fallen out of love with it of late. For simple tasks and orchestration I think Ansible is a much better fit with much less overhead and a much gentler adoptioin curve, and for complicated configuration management tasks I vastly prefer something like Terraform for its awesome state maintenance features and straight forward, easy to read DSL.

    Chef has the same problem many early entrants into any field face. As users needs evolved, the stack evolved with it, as did its conception of how best to accomplish a given task.

    Roles or cookbooks-as-roles? Environments or attribute cookbooks? The best practices story here can be dizzying to the newcomer and can leave anyone inheriting a legacy code base shaking their head as the multiple clashing world views try to co-exist in the same Git repository.

    I’m not slamming Chef, it’s a great tool and I used it happily for years. I just think the world has moved on and there are better options.

    That said I applaud them for open sourcing the stack. There’s a lot of hard learned lessons in there that could be applied elsewhere, especially if you’re a Ruby programmer.

    1. 6

      I first downvoted this comment as “troll” because of the part in brackets which I feel is just an attempt to provoke people who have earnestly-held problems with Medium. I checked the wiki, though, and since you go on to make some well-intentioned remarks I removed the downvote but can we all try to not provoke other people just because we might disagree with them?

      1. 9

        Good point and thanks. I’d edit that out if I could but my edit rights have expired :)

        I personally found all the ranting and roaring about the evils of Medium rather irksome, but there’s no reason to mix that into a completely unrelated context.

    2. 0

      Too little, too late. Surpassed by Ansible

      1. 2

        Ansible, the security nightmare of allowing automation to SSH to machines, copy over a python blob to a temp directory, and execute it as sudo/root.

        Yes, people should really use that instead. /s

        1. 2

          It is also unbelievably slow at what it does, despite applying all documented optimizations and using Mitogen. The simple existence of Mitogen points out that Ansible’s design is fundamentally wrong.

          1. 1

            Also: Ansible, the tool that uses YAML for semi-declarative semi-programming automation. I kinda like it but feel dirty for doing so.

            I kinda like (in a less kinky way than I like Ansible) that Chef is at least using a real programming language.

            And I like that they wrote Habitat in Rust. But that’s also a bit kinky.

            1. 2

              I kinda like (in a less kinky way than I like Ansible) that Chef is at least using a real programming language.

              How much Chef have you written? Every Chef best practice ever cites the fact that if you drop into Ruby it’s a major anti-pattern.

              I don’t mean that as an attack, I’m honestly curious.

              1. 1

                How much Chef have you written? Every Chef best practice ever cites the fact that if you drop into Ruby it’s a major anti-pattern.

                None at all :) Good to know, that wasn’t obvious.

          2. 1

            I don’t think that’s accurate at all. I also don’t think Chef is doing this just to compete with Ansible.

            I don’t have any source of for the market breakdown, but I’m guessing it’s a safe bet Ansible is the market leader. With that said, though, I think there’s still room in the market for other entries. Saltstack has been making pretty big inroads for example.

            1. 1

              @steveno is right, you’re oversimplifying and also not taking a number of important factors into account - chief being installed base. There is a HUGE amount of Chef code running out there in production.

              Also, Ansible is amazing but it is not well suited for every task, especially configuration management challenges that embody a fair bit of implementation complexity.