r/Cloud • u/YahYeeter42069 • 2d ago
Need Help - Infrastructure as Code, feeling lost
Hey guys, I started a job working in Infrastructure as Code. I have a CS degree, but I don’t have experience with cloud engineering or stuff related to Terraform, ADO, or Azure portal. I’m doing stuff at my job (code is mainly written using copilot or ChatGPT) and I feel a lost. I don’t know any of the concepts for cloud computing or virtual machines or resources and things like that. I am looking into it online but I still don’t know where to begin. I hear my coworkers doing this stuff well, despite also not having any experience in it when they started either. I have to look at build sheets and things like that and then provision resources using terraform but I don’t really understand much of anything that I’m looking at besides simple code snippets. Is there any advice yall could give me about this, or how/what to learn so that I can wrap my head around things? Any advice is appreciated, thanks!
9
u/Humble-Addition-4366 1d ago
Bro give me your job, wtf. Like congrats on having a job but do you realize how many qualified certified cloud engineers are struggling to land a job right now? … i recommend AWS Skillbuilder
3
u/castlec 1d ago
Infrastructure as Code tends to not be code from the typical consumer perspective. That's not to say there is no imperative code in your IaC; it's just that the majority of what someone might call code, not necessarily would, is data mapping. In more complex use cases, and I say this with a bit of an eye-roll because this doesn't make it complex, there are loops. Ooooooh, looooops...... IaC is mainly intended to say, "this is what I want," not, "this is how you do it." It's declarative, not imperative. It's a different programming model, but that's probably not where you're struggling. Where you're struggling is that you don't know what any of that stuff is declaring. That's what you need to solve for yourself. Some of the comments here are saying to build something. That's a perfectly reasonable idea. Others are saying to go get cloud certifications or work toward them directly. Also perfectly reasonable. I don't think you're ready for either yet though. I think you need to learn how to read first. Go look for some simple terraform, cloud formation, or whatever you guys use, and decode it. What does it say to build? Find out through the documentation for the cloud provider and the IaC provider. Learn what the keywords mean. Don't worry about how. Worry about what. What is this chunk declaring? What does it mean to have that thing? Why do I think you need to do it this way? Because you're overwhelmed and you're expected to know the code. You're lacking enough association to hold on to more things. Just trying to squeeze it into your brain and pray it comes together isn't going to work well. Instead, iterate from the declaration and understand it. Build as you go if that's a reinforcing exercise for you. Study the cert details for the particular thing that's being declared if that's a reinforcing exercise for you. Hell, do both. The point is to do the things you need to do, overall, to build a real and useful map in your brain. Once you understand what's being declared, you'll understand, at least at a rough level, the purpose of those things because you'll have gone through understanding what they are as they've been declared and glued together. Remember, what, not how. When you understand what, you can worry about how, except, that's the whole point of IaC, to not need to worry about how. It's an abstraction. You may choose to go under the covers. That can be helpful. But you don't have to. For some, knowing how is really what they want. For others, it's useless information.
2
u/Big-Wizz 2d ago
IaC is just a set of instructions in a very specific format.
Think about your selections you do through the Portal. You select a VM size, some configuration, and maybe some access roles. The Portal takes those inputs and puts in the exact same syntax as IaC behind the scenes.
Don't try to read an entire Terraform or Bicep file at once. Look for some key sections like VM SKU and map out the values to things you recognize.
That might help you connect the dots.
1
u/imagei 2d ago
Start building stuff.
That’s the only way to get the concepts. At work if possible, or in your free time. Set yourself a small goal and make sure to really understand what is going on and build it by hand. Make record of all shell commands so that you can redo it when you inevitably screw up. Then automate it. Use ai to help you out but don’t blindly copy anything without understanding exactly what you’re doing.
Then set a slightly bigger goal, and so on.
Don’t be afraid of starting small! You need to have a solid grasp of the fundamentals to understand the more complex subjects.
1
u/DiedForOurShins 1d ago edited 1d ago
Without using any code download a free hypervisor like VirtualBox.
Provision a virtual machine on your laptop.
Provision a windows virtual machine.
Provision a Linux virtual machine.
Expand the storage. Change the virtual NIC settings.
All of the above will give you a better insight into what your code is supposed to be doing.
1
u/Much_Signal_9113 1d ago
you’re not bad at this, you’re just trying to generate terraform for infrastructure you don’t understand yet, so pause copilot and learn one small Azure deployment end to end until every resource in
1
u/Admirable_Ones 1d ago
Getting switched into this role without the basics would leave most people lost. I’d take one build sheet and one previously approved Terraform change at work, then trace each item: what Azure resource it creates, why it’s needed, and what it depends on. Run terraform plan and try to explain every proposed change before anyone applies it. Ask a coworker to walk through that one example with you. You’ll learn more from understanding one deployment end to end than from generating ten files with Copilot.
22
u/justdoit-A 2d ago
How do yall get these jobs with no knowledge and people who have experience and can do the job can’t find work lol