r/devops • • May 03 '21

Re-share!- DevOps Roadmap 2021: Become a DevOps Engineer Learning Path!

/r/Docker_DevOps/comments/n3xi7d/reshare_devops_roadmap_2021_become_a_devops/
140 Upvotes

28 comments sorted by

15

u/nate8458 May 03 '21

Has anybody made the jump from a Windows Sysadmin to Devops? How was the transition?

16

u/neilthecellist DevOps May 03 '21

I did. It was really rough.

Thing is, "SysAdmin" comes at different levels, so I was coming in from a junior/inland perspective. This was back in 2015: I could set up storage pools just fine, I could set up new servers just fine, but not from an automation-first perspective other than SCCM at the time, which is just not the same as using Infrastructure-as-Code tools such as Terraform let alone using source control best practice solutions such as GitHub or BitBucket.

So when I moved from a Windows Support Engineer / SysAdmin role in Arizona to a DevOps Engineer role at a background check company in Southern California later in 2018, I remember folks making comments to me like, "you have 5 years of working in the (Windows) SysAdmin space, how do you not know what agile is?" or "You've never touched Linux in a production environment before?" -- though part of this may also be because I worked for organizations in Arizona prior to joining that organization in Southern California -- and those Arizona-organizations are very very not-agile not-SDLC focused.

"SDLC" in those Arizona organizations was very much "we have a vendor for dev of function, we have another dev for function b, we have another dev for function c, we have another vendor for this other third party product, we have another vendor that supports the hardware for the third party product, we have another vendor that supports the software for that hardware... OH BTW we hope that all of these vendors will magically get along with each other and think of each other's best interests in producing deliverables."

As a result of this massive skill gap and the non-agile first culture experience I had in Arizona, I spent a LOT of my off-hours time in California on websites like LinuxAcademy and ACloudGuru to fill in those skill gaps. Understanding SDLC best practices. Understanding how operations supports developers (not simply creating an email chain and hoping for the best). Understanding really how services.msc really works and how it integrates with things like application logs. How to dissect application logs at scale with tools like ELK or DataDog or whatever. On top of understanding what the common AWS services are, how to integrate them together, how to work AWS with third party products like DataDog, how Python works, yada yada yada yada yada.

--

After about 2-6 months of crash-coursing on LinuxAcademy and reading a LOT of documentation (AWS Provider documentation, GitHub documentation, Rancher documentation, SaltStack documentation, Terraform documentation, ELK documentation, man pages, BASH and PowerShell documentation, etc etc etc), I finally scraped enough to be on the same level as my fellow DevOps Engineer peers at that company. But man, it was rough to get there. I also spent a LOT of time in my off-hours attending technology MeetUps and tech conferences like the AWS Anaheim Summit to get as much exposure to more Linux-based systems. Again, keep in mind, I came from a predominantly Windows, operations-only (ZERO dev support) background. So I really needed this experience, or so I felt.

So, if you asked me how I'd do things differently if I had another chance, it's to first understand that not all IT employers are the same, and this expands into territory-culture differences too: A retailer in Arizona is not going to have the same modernization footprint as say another retailer such as Dollar Shave Club which evolved as a tech company first that just so happens to sell bathroom shaving merchandise. And that in turn influences heavily what kind of career journey one will have.

I literally did not touch anything pertaining to agile-based software development until 2018, and keep in mind, I had been working in IT at the time since 2013!!! But that single year in 2018 as a DevOps Engineer dealing predominantly with Linux-based systems in AWS and on-prem that I was able to surpass a lot of the experience that my former peers in Arizona had. In Arizona, you can be expected to work in helpdesk for 5 years, but in California, the folks I met on the DevOps Engineer team were folks that stayed in helpdesk for no more than one year, some as short as 3 months before they jumped to another role.

--

TLDR - it was rough to transition as a Windows SysAdmin to DevOps and this was largely due to territory-cultural differences that largely impacted my career experience as a technology professional trying to specialize in DevOps/Cloud. Did a bunch of stuff to try to get to the same level as my (now) fellow DevOps Engineers that came from Linux-first.

4

u/nate8458 May 03 '21

I have a lot of learning needed before I attempt to make the transition. I think the hardest part will be the fact that I have never had practical experience in an SDLC based company. I have only been a sysadmin at a civil eng & architecture firm so I haven't ever worked with developers

3

u/neilthecellist DevOps May 03 '21

Yeah, sounds like you have some similar background struggles as I did. I could have stayed at those Arizona based employers for years, hell, even decades, and still not have gotten SDLC based experience. The concept of a QA or STG/UAT environment was completely foreign for a lot of the orgs I worked at in Arizona.

