Immutable infrastructure with Hashicorp's Packer
The traditional method of setting up applications via Terraform and Ansible would be to use Terraform to spin up the infrastructure and then use Ansible on top to apply the relevant configuration to the infrastructure. That is what we did in the last chapter. While that is a viable approach and many enterprises use it, there is a better way to do it with modern DevOps approaches and immutable infrastructure.
Immutable infrastructure is a ground-breaking concept that has resulted because of the problems of mutable infrastructure. In a mutable infrastructure approach, we generally update servers in place. So, when we install Apache in a Virtual Machine (VM) using Ansible and then customize it further, we follow a mutable approach. We may want to update the servers from time to time, patch them, update our Apache to a newer version from time to time, and update our application code from time to time.
The issue with this approach...