Earlier quoted context omitted.
My complaint is that there shouldn't be unknown or uncertain states in the first place. Infrastructure should be a finite state machine, not infinite . Failure in transition from state A to state B should result in rolling back to state A, not arbitrary state X.
Sometimes you cannot rollback. The peril of infrastructure is that it is an imperfect, living state machine. Terraform is a compromise between runbooks and deterministic definitions. Some operations you are committed to the change and will need to figure out exceptions on the other side of the apply. (infra engineer in a previous life when Terraform was first released)
Ask HN: Why was Terraform created?
21–30 of 64 posts
Re: Ask HN: Why was Terraform created?
#22Earlier quoted context omitted.
Sometimes you cannot rollback. The peril of infrastructure is that it is an imperfect, living state machine. Terraform is a compromise between runbooks and deterministic definitions. Some operations you are committed to the change and will need to figure out exceptions on the other side of the apply. (infra engineer in a previous life when Terraform was first released)
What I got from this thread is that Terraform was created for this exact reason - to be able to work in a mysterious state that just happened to be there. Therefore Terraform normalizes existence of unknown unpredictable environments (which is already absolutely normal in the real world, as stuff is never exclusively black or white). But, on the other hand, isn't making stuff extremely predictable part of our job? Do…
Re: Ask HN: Why was Terraform created?
#23Re: Ask HN: Why was Terraform created?
#24To get data in Terraform you have outputs and you can display the data. Terraform helps you to have a unified way to manage your resources, sure the bash scripts works for you, but what happens if you leave the company? Somebody else has to maintain your shell script. What happens if somebody else is changing the infrastructure and they're not familiar with your shell script, they need time to dig in to figure things…
My complaint is that there shouldn't be unknown or uncertain states in the first place. Infrastructure should be a finite state machine, not infinite . Failure in transition from state A to state B should result in rolling back to state A, not arbitrary state X.
The reality is infrastructure is commonly in unknown states, whether we like it or not.
Re: Ask HN: Why was Terraform created?
#25I can't answer "why terraform was created" because I wasn't there. Also I only recently started working with it, so by far no expert on the matter. People who don't know terraform often praise it for its platform-agnostic language, but there's an important caveat: the language is platform agnostic, not the templates one writes as they are riddled with platform-specific nouns. You can't take an Azure template and depl…
>That is a good and useful thing As long as you manage to pick it up, which I'm struggling with - you have to approach the problem from an entirely different angle with an entirely different paradigm. I'm struggling with adopting Nix on my personal machine for the same reason - I get `dnf install foo bar` but I don't get `I want foo and bar installed on my machine.` I want my machine to do the stuff only when I expli…
Abstractions are the art of revealing the right information.
With an abstraction, you don't pay attention to lower-level details that aren't related to what you're interested in. This makes it much easier to write complex systems.
When someone teaches you how to "hello world", you're able to go and write programs without needing to understand NAND gates & how a CPU works.
I think "terraform lets you work at a level of abstraction above needing to care about what is deployed in what order" is a point in terraform's favour above bash-scripts.
Re: Ask HN: Why was Terraform created?
#26Re: Ask HN: Why was Terraform created?
#27Go down the path of rolling your own shell scripts and if you do a world class job you'll end up reimplementing the functionality and architecture of Terraform. Also, as a commercial open source project, you have the benefit of an entire community using and extending the tool in their own use cases. Read through Terraform release notes, you will see the amount of work & experimentation writing and maintaining a provi…
Re: Ask HN: Why was Terraform created?
#28Go down the path of rolling your own shell scripts and if you do a world class job you'll end up reimplementing the functionality and architecture of Terraform. Also, as a commercial open source project, you have the benefit of an entire community using and extending the tool in their own use cases. Read through Terraform release notes, you will see the amount of work & experimentation writing and maintaining a provi…
Username checks out.
Re: Ask HN: Why was Terraform created?
#29You have to be careful not to run your bash script twice or you get another instance/vpc/loadbalancer or whatever.
You run "terraform apply" twice and it does nothing on the second run.
If you start implementing that in your shell scripts you start implementing terraform in bash.
Re: Ask HN: Why was Terraform created?
#30Earlier quoted context omitted.
Username checks out.
Ok here's a less friendly version: "The way AWS is implemented doesn't work for me" is a nightmare attitude for everyone on your team and an affront to your productivity. Look at the early (mid 2000s) AWS customer success stories and think about what it did for those companies. Accept the model and get your undifferentiated systems work done quickly.