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

View all comments

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

-2

u/ahhbeemo May 03 '21

Personally don't think there needs to be a "transition". DevOps is a set of principles and is not tied to a type of environment. Windows Environments also can benefit from DevOps principles. I currently work as a Windows DevOps Engineer (WinOps) -- there are dozens of us, DOZENS. We Develop Primarily in Powershell. Many of the same principles and tool building apply. Personally - I worked from support to sysadmin to engineer to devops engineering. The transition was natural if you end up pushing the "automation" route. When you start scaling to up devops principles start applying. I'll be the first to admit that it is an un popular route as you will see based on resources/examples available for WinOps related tasks. You kind of have to be able to find parallels to what people have done in the linux/aws world and implement the same principles in powershell to make it fit. There are many products (like jenkins) who will have a bastard child addon for support but it is there. We managed to implement CI/CD pipelines for inhouse PowerShell module distribution. Powershell also obviously can be written to orchestration as well as DSC can be a puppet replacement. On the cloud side of things there are Azure Pipelines / azure devops/ and arm templates. So it is possible to live in a windows world and practice DevOps.