Why should I care about OpenTofu?

narwhal@lemmy.ml to Technology@lemmy.ml – 76 points –
Why should I care about OpenTofu? | OpenTofu
opentofu.org
33

Idk if its just me but these sort of frameworks seem the make it intentionally hard to figure out wtf they are for.

What is OpenTofu? OpenTofu is a Terraform fork, created as an initiative of Gruntwork, Spacelift, Harness, Env0, Scalr, and others, in response to HashiCorp’s switch from an open-source license to the BUSL

None of these names mean anything to me.

The entire FAQ doesn't spend a syllable saying what it is for, except that its like Terraform. Which is a bad name to google.

After searching around, it seems to be some vaugely defined devops/cloud management thing.

I understand the concern but I think you're just not really in the target demographic for the project. Terraform is a very well known infrastructure-as-code tool, and the other companies listed are suppliers of commercial products that build on top of what Terraform provides.

But i wouldn't know i guess.

Thats what irks me. Say some smaller project is taking off and needs a better scaling environment. I will not find out about any of this open source alternative, ever.

But how deep should these explanations go? Does every mention of Terraform also require an explanation of "infrastructure" (in the IT sense) and "code"? "Cloud"? It's all unexplained definitions all the way down, unless you write a book before the article. A certain level of audience knowledge is always required.

The entire FAQ doesn't spend a syllable saying what it is for, except that its like Terraform.

It seems to be some sort of trend to absolutely never explain what your product is or how it works. Especially not on the main page. It's just "click here to sign up now"!

You can define your whole cloud infra as code so you don't have to manually maintain hundreds, sometimes thousands of resources manually. My work would be basically impossible without it, or the DevOps team shouldn't consist of 5 peope but 20. It's a descriptive language where you define the end result you want to see and Terraform transforms your code to actual API calls to AWS/GCP/Azure. Like this

resource database MyAwesomeDB {
engine = mssql
version = 1.1
backup, initial db, master pw etcetc. }

It's incredible useful where you have 50+ microservices, 10+ db instances, load balancers, gateways, auto scaling rules, object storage, nosql, queues, countless firewall and routing rules, notifications and observability systems. And that was just dev. Then you have test, staging, prod, plus multi-region on top of that. And of course ephemeral environments fired up for every PR so the dev can test their shit without messing everything up. You end up easily managing a couple of thousands of cloud resources.

holy shit I'm so glad I got out of I.T.
What the fuck is any of that

Thanks for the summary! I figured that out after several steps of googling. It's kinda nuts that they wouldn't want to put any of that on their page though. Even terraform isn't very clear about it.

Hope they end up doing that if they slowly diverge from the original tool

What is MellowMax? MellowMax is a MetroMeld fork created as an initiative of Bligewater, Bartender, PillPopper, b1tchsnack and others in response to TurboCo's switch from an open source licence to the PMSL.

Good thing you can just invert the polarity to jumble the neutron matrix without interfering with the crombulation field.

I used to have a career in software development and I've never heard of any of these projects.

I generally took the view though that if I didn't understand what an earth a program was even for, I probably didn't need to worry about it and could ignore it.

Yeah this is just not for you. In the DevOps/SRE space, EVERYONE knows terraform and most of those names will be recognizable to the people most deeply involved in using/managing terraform.

There’s plenty of things that turned out to be useful to me in spite of my not recognizing their names or taglines when I first encountered them—so I don’t just assume that anything I’m not already familiar with isn’t “for” me. A brief explanation for non-insiders (or even a mention of what field it’s relevant to) would have been helpful in establishing that.

Is that the crowd you want to address people on your frontpage?

If you're asking why aren't DevOps/SRE mentioned specifically on the OpenTofu front page, I don't think you understand how common this software is.. Like if someone forked Google, you wouldn't need to describe what Google is. Everyone already knows it. For the people in this industry, terraform is essentially a defacto monopoly. Even if you don't use it, if you're working in SRE, you know what it is and what it does.

But what if you're not in that business?

Think about it, you're a novice, or maybe a sales guy, project manager, or even just a developer. I'm a senior software developer and my understanding of what Terraform is doing, is rather vague - and 99% of that knowledge comes from a single guy I talked to a whole ago. These depths of infrastructure have been hardly of any relevance to me for quite some time.

Now, imagine one of the aforementioned people being told something about some weird soy based software and starting to google. This site won't tell them, what they need to know. That's what I meant above: this site is not intended for people who already know.

I still don't really see the argument. OpenTofu exists because of internal drama about licensing on a tool that you don't use..