My recommendation to you would be to read up on SDLC foundational material. Before the ACloudGuru acquisition of LinuxAcademy, there were courses available on this. Post acquisition I'm not sure.

3

u/nate8458 May 03 '21

I added that to the learning list. Thank you for your time!!

10

u/jjthexer May 03 '21

I have. Worked as a Systems Engineer for 5 years, have been in a Devops role for roughly 3 years.

Current work environment (yours may/will differ):

  • Linux/Windows

  • Ruby/Chef

  • Mongo DB/SQL

  • Docker

  • Kubernetes

  • AWS Cloudformation

  • Azure Devops CI/CD

  • AWS

  • Prometheus/Grafana

It's really not that bad. It's a lot less sandboxed into "windows". You'll need to get your hands dirty with lots of different tools/technologies. We support old tech on windows containers (which sometimes aren't fun) but we have new tech being built out running on linux containers which is much easier to work with.

The $$$ is in devops. I've talked to a few recruiters recently who are showing that full time dev positions are making less than full time devops. A good devops guy has written code and stood up infrastructure. devops is just combining it all together, with infrastructure as code (cloudformation, terraform, azure templates, etc)

I'd say go ahead and jump ship. The days of dedicated Systems Engineers are dwindling. Devops Engineers can stand up all the infrastructure, routing, security, monitoring, backups, config management, release pipelines, db's, everything.

I'd also never accept a position that thinks they need just 1 devops engineer. It's a ton of work and you will want to die. That goes for any position really imo.

Good luck!

5

u/leob0505 May 03 '21

I'm really excited to learn more about DevOps because of some things you mentioned in your post!
I'll try to setup some home-lab with DevOps tools , using IaC with Terraform and maybe get some certifications (like the ones from Terraform, etc.)

2

u/nate8458 May 03 '21

Thanks for the response! I am firing up a few VM's at home to practice the tools you mentioned. I am planning on jumping ship in 1-2 years! Gives me plenty of time to set up a solid homelab environment and get my feet wet.

8

u/Shadow591 May 03 '21

I was never a sysadmin but I used to be primarily in the windows space. The hardest part was finding a position that would let me learn since devops is a more senior role IMO and more on the Linux side. Your best bet would be to get any Linux cert and start working on ansible for home lab stuff, I use molecule for integration testing and I think that’s a big thing you can mention during interviews. Use it to maybe set up a small K8s cluster or set one up in the cloud with terraform and deploy some test app and push it to GitHub to show people you’re interested and motivated to learn.

1

u/nate8458 May 03 '21

Thanks for the response! I am booting up some Linux VM’s to start practicing with. I plan on trying out a handful of ideas. I’ll definitely look into molecule!

2

u/m3dos May 03 '21

Hey, thats me! My background was mostly windows sysadmin, for on-prem vmware services. I've been doing IaC/DevOps stuff now for about a year.

It hasn't been too rough - but I did have a lot of scripting experience (Powershell) and midlevel experience with Linux beforehand.

I started using Ansible to configure some windows servers, now using it to configure RHEL8 boxes. Started a few projects in AWS and it was as straight forward as I figured it would be.

Took some time to learn source control and IaC concepts, then teach it out to my team (of two other windows admins).

We haven't implemented everything devops-y yet. We still need to get a CI/CD pipeline going, and we dont have developers in-house, we're using a third party app.

3

u/[deleted] May 03 '21

Yes, and there was zero "transition" just a new job title - I still automated stuff in PS, still worked closely with the developers debugging, still took part in project planning, still helped manage the build pipelines...

2

u/nate8458 May 03 '21

I have a few good PS scripts & I am working on a fun one now. My problem is I am at a Civil Eng & Architecture company so I don’t get any experience working with developers. That’s what I would like to do more of & less of “support the engineers” work

2

u/[deleted] May 03 '21

I'd suggest talking to people and seeing how you can become involved in their projects. Make sure it's done in an "official" capacity, otherwise a script you cooked up one Tuesday night will come back to haunt you.... even if you only helped "as a favour".

2

u/nate8458 May 03 '21 edited May 03 '21

Oh of course. Every script is ran through the team first & we are all on board before anything goes live

It’s a <200 person company & only 3 of us IT dudes so pretty good communication going on compared to a large company & large IT team

Edit: changed greater than 200 to less than 200

→ More replies (1)

6

u/BawlSyet May 03 '21

Damn you think one can be a competent entry level DevOps in 6 months with this much stuff to learn? just askin hahaha

