I noticed Packer and Terraform mentioned in the book's description as infrastructure-as-code tools. I'm curious why those tools and whether Puppet and Chef would be supplanted by these or are they still relevant in some way. What do Packer and Terraform have over Puppet, Chef, and other IaC tools?
The best ideas are the crazy ones. If you have a crazy idea and it works, it's really valuable.—Kent Beck
Packer and Terraform are VM generation tools. You'd primarily use them to create the base VM images. Terraform, as I recall, gets progressively more cumbersome as you get to finer-grained provisioning. Packer commonly uses Ansible to provision, but I'm pretty sure that it can also use Puppet and Salt as well - it just has to install their respective clients first.
I'm not as gung-ho on Puppet as I used to be, because it's the equivalent of creating an Enterprise Java app versus hacking out small, simple stuff (Ansible). But I do use Puppet for my complex server configurations, even though I typically use Ansible to pre-provision (install Puppet, networking and the like). My container-based stuff isn't really the kind of thing that Puppet is designed to maintain, so the container VMs are strict Ansible provisioning - even the part that installed the container with the PuppetMaster in itself . I use Ansible to install and configure the containers.
Loudly announcing something is true and finding out you're wrong makes you feel foolish.
Finding out you're wrong and refusing to admit it makes you LOOK foolish.