Someone building a different banana picker that looks just like another banana picker doesn't need to explain their reasoning in terms a coal miner would understand..

Also, literally just clicking the intro doc linked from the main page tells you everything you need to know..

Again, put yourself in the shoes of someone not familiar with that. You're a project manager. You read somewhere about it, hear an engineer talk about it, etc. You see this site. You don't even know, if you're on the right site.

I'm saying that not as an insult, but you are seemingly unable to understand, that there's a huge world outside of IT, that still has contact points with IT and wants to know about some parts. And that is exactly what the homepage is supposed to convey. What is it? What is it doing? Why should I pick this? Where can I get it?

Why should a project manager pick an IaaC tool? There is something fundamentally wrong if people without the required technical knowledge are making technical choices. The website explains things in a way that requires a good bit of knowledge, but that's because you're not the right person to make these decisions if you don't have that knowledge. DevOps and IaaC are complex fields if done right, and trying to explain them in simple terms will not improve decision making.

You obviously never worked in a corporation.

Let's think of a simple example: you're starting a new project, the current infrastructure is technology A, but one engineer proposes technology B, since it's better in categories X,Y,Z. You can plug in anything you want here. Now, the engineers can give their opinions and estimates, but they can't decide it. The PM can. It's his job to weigh the risks and uncertainties and decide on the path forward.

Again, as the guy above, you're thinking way too narrowly focused on your small slice of the world. IT departments aren't magical omnipotent collections of super smart people, revolving mainly around themselves and their superior technology. They're just cogs, we are cogs, and our job is, to keep a machine running.

Man, I didn't agree with any of your comments before this one, but I could at least see your point of view, but this...

You can plug in anything you want here. Now, the engineers can give their opinions and estimates, but they can't decide it. The PM can. It's his job to weigh the risks and uncertainties and decide on the path forward.

You are either a PM yourself or are just making shit up to argue. The PM, at best should only be responsible for signing off on tech choices. If PMs were making decisions, then we would all be using Excel as an enterprise database, documentation tool, and version control.

I'm not a PM, but I can actually see, how decisions are made. You actually wrote it yourself without realizing: a PM signs it off. He has to take the risk. If it seems too risky, he won't accept it.

Just go to your PM next meeting and propose to rewrite everything in, say, Rust. Will he agree? Probably not. Did he make a technical decision? Probably not.

Don't kid yourself with technological grandeur. If your PM doesn't want to do X, X won't happen.

I've worked in a couple corporations, thank you.

Let's think of a simple example: you're starting a new project, the current infrastructure is technology A, but one engineer proposes technology B, since it's better in categories X,Y,Z. You can plug in anything you want here. Now, the engineers can give their opinions and estimates, but they can't decide it. The PM can. It's his job to weigh the risks and uncertainties and decide on the path forward.

This has absolutely not been the case in any corporation I've worked, the PM is not allowed to make these kinds of decisions. They are made by technical or solution architects. It's also in no way a PMs job to weigh risks and uncertainties when making technical choices, since they literally can't.

Again, as the guy above, you're thinking way too narrowly focused on your small slice of the world. IT departments aren't magical omnipotent collections of super smart people, revolving mainly around themselves and their superior technology. They're just cogs, we are cogs, and our job is, to keep a machine running.

You've obviously never worked in a corporation if you think a PM is allowed to make this kind of choice.

Then ask yourself: who is taking the risk? Who will get blamed, if the project fails? The architect? Or the guy who let the architect do his thing?

Obviously the architect, and consequently the project owner. The project manager has no say in these decisions, why would they get blamed? I've never seen that happen, while I've seen the PO get blamed multiple times.

I really think you've never worked in a corporation, because what you're saying just doesn't happen. The PM gets blamed if the project falls behind, but not if the technical decisions of the architect make problems. A "project manager" is not a manager in the classical sense...

The open source infrastructure as code tool. Previously named OpenTF, OpenTofu is a fork of Terraform that is open-source, community-driven, and managed by the Linux Foundation.

Man I hate that name. I love terraform and will probably love the open source version of it even more but yuck. Hahaha. Bikeshedding moment, sorry.

It's probably really hard to find something that shares the "tf" part, but isn't too close to the original name.

Why does it need to share the "tf" part? Just say it's compatible with terraform files as of some version, and optionally make your own format that's separate from the Terraform format so you're not limited by their design decisions.

It's not about the file format, but the naming of the product (and possibly some internal prefixes, but that's just a bonus).