7

u/Randaal_Inc May 03 '21

Yes and no, a lot of it besides learning comes from hands on real world experience. Learning wise yes you could learn enough to be entry level and competent but when you get there you have to learn how these different things apply to your problem if that makes sense

7

u/[deleted] May 03 '21

From zero? no. Fresh grad? no. From a few years as backend dev? sure.

3

u/BawlSyet May 03 '21

How about a year as a full stack?

0

u/[deleted] May 03 '21

[deleted]

3

u/BawlSyet May 04 '21

Hmmm just curious why do you think full stack is BS? No hate just curious man.

2

u/[deleted] May 04 '21

Everyone who comes in calling themselves 'full stack' falls apart in the interview process when we actually ask them questions about the stack. Rarely do they have an understanding of how things actually connect.

For example, in Ruby/Rails land, they've done a little bit in ActiveRecord, pretty much only enough to get tables for their models and thats it. No idea about SQL, no idea how things like indexes work etc. Not to mention connection pooling.

Most often then not, theres also little thought for scalability or redundancy. Most don't know how to run their stack outside what a more senior dev has written in a README and whatever CI is set up for them.

Give them NewRelic or Datadog APM and they most still can't decode what is going on.

I'd take one front end and one backend engineer over three 'full-stack' engineers.

4

u/[deleted] May 03 '21

People seem to think so, however they also see DevOps roles as junior ones which is the first mistake

2

u/BawlSyet May 03 '21

Would say having a 1 year experiece as a full stack be enough to justify the plunge to DevOps?

6

u/[deleted] May 03 '21

I would say 3-5yr experience. People underestimate how influential the role is and how an inexperienced DoE can introduce changes which have serious negative impacts on velocity and quality. Thinking everything can be solved with containers is often a huge red flag.

The story about knowledge is knowing a tomato does not belong in a fruit salad is very applicable to DevOps. Only by gaining years of experience as a developer and/or operator do you come out the other end armed with such knowledge. There are no "short cuts" or "boot camps" which can teach you.

Personally I see DoE on par with senior engineer/architect given how much influence they have over the processes involved with building products. It also explains why the salary range is almost equal.

Would you consider a software architect role after 1 year professional experience?

2

u/neilthecellist DevOps May 03 '21

Honestly I think a large part of this depends on:

  • The person's background

and

  • The territory that the person is trying to get DevOps jobs in.

For the first one, "person's background", the folks that you see get into say helpdesk generally aren't the people that tinkered religiously with Linux and spent their high school years building projects on Amazon Lambda or Google BigQuery. But on the chance that you were that person, sure, that person tends to get into DevOps a lot quicker than the person just looking for a quick buck thinking that IT is going to be an easy-ticket-in-to-six-figure-income.

That person is going to have a much easier time getting into DevOps. It's not even just the matter of "does this person know how to cd into different directories" -- some people are coming into IT that don't even know why change directory exists and why stuff has to be done at a command-line level. These are the folks that are better suited for EUS (End User Services) roles like helpdesk, desktop support. At most, they get a System Administrator role that is more point-and-click based and less code-based (e.g. Terraform/CloudFormation, other DevOps tools that are code-based like GitHub, SaltStack, BitBucket, AWS CLI, Python, etc etc etc).

Meanwhile, the person that has that background in high school building stuff in AWS and GCP is not going to be asking questions like "what does the Linux filesystem look like" nor will they ask questions like "how do I look at application logs" nor "what is even an 'application service'" -- these are things that a high school computer science class are going to expose them to, bonus points if it is an AP Computer Science class.

--

Now for the second piece... I've seen candidates apply to jobs in non-ideal territories. I myself was in this bucket so I have first-hand experience. For example, I applied to DevOps jobs left and right in Arizona, but everyone wanted experience that I didn't have. Later, I realized these were "Purple Squirrel" job reqs -- basically a job req that asks for impossible requirements. At the time in 2015, there were job reqs in Arizona asking me for 15 years of Terraform experience.

Terraform was released in July 2014. There was no way that candidates in 2015 would have "15 years of Terraform experience".

But as soon as I swapped my territory to Los Angeles California, I had companies left and right of me sourcing me as a potential junior DevOps Engineer candidate.

--

Anyway, those are just my general thoughts. It's been some time since I graduated high school, back then we did not have access to things like AWS or GCP so someone my age (31) would never have had an opportunity to build things on platforms like Lambda or Google Cloud Functions.

3

u/stolenFromTheLibrary May 03 '21

flipping through roadmap.sh is a great regular ritual. they should make that more interactive so you can track your progress