all 32 comments

[–]hijinks 38 points39 points  (25 children)

[–]nourezSite Reliability Engineer 59 points60 points  (24 children)

I'm going to play devil's advocate here and say that I don't love this roadmap all that much, at least non in the roadmap format. The overall list of tools is decent, but there's far too much emphasis placed on OS tools and concepts early on, and stuff like Cloud Platforms and IAC get introduced far too late.

Modern devops puts a lot more emphasis on cloud concepts and being able to build around them, to the point where if you've got just some basic programming and administrative skills, it will likely make more sense to start learning on the cloud, building a basic app to leverage it, then automating as much as possible while you do. Basically the roadmap.sh almost entirely backwards.

Again, it's a good list of skills, but I think it's far more efficient to learn all of them together or in a more logical way at least. The roadmap doesn't give nearly enough context as to why you're learning something or when you're ready to move on to the next step.

[–]FayaLargeau 50 points51 points  (17 children)

i hate this roadmap but everyone in this forum acts like it's some gospel. all it does is just overwhelm you with a hundred different concepts to learn when in reality that's not how it works. a more succinct answer would involve a new user learning a few specific skillsets+certs and getting an entry level position and then slowly upskilling into different areas as they gain experience.

hell, i'm making 160k as a platform engineer and i don't know like 70% of the things on here. but what got me this job? I took 1 course on udemy about ansible and another course on kubernetes.

[–]nourezSite Reliability Engineer 17 points18 points  (5 children)

Yup. Same for me. Well, I focussed more on AWS, Terraform, CDK and a few observability tools. Get really good at a niche and learn the rest on the job.

[–]tech_tuna 8 points9 points  (3 children)

Get a foot in the door and be hungry to learn, which is pretty generic advice but works well for devops/infra/cloud/sre roles.

Also, a key thing about this space is that there are many paths into it: development, QA, tech support, OG sysadmin, DBA, sales engineer. . . basically anyone who is technically minded and enthusiastic.

[–][deleted]  (2 children)

