What is DevOps? Introduction from a Junior Engineer
A perspective of the field after (almost) a year of exposure.
Introduction
Every time I get asked "So... what do you do..." I can't help but pause and think to myself "Great! This again! You may as well have just asked 'Hey! What's the quickest way I can lose interest in talking to you?!'".
Now, this isn't anyone's fault. If anything, it's on me for making it sound boring when it's really not! The fact is, I've been doing this gig for almost a year now (at the time of writing) and I've had loads of people ask me what I do and I've given different answers each time, which is a testament to how varied my responsibilities are. Even now, I'm still learning new skills whilst developing old ones.
I previously worked as a software engineer (SE), a career that needs no explanation. Usually that's enough to end a conversation and move on. A more inquisitive person who has an interest in the field might ask what type of software you work on, but generally, people have a pretty accurate idea of what being an SE entails.
But, when I say "I'm a DevOps Engineer", 9/10 people will follow on with "Ahhh, I see... What's that?". Even my parents think I'm still working as an SE! Well... In their defence, I told them that's what I do because I know they would forget the difference and just end up telling people their son is an SE anyway...
So What Is It?
Well, I'm so glad you asked! The typical definition would be something like this:
A culture, or a set of practices, that bridges the gap between development (Dev) and IT operations (Ops), in the hopes of shortening the development lifecycle and provide continuous delivery of high quality software.
Something along those lines. Now I don't disagree with this definition, but I feel as though it doesn't tell whole story either. Therefore, I'm going to try and explain what it is using an analogy I came up with: The Architect Analogy.
The Architect Analogy
Consider an Architect, a person who is tasked with planning, designing and overseeing the construction of buildings. They've done all the meticulous planning and now it's time to build their masterpiece! These are your SEs! A senior engineer would design the software and get their team of engineers to develop it. With me so far? Good!
However, there's still one unanswered question: where are they going to put it? You can't just construct a house or an apartment complex in isolation, it has to be built somewhere that is accessible by the public. There's also the matter of hooking it up with gas, electricity, plumbing, making sure it's near a road so you can give at an address so people can look it up, etc...
Simply put, the 'building' needs a 'place' to go and the means to get to it. The same is true for software, it needs somewhere to be hosted. It's all well and good to create an amazing product, but if no one has access to it then there's really no point in making it. It would be like building a 5-star hotel on Mars, it just can't happen!
But, let's say the architect really wanted to get a hotel on the big red planet. Well, currently there's no infrastructure whatsoever so they would have to get someone to terraform the landscape so it can be built upon. Then they would have to get a landscape architects to design and construct liveable spaces, and civil engineers to design, construct, and maintain public infrastructure like roads, bridges, subways, motorways, sewage system, power lines, etc...
These are the DevOps Engineers (DE). We are the terraformers – there is literally a tool we use called Terraform – , the landscape architects, the civil engineers, the gas and electric engineers, etc...
DEs are responsible for creating and maintaining a company's tech infrastructure. For example, if the company is involved with web development then a DE would be responsible for finding somewhere to host the website, either using the cloud (AWS, Azure, etc...) or finding a suitable third-party.
They would be responsible for giving the website an IP address, configuring security, monitoring health status, routing traffic, balancing the traffic so the website doesn't get overwhelmed, the list goes on and on.
Another way of looking at is that if SEs are responsible for making things the user sees, DEs handle the things the user typically doesn't see. Savvy?!
Summary
Hopefully, you've come out of this less confused about what a DE is. If not, then I really need to get better at this...
Keep in mind, this is my definition of what a DE does based on personal experience in the field, and I've only just scratched the surface. The type of work wildly varies between companies, so there will be people that might not fully agree with my definition. Who knows, maybe, in a few years, my definition will change and I'll have to come up with a new (and more confusing) analogy.
Honestly, I can say, without a shadow of a doubt, that it's the best job I've ever had. It's challenging in a fun way and I'm constantly learning new and interesting things about the tech industry as a whole.
And I sincerely hope you've learned something, too. Thank you for taking the time to read this article. There's still so much more I want to talk to you about, so if you're still interested then stay tuned for more!
Till next time! (I should really tell my mum and dad about this post...)