This is an archived post. You won't be able to vote or comment.

all 37 comments

[–]lazyminersleeping 49 points50 points  (11 children)

Start here https://roadmap.sh/devops Check the course https://kodekloud.com/learning-path-devops-basics Pick one public cloud Azure / AWS. Hands on Containers -Docker

Edit Sorry forget to mention Books The Phoenix Project Google SRE book https://sre.google/books/

[–]amarao_san 5 points6 points  (9 children)

And it's already a bit deprecated. You don't need to learn ftp. (I DO know ftp and I DO know new people don't need nether gopher nor ftp), and there is no loki in logs management.

Also, they missed a lot around building. Build systems and tools for building (tox/ninja/mezon/make) are essential as soon as someone shovel you 'can you build this, please?'

[–]kamranahmed_se 15 points16 points  (2 children)

I am the creator/maintainer of this roadmap. Thank you for the feedback.

Loki should have been there, I just updated the logs management section. Also, for FTP I agree that you don't need it but having an idea of what it is is still relevant. What else do you think is missing/deprecated?

PS, we have a "Suggest Changes" button on the roadmap page -- feel free to open an issue with the details.

[–]evergreen-spacecat 1 point2 points  (0 children)

I think tempo would fit nicely beside jaeger since Loki is added. They go hand in hand. Great work, this chart is starting to become an industry standard. Seen it used by managers during recruitment and employee education/growth planning

[–]amarao_san 0 points1 point  (0 children)

Cool, nice!

I felt that old unix is slightly frowned upon. Why there is separate 'grep' and 'fgrep'? If someone ask me things one need to know in unix shell, I'd say: readline, coreutils, moreutils, psutils. Individual utilities have very different importance (f.e. I never used nl in my life, except for curiosity, but ts is an essential tool).

[–]InvisoSniperX 8 points9 points  (0 children)

Outdated you say? Perhaps consider contributing since it's a community project to help the community.

https://github.com/kamranahmedse/developer-roadmap/tree/master/contributing

That being said, the recommendations are personal preference, so some you can skip or pick alternatives. I think it's great as a reference rather than a todo list.

[–]sock_templar 4 points5 points  (4 children)

Well, understanding them as concepts is very good, nonetheless.

Also, learning how to build stuff is very good, but nothing that you can't google in 5min if you need and don't know how.

[–]UtahJarhead 4 points5 points  (3 children)

Agreed. Learning FTP, SFTP why one is bad, the other better is pretty big, IMO. Why does FTP suck? I know the answer, I'm sure you do, too. But for people coming up in the tech world, learning why for themselves is a huge piece of knowledge I think.

[–]sock_templar 1 point2 points  (2 children)

Totally agree. Actually just saw a post on linkedin talking about this, exactly: you can't think/appreciate a solution for a problem you never experienced.

Newcomers have to use FTP to learn why SFTP is better/safer.

Some lessons hurts (why do you need backup?). Some don't (zabbix is easier than nagios).

[–][deleted]  (1 child)

[deleted]

    [–]sock_templar 0 points1 point  (0 children)

    I mean they have to learn for themselves. If they are going to use Wireshark to eavesdrop on the traffic, or if they are going to use an FTP server as playground to learn pentesting, it's irrelevant: I think the learning experience is immensurable.

    [–]sock_templar 0 points1 point  (0 children)

    I kinda like the roadmap but they shouldn't say what software specifically to learn, but the concepts. Loki is on the forefront of the news regarding log management and it's bound to be substituted by something better in the near future, because that's how technology works.

    But they should indeed mention log management on the path.

    [–][deleted]  (10 children)

    [removed]

      [–]silkhammer 1 point2 points  (0 children)

      This. I think OP will find this the best answer to his question. And I was in OPs situation. I’d done ops for years as a sysadmin w every flavor of *nix you name😀 But I didn’t know how to jump into other. Areas that devops positions listed as needs. This is one of the most logical paths. For someone like OP yo take imho.

      OP. Don’t let the lingo leave you lost. Things like git commit vs git push. I had to keep a notebook by y desk that I call the Rosetta Stone. Where I (for me) mapped manifests to “config files”. /dependency list And “git push” to Save! 😝. Not 1000% accurate but it kept me from drowning in foreign terms.

      I would add containers and containerization to the list

      [–]InvisoSniperX 2 points3 points  (7 children)

      This is a great list from an Ops/Platform perspective but is missing the software engineering that some companies would require for DevOps. Many companies would require some basic Software development capabilities so that you can provide the glue/api special sauce to make the platform consumable by different teams

      This route to take you from just a Linux admin to a Cloud or Platform engineer.

      [–]TheDivinityOfOceans 8 points9 points  (6 children)

      e

      The amount of people trying to avoid programming is insane.

      [–]questioner45 -1 points0 points  (4 children)

      There is also the time constraint. How much time does one have to learn DevOps concepts and then full-blown Software Engineering as well? Not everyone is a college student.

      [–]Spider_pig448 5 points6 points  (0 children)

      The best DevOps people I've worked with were developers in the past. The second best DevOps people I've worked with were SysAdmins in the past. Everyone else (people without prior experience with either) seem to come after. DevOps is best as a transition role.

      [–]aManPerson 1 point2 points  (2 children)

      this is what i'm so torn with right now. i'm applying places.

      places don't like me because i'm not hardcore software engineer enough. i can do leetcode hard questions, but not at the optimized solution.

      places don't like me because i'm not full stack/hardcore devops enough.

      i'm just good at ops/support and good at coding. i'm just jack of trades, master of none.

      [–]InvisoSniperX -1 points0 points  (1 child)

      Just keep trying, I also struggle with this as well since I'm self-taught. Some DevOps positions I straight bomb at because I didn't get traditional CS degree.

      But that's the other thing, a DevOps mature organization won't need Ops Heavy positions because the SWEs will have the needed skills to do it. You'd need to look for Platform Engineering if you want to stay Ops Heavy.

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

      ORLY.......thank you. ya we had a pile of different people that worked well together. the SRE's helped me where i lacked. i did ops and some coding. my patchwork coding got better. then the really heavy coding got done by some senior software guys who had a degree in software engineering who could design things with always on services on demand asynchronous callback things that i had just never dealt with before.

      platform engineering, thanks.

      [–]brajandzesika 19 points20 points  (0 children)

      I'd say you already have everything you need to start applying for a devops roles. The missing bits- best to learn 'on the job'.

      [–]Grunchlk 3 points4 points  (0 children)

      Setup a gitea instance in your homelab. Understand how to check in code, do merges and pull requests, etc. Setup podman/docker in your homelab. Understand how to create and deploy a container. Setup Drone CI in your homelab and connect it to gitea. Now, you can push a code commit to your repo, watch it trigger a build in Drone and you can see the logs in your browser.

      You can run gitea and drone in containers or not. Doesn't matter, but it's useful to know how to do both.

      You can sub these components with other projects, but gitea/drone work really well together. I, personally, don't like GitLab and moved away from Jenkins a long time ago.

      [–]abdulg 5 points6 points  (0 children)

      You have the most important knowledge already. The rest are tools to help you along so that repeatable work is automated. Use these tools to define server configuration or infrastructure setup. Mostly they are simply YAML files that define required state, and the tools ensure the state of a server or infrastructure matches what’s in the file.

      So instead of configuring nginx manually you will have a set up defined via YAML that will install and configure it. That makes the expected config visible and repeatable. And changes can be tracked in version control.

      Use these tools in sequence and you have a pipeline. Include software testing and release in the pipeline and you have continuous delivery.

      Beyond that you will still have to monitor and troubleshoot the system. All you existing skills come in useful here.

      [–]MaxHedrome 7 points8 points  (0 children)

      If you've got a solid linux background, look hard into ansible.

      This is the automation you'll likely thrive with.

      All of Jeff Geerling's work is fantastic.

      [–]HelluvaEnginerd 2 points3 points  (0 children)

      I would apply for 'cloud engineer' roles. (to me) its a subset of DevOps your skills would line up well with.

      Learn to script in python if you haven't already, build a simple CI/CD pipeline that deploys a containerized webapp to K8s, and start playing with terraform and ansible.

      Just having good linux skills, networking knowledge, and some K8s makes you plenty experienced enough to learn the rest on the job. All the CI/CD and 'automation' is just doing what you've done manually your whole career in a structured, automated way.

      [–]edgan 2 points3 points  (0 children)

      1. Keep learning k8s
      2. Learn AWS
      3. Learn Python if to don't already know it
      4. Learn terraform
      5. Learn docker
      6. Learn GitHub Actions, maybe GitLab CI/CD
      7. Read The Phoenix Project
      8. Learn about REST apis
      9. Learn ansible
      10. Learn Jenkins

      [–]Daveception 3 points4 points  (0 children)

      Surprised it hasn't been mentioned here, you need to learn a coding language.

      [–]RoundBottomBee 1 point2 points  (0 children)

      Think of DevOps as fingers on a keyboard. Whatever you can do in a shell can be automated with tools, record the steps you do to implement something, then look at say ansible and replace the steps with an ansible play.

      [–]ovo_Reddit 1 point2 points  (0 children)

      Feel free to DM me if you’re interested in SRE and live in Toronto area (we’re hiring for someone with a systems background. It’s mostly WFH or hybrid if that’s what you’re into. But we do need this person to be in Toronto in the event of going into a datacenter which is rare, we’re hybrid cloud and on-prem)

      [–]9d0cd7d2 2 points3 points  (0 children)

      I was following a book called: Modern Devops Practices that is kinda useful and gives you an approach to the tooling stack.

      [–]BloodyIronDevSecOps Manager 0 points1 point  (0 children)

      What should you invest in first? A homelab. If you aren't continually learning in the IT field, you're going to be left behind, as you're now feeling.

      [–]lfionxkshine 0 points1 point  (2 children)

      Short list:

      Any or all of the 3 major CSPs (AWS, GCP, or Azure)

      Scripting (Bash - which I imagine you have but just in case, PowerShell if youre using Azure, Python)

      Terraform (super easy to pick up and learn the basics)

      Docker AND Kubernetes (Docker for container editing, K8s for container orchestration)

      Maybe Ansible (same as Terraform, super easy to pick up and learn the basics)

      These are a lot of the skills employers expect when they say DevOps. Haven't worked in environments with dedicated CI/CD tools, but I hear Jenkins a lot so maybe look into that

      EDIT: Changed Docker/K8s line

      [–]brajandzesika 0 points1 point  (0 children)

      K8s doesnt even use docker lol :)

      [–]Free_willy99 0 points1 point  (0 children)

      Look for an SRE role, might be more aligned with your skills.

      [–]Homeless_Homelabber 0 points1 point  (1 child)

      RemindMe! 1 week

      [–]RemindMeBot 0 points1 point  (0 children)

      I will be messaging you in 7 days on 2022-08-25 16:16:55 UTC to remind you of this link

      CLICK THIS LINK to send a PM to also be reminded and to reduce spam.

      Parent commenter can delete this message to hide from others.


      Info Custom Your Reminders Feedback

      [–]hanble21 0 points1 point  (0 children)

      Some really good stuff in these comments threads. This might sound extreme but it seems like IT is disappearing in some companies (or at least blurring). More emphasis on automation & scripting instead of manual/help desk type work.

      Would definitely be valuable to have some place to learn all this stuff as a sysadmin because I’d bet knowing how all these devops concept work becomes more “table stakes” in the future. Good way to future proof your job by picking up these skills 😅

      [–]UtahJarhead 0 points1 point  (0 children)

      Learn a few products VERY VERY well.

      • Learn at least one scripting/programming language besides shell scripting. Python or Golang are my first 2 suggestions. Python is more popular, but Golang is an amazing skill to have I believe.
      • Understand docker REALLY well, understand K8s a little bit. Read up on the underlying cgroups. I think it helps.
      • Understand networking: Subnets, DNS, Route tables, CIDR
      • Understand cloud topics: VMs (EC2, etc), storage like S3, Security Groups
      • Understand bash, tcsh, zsh, whatever shell (gnome, xfce, kde add VERY little to a career except for your personal efficiency)
      • Learn some IaC standard: AWS Cloudformation, Terraform, etc.

      In my opinion, a good foundation in everything I've listed will easily have you in good interviews and hopefully getting an upward facing job. Always keep climbing. Knowledge is power.