1. 15
  1. 4

    A long journey indeed. Congrats Hashicorp and my Hashicorp friends!

    1. 3

      Congratulations indeed!

      I really love Terraform, and as someone who’s been doing infrastructure as code and the like for about a decade now I think it’s worth emphasizing that it’s one of the only products for infra configuration management in wide use that actually looks at the current state of the infrastructure in question, generates a change graph, and only then makes the necessary changes.

      So many others like Ansible, Puppet and Chef offer imperative styles of solving this class of problem, which is fantastic for a bunch of use cases, but for the modern cloud I very much prefer the approach Terraform employs and wish more products would.

      [Note: This is not a knock on Ansible, Chef and Puppet. I’ve used and liked 2/3 of them at various times in my career :) ]

      1. 3

        Everyone forgot about salt.

        1. 2

          I don’t get why people compare terraform to Chef, unless of course they’re referring to the long defunct Chef Provisioning

          The proper way to handle these legacy-type workloads seems to me to use something like terraform to provision your dependencies and kick off something like Chef or puppet for configuration of your actual servers

          I also find terraform to be great for managing any config of a system with a CRUD API, which you do a lot of coding against when you’re all in on the config as code

          1. 1

            I compare them because they do much the same thing, albeit in a very different way.

            Also, please consider your use of “proper” in this context. Tools like Chef or Puppet may not be the right choice for cloud or ‘immutable infrastructure’ contexts.

            1. 2

              Also, please consider your use of “proper” in this context. Tools like Chef or Puppet may not be the right choice for cloud or ‘immutable infrastructure’ contexts.

              We’re definitely in agreement here, this is exactly what I was referring to with the “legacy-type” modifier.

              Which is probably why tools like Chef and Puppet are seeing decline. It’s because we don’t need them because the reason for needing them is a design flaw!

              But if your job is anything like mine there’s still plenty of legacy floating around.

              Terraform seems to be at the intersection of old and new, which is a real good place to be, I think.

              1. 1

                I’m very lucky in that regard. I work entirely IN THE CLOUD so my Chef skills are kinda mouldering in a corner, with all due respect, where they belong :)

                I used to LOVE Chef, but I’ve come to believe that there are serious conceptual problems there caused by the totally understandable truth that it is a tool that started out being one thing at a certain scale, and then like so much else in tech experienced METEORIC GROWTH and hence suffers from the community trying to figure out how best to solve the particular Chef-y problems of scale.

                A small stupid one to start: Roles or Role cookbooks?

                The ‘right’ answer is almost certainly role cookbooks, but you’ll still find 9000 examples online using Roles.

                Layer in the incredibly complicated attribute evaluation and execution model, and the result is sadly a mess :(

                Were I starting a project today that lent itself to such work I’d likely use something like Puppet or maybe Saltstack.