Date: 2024-10-14
One who wants to become a devops engineer should learn a lot in this journey. Before sharing the materials let me put things from A to Z and clarify who is who and why. I don't want to touch salary topics because it's quite well described in the The Trimodal Nature of Software Engineering Salaries in the Netherlands and Europe.
Usually before the senior level there is nothing interesting - you just learn, get practice & increase expertise. However at some point of time you should decide which track to choose. More technical or more people related. Soft skills (time management, mentoring, knowledge sharing, etc.) are also crucial and it is not possible to continue without them.
Usually devops is a person with the combination of different skills. An those knowledge should be gotten in more less defined order. It's doesn't make sens to learn IaC without understanding underlaying principles of clouds, OS and networks.
In that journey you should learn deeply instead of technologies on the TOP. If you have fundomental knowledge it will you ability to troubleshoot complex problems.
Some times it's tricky to understand current seniority level, so you can estimate your level according the table. It's not precise defenition but you can use it as a lighthouse in the journey. But please keep in mind that seniority it's not about the title.
| Role | Planning Timeframe | Complexity | Risk Management | Domain Expertise | Big Picture Understanding | Influence on People | Experience (Years) |
|---|---|---|---|---|---|---|---|
| Junior | 1-3 days | Simple tasks | Escalate | Learning domain | Not expected | Self | 0-2 |
| Middle | 1-2 weeks | Tasks | Report issues | Competent domain | Understand strategy | Self | 2-5 |
| Senior | 2 months | Problems | Tasks risks | Expert domain | Propose solutions | Team (2-5) | 5+ |
| Staff | 6 months | Complex problems | Project risks | Company leader | Evaluate strategy | Teams (10+) | 10+ |
| Principal | 1 year | Reduce complexity | Company risks | Company leader | Support strategy | Organization (50+) | 12+ |
| Distinguished | 1-2 years | Coordinate problems | Industry risks | Industry leader | Lead strategy | Company (1000+) | 14+ |
| Fellow | 3-5 years | Pioneer areas | Existential risks | Industry leader | Define big picture | Industry (10000+) | 15+ |
It's quite tricky to understand the current level. However, if you create a new complex problem from the existing problem then it might be possible that you are junior and just gaining the expirience. And it's ok. But in case of senior people expect that he provides the most optimal and efficient sollution. It can be used as a marker.
But it is crucial to keep in mind that our brain is too crucial. If you think that you know everything usually you know too litle. Becaus if you learn you understand that world is much more complicated that you can expect
- Senior != title.
- Have a passion for engineering.
- Learn English.
- Increase observability (read fundamental books, do pet projects, and take courses).
- Learn deeply and be T-shaped.
- Say YES to learning/POC/MVP, and say NO to bad practices. Kludges shall not pass.
- No pain, no gain. Hands-on experience is crucial.
- Soft skills (time management, mentoring, knowledge sharing, etc.) are also crucial.
- Work/life balance is important.
- Work in good places and treat others with respect.
- A journey of a thousand miles starts with a single step.
- The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win
- Scalable Internet Architectures - T.Schlossnagle - 2007
- Site Reliability Engineering - B.Beyer, C.Jones - 2013
- The site reliability workbook - B.Beyer, C.Jones - 2016
- Engineering DevOps: From Chaos to Continuous Improvement... and Beyond
- The DevOps Adoption Playbook: A Guide to Adopting DevOps in a Multi-Speed IT Enterprise
- Operations Anti-Patterns, DevOps Solutions
- SRE
- IBM Applied DevOps Engineering Professional Certificate
- Information Technology (IT) and Cloud Fundamentals Specialization
- DevOps Mastery Specialization
- DevOps Complete Course Specialization
- DevOps school
- DevOps Roadmap №1
- DevOps Roadmap №2
- DevOps Roadmap from octopus
- DevOps / SRE / System engineer roadmap
- How they DevOps
- DevOps tutorial
- Live the DevOps Dream!
- Scaled Agile Framework SAFe 6.0 Framework
- Apply agile practices to manage your work
- What is SRE - Tasks and Responsibilities of an SRE - SRE vs DevOps
- Cloud Engineer vs DevOps Engineer - Differences and Overlaps of tasks and responsibilities
- What is Platform Engineering and how it fits into DevOps and Cloud world
- Andrew Tanenbaum - Computer Networks
- 7 Linux networking commands that every sysadmin should know
- A beginner's guide to network troubleshooting in Linux
- HTTP/3: practical deployment options (part 3)
- The illustrated TLS 1.2 connection
- NFS vs. CIFS vs. SMB: file share protocols compared
- How to display network traffic in the terminal
- Command line bandwidth monitoring tool for linux
- Security implementations at different layers of the osi model
- How To Lookup DNS Records With The dig Command
- 2 cool (web) things to do in Linux // Linux for Hackers // EP 8
- OSI and TCP IP models
- HTTP/1 to HTTP/2 to HTTP/3
- Let's encrypt explained: Free SSL
- Andrew Tanenbaum - Modern Operating Systems
- Brian Ward - How Linux Works
- Michael Hausenblas - Learning Modern Linux
- The Linux Basics Course
- Linux Crash Course
- Linux for Hackers (and everyone)
- Bash Scripting on Linux
- Operating System Tutorial
- Complete-Bash-Shell-Scripting-
- Advanced Bash-Scripting Guide
- Top 50+ Linux Commands You MUST Know
- Hard links and soft links in Linux explained
- Getting to know the XFS file system
- Linux ate my ram
- Controlling Process Resources with Linux Control Groups
- USE Method: Linux Performance Checklist
- How to troubleshoot high I/O wait time in Linux
- SSH Security Best Practices: Protecting Your Remote Access Infrastructure
- How to improve your SSH security
- How PAM NSS SSD work together on Linux OS
- The Linux Command Handbook – Learn Linux Commands for Beginners
- What's the difference between set, export and env and when should I use each?
- Difference between sh and Bash
- Half of bash history is missing
- How to Learn Linux Shell Scripting for DevOps?
- Bash scripting cheatsheet
- Bash Scripting Exercises and Solutions
- Bash online compiler
- neofetch
- fastfetch
- 60 Linux Commands you NEED to know (in 10 minutes)
- Tuesday Tech Tip - The State of Copy-On-Write File Systems
- Performance Test (Btrfs, ext4, f2fs and xfs) on Linux
- Linux Crash Course - The lsof Command
- Demystifying the Top Command in Linux - Linux Crash Course Series
- 3 Important Tweaks for Improving OpenSSH Security on Your Cloud Instance
- 5 Must Have Tweaks to Secure OpenSSH
- 5 Easy Tweaks to increase your Linux Server's Security
- you need to learn BASH Scripting RIGHT NOW!! // EP 1
- BASH scripting will change your life
- Docker quick start quide
- Docker in Action, Second Edition by Jeffrey Nickoloff, Stephen Kuenzli
- Docker Deep Dive: Zero to Docker in a single book
- Create a base image
- What is a docker image?
- About storage drivers
- Use the BTRFS storage driver
- Building best practices
- Speed up your docker builds with -cache-from
- What's wrong with the docker :latest tag
- Running docker in docker(DIND) a comprehensive guide
- Podman vs. Docker
- Docker compose overview
- How to run database backend and frontend in a single click with docker compose
- A container networking overview
- Docker and pid1
- Practically what is the difference between docker run -dit vs docker run
- Runtime metrics
- Collect docker metrics with prometheus
- Monitoring docker container metrics using cAdvisory
- Docker monitoring and integration with zabbix
- Read the daemon logs
- Local file logging driver
- 12 best docker container monitoring tools
- 100+ docker concepts you need to know
- Docker networking is CRAZY!! (you NEED to learn it)
- Docker Networking Tutorial (Bridge - None - Host - IPvlan - Macvlan - Overlay)
- What is CI/CD
- Glossary of delivery terminology
- Run your CI/CD jobs in Docker containers
- GitLab CI/CD examples
- Use kaniko to build Docker images
- Use Docker to build Docker images
- GitLab CI/CD variables
- CI/CD YAML syntax reference
- Environments and deployments
- Feature flags
- Control how jobs run
- Caching in GitLab CI/CD
- Job artifacts
- Optimize GitLab CI/CD configuration files
- CI/CD Catalog
- Packages and Registries
- GitLab Pages
- Monitoring Gitlab
- Monitoring of gitlab
- Pipeline security
- Test with GitLab CI/CD and generate reports in merge requests
- GitLab CI/CD vs. GitHub Actions
- GitLab CI/CD - GitLab Runner Introduction - 2022
- Jenkins Full Course - Jenkins Tutorial For Beginners - Jenkins Tutorial - Simplilearn
- CI/CD with JetBrains TeamCity - TeamCity Tutorial
- Bamboo Tutorial
- AWS Certified Solutions Architect Study Guide with Online Labs: Associate SAA-C03 Exam
- The Self-Taught Cloud Computing Engineer: A comprehensive professional study guide to AWS, Azure, and GCP
- Google Cloud Platform in Action First Edition
- AWS Monitoring and Observability
- Microsoft Azure Fundamentals (AZ-900)
- Azure Administrator Certification (AZ-104)
- you need to learn Google Cloud RIGHT NOW!!
- Google Cloud Associate Cloud Engineer Course - Pass the Exam!
- Ansible for DevOps: Server and configuration management for humans
- Complete Terraform Course - From BEGINNER to PRO! (Learn Infrastructure as Code)
- Getting started with Ansible
- Ansible 101
- IaC Development Life Cycle
- Agreements as Code: how to refactor IaC and save your sanity?
- How to test Ansible and don’t go nuts
- Lessons learned from testing Over 200,000 lines of Infrastructure Code
- A list of awesome IaC testing articles, speeches & links.
- Ansible: CoreOS to CentOS, 18 months long journey
- 20 Terraform Best Practices to Improve your TF workflow
- Terraform tips & tricks: loops, if-statements, and gotchas
- How to use Terraform as a team
- Automate Terraform documentation like a pro!
- Inject secrets into Terraform using the Vault provider
- How To Write Ansible Playbooks
- Terraform explained in 15 mins - Terraform Tutorial for Beginners
- How to Manage Secrets in Terraform?
- you need to learn Ansible RIGHT NOW!! (Linux Automation)
- Kubernetes in Action by Marko Luksa
- Learn Kubernetes in a Month of Lunches
- Kubernetes Patterns by Bilgin Ibryam, Roland Huß
- Let’s deploy to Openshift
- Why should you use Kubernetes in 2022? Or why not?
- Ingress Controllers: The Swiss Army Knife of Kubernetes
- How to use Envoy as a Load Balancer in Kubernetes
- An Introduction to HAProxy and Load Balancing Concepts
- HAProxy vs NGINX: Performance & Benchmark
- Kubernetes Resource Optimization: Just The Basics
- Creating a Custom Scheduler in Kubernetes: A Practical Guide
- Monitoring Kubernetes Performance: Key Metrics to Know
- Distributed tracing in Kubernetes apps: What you need to know
- Kubernetes Operator vs Helm: 11 Key Differences & Which One to Choose
- Difference between Kubernetes prometheues operator vs helm chart
- The Illustrated Children's Guide to Kubernetes
- Kubernetes Crash Course for Absolute Beginners NEW
- Kubernetes Architecture explained - Kubernetes Tutorial 15
- Traefik vs. Nginx performance benchmark
- Nginx vs. Envoy performance benchmark
- Istio & Service Mesh - simply explained in 15 mins
- Consul Service Mesh Tutorial for Beginners Crash Course
- Istio Setup in Kubernetes - Step by Step Guide to install Istio Service Mesh
- 38 - Node affinity и anti-affinity vs nodeSelector. podAffinity и podAntiAffinity в Kubernetes
- 39 - Taints и Tolerations в Kubernetes. NoSchedule, PreferNoSchedule и NoExecute
- Introduction to Flux CD on Kubernetes - GitOps - CICD
- Monitoring with Prometheus
- Prometheus: Up & Running by Brian Brazil
- Practical Monitoring by Mike Julian
- Mini Beginner's Crash Course to Elasticsearch
- OpenTelemetry Tutorials
- OpenTelemetry Bootcamp Tutorials - Complete Course
- Appdynamics Basic To Advance Level Tutorials
- Avoid These 6 Mistakes When Getting Started With Prometheus
- Prometheus Federation ⏤ Scaling Prometheus Guide
- Loki vs Elasticsearch - Which tool to choose for Log Analytics?
- Who is the winner — Comparing Vector, Fluent Bit, Fluentd performance
- Jaeger Tracing: The Ultimate Guide
- Open-Source Tracing Tools: Jaeger Vs. Zipkin Vs. Grafana Tempo
- What Is Observability? Comprehensive Beginners Guide
- How Prometheus Monitoring works - Prometheus Architecture explained
- How Fluentd simplifies collecting and consuming logs - Fluentd simply explained
- OpenTelemetry Golang Tutorial (Tracing in Grafana & Kubernetes & Tempo)
- OpenTelemetry Course - Understand Software Performance
- How to Make a Technical Speech and Not Go Nuts
- Lessons learned from working remotely for 3 years or how to save your bacon and sanity
- Time management in real life
- Programming languages
- Algorithms part 1 & part 2
- Competitive programming core skills
- Build a computer
- CS50
- Computer science
- Programming in python
- Google IT automation
- Programming with Google Go Specialization
- Introduction to python