I've managed about seven environments with Terraform in separate directories and state files, using a main file to call common modules. Now, I'm taking over another project with around 7-8 environments that utilize workspaces. I see that both methods have their advantages and drawbacks: separate directories lead to duplication of files, while workspaces share a common state file. I started exploring Terragrunt as another option. I'd love to hear about practical experiences of managing environments at scale and what tools or practices can simplify the process.
3 Answers
Terragrunt offers some great features like `run-all` and DRY (Don't Repeat Yourself) root configurations. The best part? Each environment has its own state file. When using workspaces, it can be easy to mistakenly target the wrong environment, especially if you're not careful—it can make things risky.
I personally find Terraform workspaces to be quite effective! They do their job well, but if you have similar environments that differ with small tweaks—like managing infra for multiple clients—workspaces can lead to messy conditionals and issues down the line. It's great for standardization, but not always a perfect fit.
Using vanilla Terraform can get tricky when managing state relationships manually—it's manageable for a few environments but becomes chaotic as you scale up. If you're considering alternatives, Terragrunt and Terramate can really help in organizing projects with split states. Terragrunt acts as a wrapper, while Terramate generates Terraform code, making things much smoother.

Related Questions
Can't Load PhpMyadmin On After Server Update
Redirect www to non-www in Apache Conf
How To Check If Your SSL Cert Is SHA 1
Windows TrackPad Gestures