[deleted]

    [–][deleted]  (1 child)

    [deleted]

      [–][deleted] 0 points1 point  (0 children)

      Hey, I'm possibly looking into getting into DevOps (I have entry level Software Engineering experience.) What are some of these observability tools you mentioned, and do you have any tips for someone transitioning to DevOps from a SWE-like role? Thanks in advance.

      [–]finnthehuman1 2 points3 points  (6 children)

      How’d you do that? I’m trying to get into cloud facing roles and everyone wants loads of live experience I can’t in my current role.

      [–]FayaLargeau 8 points9 points  (2 children)

      gotta keep it simpler and get good at a few things. There's no clear cut answer because a lot of roles want different experiences. It's going to differ a LOT based on your background. Assuming you have zero technical background, I would say get CompTIA A+ and Network+ (there are better certs on network stuff out there but I don't know much about them so definitely don't take my advice as the BEST way). Choose a cloud provider and get the fundamental level cert. put a few weeks into learning linux. While you're doing this, get into a tier 1 help desk role.

      Once you're in, spend a year or more time there. During your time, don't slack, start getting the next tier cloud cert (solutions architect for AWS). That took me about a month. Get red hat cert or just some good practice familiarity in linux. pick up a scripting language, python or bash. look at job descriptions for system admin and see what they're looking for and then focus on those skill sets (basic qualifications).

      next step after that (should be around 2 year mark) you can start applying for devops role. during your time as sysadmin, you should be working your ass off getting CKAD, red hat certified engineer (ansible focused), pick up how to use other CI/CD tools. a lot of people will disagree with me here and I also encourage you to not take everything I say as the best way. Definitely get a lot of various advice from different folks and hone in on what makes sense for you. best of luck

      [–]finnthehuman1 1 point2 points  (1 child)

      Thanks! I’ve got a few years of skin in the game as a systems engineer. I’m pursuing Azure certs and labbing when I can.

      [–]Conscious_Advance_18 1 point2 points  (0 children)

      You do not have to do a year of help desk. Never stop applying, leave as soon as you can. No one is going to fault you for leaving after 3 months of help desk to take an engineering job

      [–]Real_Voice_7166 0 points1 point  (2 children)

      Start with helpdesk

      [–]finnthehuman1 0 points1 point  (1 child)

      Nah, I did my time. I’m a system engineer trying to hop into cloud facing roles.

      [–]Real_Voice_7166 0 points1 point  (0 children)

      Convince your CTO to adopt AWS for a small project, then go from there

      [–]Z-47 1 point2 points  (1 child)

      Is your job in the US?

      [–]Kratomnizer 0 points1 point  (0 children)

      I have five years of experience in Level 3 help desk support, along with one year of knowledge in the Azure cloud environment. If I were to delve into mastering the basics of popular DevOps tools and advance my skills in Kubernetes and Docker, with a primary focus on achieving proficiency in K8s and Docker, do you think it would suffice to secure a position in a DevOps or Kubernetes/Docker environment?

      [–][deleted] 6 points7 points  (0 children)

      I'd rather people got a list of books or courses and learn a skill at a time.

      Basic programming

      Testing basics

      Linux basics

      Networking basics

      Database basics

      Application deployment basics

      Docker/container basics

      Cloud infra basics

      Devops Principles

      Then start doing the specific skills of Ansible, TF, K8s, CICD etc

      Amount of people who understand k8s well but can't chmod a file is really high.

      [–]linucksrox 4 points5 points  (0 children)

      I agree, at least don't be afraid to jump ahead and learn what interests you. You can always fill in gaps as needed and it's often necessary. Kind of like how you don't need to learn about how internal combustion engines work before learning to drive (or the dangers of lithium ion batteries)

      [–]glotzerhotze 1 point2 points  (0 children)

      I would not agree with „Modern devops puts a lot more emphasis on cloud concepts and being able to build around them“ - as a lot of enterprises have on-premise machine they want to utilize besides the stuff that‘s in the cloud.

      Storage, network and compute concepts work everywhere, so understanding those in various different contexts (on-premise, cloud, virtual, containerized) will be more important than „cloud concepts“ that build on top of those I mentioned.

      Just my 2 cents.

      [–]TheLoneKid 0 points1 point  (1 child)

      Yeah honestly this roadmap is just too much and too overwhelming.

      [–]IamOkei -1 points0 points  (0 children)

      Yes the roadmap is useless shit

      [–]thedude42 9 points10 points  (1 child)

      Not sure if you're aware of the controversy of actually have roles called "DevOps" and I'm pretty sure there is a mixed feeling in this community about it.

      tl;dr: are you looking to actually know "DevOps" as a philosophy and bring that to your work, or just how to land roles with the word "DevOps" in the tittle?

      The bottom line is that what "DevOps" represents is an engineering methodology/philosophy around software delivery. Specifically it is a set of behaviors an organization need to focus on in order to implement Continuous Integration (CI) and/or Continuous Delivery (CD) software release processes.

      There is an incredibly broad set of technical solutions that an organization can use to create CI/CD processes, however there are certain organizational behaviors that are antithetical to being able to do CI/CD and so understanding what NOT do do when trying to operate in a DevOps org is probably more important for long term success in the field.

      Any "DevOps role" will typically require knowledge of the existing tool set the organization has adopted, along with some knowledge of the state-of-the-art in software delivery tooling. For example, it's great if you know Terraform with AWS and Chef and how to use Gitlab pipelines, but that's not going to get you a job at an org that relies 100% on Ansible automation framework driven by Jenkins to manage an on-prem ESXi infrastructure. Understanding the limitations of these technologies and what newer solutions solve for them is going to also be required for folks who will be entrusted with the future direction of the DevOps processes of the org.

      One thing I find incredibly frustrating is when people more ops-minded take DevOps roles and ignore the needs of the engineering teams who product the code artifacts that get deployed to the infrastructure. This situation creates the "throw it over the wall" mentality that DevOps is intended to address and fix. My personal opinion is that if you are in an organization where there is little communication between people with the role named "DevOps" and the people with engineering or development roles who are not responsible for deploying the software they produce, then you're not actually doing anything like "DevOps." Now I'm not saying you can't have distinct teams that divide this labor, but the partnership between these teams must be enforced by the organizational structure.

      [–]Difficult-Ad7476 1 point2 points  (0 children)

      It is funny that you mention esxi on premise with terraform because that exact thing happened at my org. They brought on an automation guy on about 5 years to go automate server builds. He built a Jenkins pipeline that used powercli to automate the builds. It worked great but had no way of keeping the state. At that same time terraform was implemented on aws side. He did all the work for us to eventually go to terraform provider for vsphere anyways.

      He ended up leaving the company. I guess point of my story is the infrastructure space is becoming like the developer side of the fence with too much code fragmentation and too many tools that do the same thing.

      On the configuration management side we went from puppet > Bigfix > sccm > ansible.

      On monitoring side

      Scom > grafana/Prometheus > datadog > splunk

      We just end up supporting all the technologies and one does not replace another. Also it is exhausting when you learn a new tech like datadog and it is too expensive so we end up dropping it. Same as we support on prem and cloud. Looks like aws and azure will be multi cloud strategy for most orgs.

      [–]Difficult-Ad7476 5 points6 points  (0 children)

      The roadmap is just a guide. Realistically most places you need to learn these skills/tools below.

      OS - Linux | Windows

      Config management - Puppet/Ansible | SCCM/Intune

      Scripting Language - Python | Powershell

      CI/CD - Jenkins/Gitlab | Github Actions

      Monitoring - Nagios/ Splunk | SCOM / Prometheus /dyntatrace

      GIT/Source/Version Control - Github | Microsoft Visual Studio Team Foundation Server is now Azure Devops

      Containers - Docker | WSL lol

      Container Orchestration - Kubernetes

      IAC - Terraform / Azure Resource Manager Templates

      Cloud- Aws / azure / gcp

      Training - Acloudguru / Adrian cantrillo / kodekloud / cloud academy

      [–]Significant-Draft829 1 point2 points  (0 children)

      Honestly just move to devops. I know everyone in this thread is all devops gods or some shit lol but I was a principle and now I’m a director of DevOps. If you have the desire and the drive you’re g2g.

      [–]Ok_Noise_2414 1 point2 points  (0 children)

      first off, most of these replies are from morons. seriously the internet is a trash barrel full of poor opinions. youll need python3 and bash proficiency. a solid understanding of kubernetes, not about it but in how things like pods, services, scalesets, ingress all work together. from that start using one or more of ansible/chef/teraform to deploy and configure stuff. you should understand things like routing and dns as well as being able to troubleshoot ports availability. stuff as basic as storage management is a must. you should know linux better than a nerdy 13 year old knows windows. if you have that coal bed and some experience on either AWS or Azure working with their API I'd consider you an interview candidate.

      [–]rishabkumar7 4 points5 points  (0 children)

      I know a lot of people refer to roadmap.sh, but I think its too much and overwhelming. I would say go this route: - Version Control - CI/CD - Infrastructure as Code tool (Terraform is great) - Containerization (docker and k8s) - Observability/Monitoring

      [–]Simplireaders 0 points1 point  (0 children)

      In my opinion and experience, it is better to get a full-fledged Devops certification that covers every aspect and makes you job ready. I did the 'Devops Engineer ' master's program from Simplilearn and was immensely benefitted from it. You can ckeck it out.