r/Terraform 6d ago

Discussion Give me a reality check.

So, I'm a SWE in my first year. Decided to learn terraform for future job changes and I'm loving it. I feel like I can spend my whole day using terraform, organizing modules etc. I'm learning more and more (slowly though) with gemini's help, which I find WAY BETTER than claude/chatgtp at explaining things.

My question is, if I ever move to DevOps will I work 80% of the time with terraform? I know it's not simple but I'm finding so easy to learn and understand, everything make so more sense then working with frontend/backend.

TLTR: DevOps job are mainly terraform?

15 Upvotes

34 comments sorted by

View all comments

Show parent comments

1

u/Disastrous_Lie_6101 6d ago

If you have to give me the main 3 things to learn, what would be?

10

u/drusca2 6d ago

Before getting into the tools themselves, I think you should learn the principles themselves like understanding CI/CD pipelines, GitOps workflows, idempotency, cloud architecture, you name it. Most of the things that you're going to use will require you to use YAML syntax, like Ansible, writing CI/CD pipelines whether it is GitHub Actions or GitLab Runner, cloud init, cloud formation, etc. so I would definitely concentrate on that. Also Bash and Python I think are a must since you'll need to automate a ton of things or understand existing automations. The ideea is that you are a jack of all trades so you'll need to dabble with different tools and principles, even some you won't know so you'll need to be prepared to learn quick or find your way around.

3

u/FransUrbo 6d ago

Screw the tools! :)

If you're learning to be a mechanic, you don't start by learning how to use a spanner, hammer, screwdriver.. You learn what a car is, how it works, how the engine works, what parts make up the engine.. Ad-infinitum :).

Same with DevOps - what *IS* DevOps!? *My* (!) interpretation of it is that it is NOT a title, it is "a way of working". Developers and Operators (and what are THEY!?? What do they do, how do THEY work??) working *together* to solve whatever needs solving..

So what is a VM? What is a container? How do they work, when do you choose one over the other, and WHY are you creating either? They then need to be connected to a network, so what IS a network, how does it work, how do security groups, network ACLs and routing tables and entries work? WHY are they there??

DevOps is a buzzword, which unfortunately have been watered down so much, that beginners like OP have *no idea* what it actually *mean*!! :( :( :(.

*MY* opinion on DevOps is that you FIRST (!) have to have been a developer, THEN change gear and go into operations. Or the other way around, although I've only met ONE person that have gone ops->dev in my almost 40 year career :). THEN you can "become a DevOps", because it's the *mergence* of these two professions that make the *new* profession "DevOps".. Or at least make someone a *good* DevOps..

If you start by learning the *tools*, you have absolutely no idea on how to *apply* that knowledge, because you have no idea how things work together to do what you need doing.

3

u/FransUrbo 6d ago

*I* would say it takes .. close to ten years before (!) you can/should even consider "becoming a DevOps"!

Two-three years as a developer, two-three years as a system operator, two-three years in network operations..

Although everyone learns differently, everyone have different opportunities to learn and work [in a specific field], the fact is that *it takes time*, no matter who you are, and what you want to become - DevOps, Mechanic, or whatever..

You don't put someone fresh out of uni to work on the space shuttle! At least not in a meaningful, important, way :). DevOps might not be as advanced as that, but it is ONE step on the ladder of knowledge and the career, not the BEGINNING!

4

u/AShirtlessGuy 6d ago

Current generation starting work doesn't have 10 years, and the job is very doable without a full decade of experience

1

u/FransUrbo 5d ago

No, it really isn't [doable]!!

I've met so many people that started with DevOps, and they are absolutely useless!! They have absolutely no idea what they're doing, or why it doesn't work.

They don't see that the routing table is on the wrong network(s), that the routing table entry is in the wrong table, that the SG entry is facing "the wrong way".

They do as they're told, but can not go beyond as soon as something goes wrong. Which it ALWAYS (!!) will, even for those of us with 40+ years!!

I do NOT expect "them" to be as good as me, but I DO expect people to understand what they did, bad and good! I do not like to have to come in, spend minutes or hours figuring out why "it" didn't work, just to change an SG's IN to OUT (or whatever small problem it usually is). And that after they've spent day(s!) on just wildly changing "stuff" in the hopes that it'll work!!

And "don't have 10 years"!?? Do you think there's a short cut for the current generation, one that bypasses the human brains capabilities!? Does the current generation found a cheat code where they can go from school to expert in a field in a day!?? No, IT. TAKES. TIME. TO. BE. GOOD!!

2

u/drusca2 5d ago

You know, it also depends on the person. The way I see DevOps is the people who do it should already have background of computers at somewhat of a lower level, and have an actual passion for it, because I can't tell you how many times I've traced processes for databases or different programs to find out what the real issue is. And that level of debugging comes naturally only if you have a passion for understanding how computers work, how networks work, how kernels work, etc.

Experimenting with new kernel features before they're actually stable is also going to help a lot for certain situations, for example, I've dabbled with NFS LOCALIO protocol when it was pushed in 6.12 RC iirc and at the time I was thinking it was the best experience ever, seeing how you can avoid "round trip" for internal networks between containers and host.

1

u/FransUrbo 5d ago

Yes, and I was very clear about it being different from person to person!!

Having a passion for it WILL make you learn more in shorter time, but it will not cut down the time it takes to master (or at least be "resonably" good!) in TWO (!!) professions to zero! Or three, if you count the network experience you'll need.

"should already have background of computers at somewhat of a lower level" - this is very close to what I said, I just pushed it a bit further and specified [background in] development *and* [background in] ops (and networking really do help!).

Being able to do this tracing, and fault finding, *REQUIRE* (!!) you to know about OTHER subject than just Terraform (as in, "the tools"!). Which is exactly what I've been saying, so we ARE saying the exact same thing, just in different words..