Lev Goncharov
Infrastructure simplifying engineer
Devops Roadmap
Date: 2024-10-14
About industry
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.
Seniority
Learning journey: hard & soft skills
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.
Learning journey: skillset
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.
Learning journey: learn deeply
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.
Seniority levels
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+ |
Problem solving
Senior!=title
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.
A journey of a thousand miles starts with a single step
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
Lessons learned
- 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.
Materials
Intro
Intro: books
- 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
Intro: courses
- SRE
- IBM Applied DevOps Engineering Professional Certificate
- Information Technology (IT) and Cloud Fundamentals Specialization
- DevOps Mastery Specialization
- DevOps Complete Course Specialization
Intro: articles
- 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
Intro: videos
- 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
Network
Network: books
- Andrew Tanenbaum - Computer Networks
Network: courses
Network: articles
- 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
Network: videos
- 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
OS
OS: books
- Andrew Tanenbaum - Modern Operating Systems
- Brian Ward - How Linux Works
- Michael Hausenblas - Learning Modern Linux
OS: courses
- 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
OS: articles
- 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
OS: videos
- 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
OS: practices
OS: certifications
Docker
Docker: books
- Docker quick start quide
- Docker in Action, Second Edition by Jeffrey Nickoloff, Stephen Kuenzli
- Docker Deep Dive: Zero to Docker in a single book
Docker: courses
Docker: articles
- 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
Docker: videos
- 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)
Docker: certifications
CI/CD
CI/CD: courses
CI/CD: articles
- 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
CI/CD: videos
- 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
Cloud
Cloud: books
- 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: courses
- AWS Monitoring and Observability
- Microsoft Azure Fundamentals (AZ-900)
- Azure Administrator Certification (AZ-104)
Cloud: articles
Cloud: videos
- you need to learn Google Cloud RIGHT NOW!!
- Google Cloud Associate Cloud Engineer Course - Pass the Exam!
IaC
books
- Ansible for DevOps: Server and configuration management for humans
courses
- Complete Terraform Course - From BEGINNER to PRO! (Learn Infrastructure as Code)
- Getting started with Ansible
- Ansible 101
articles
- 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
videos
- Terraform explained in 15 mins - Terraform Tutorial for Beginners
- How to Manage Secrets in Terraform?
- you need to learn Ansible RIGHT NOW!! (Linux Automation)
practices
certifications
k8s
k8s: books
- Kubernetes in Action by Marko Luksa
- Learn Kubernetes in a Month of Lunches
- Kubernetes Patterns by Bilgin Ibryam, Roland Huß
k8s: articles
- 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
k8s: videos
- 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
k8s: practices
Monitoring
Monitoring: books
- Monitoring with Prometheus
- Prometheus: Up & Running by Brian Brazil
- Practical Monitoring by Mike Julian
Monitoring: courses
- Mini Beginner’s Crash Course to Elasticsearch
- OpenTelemetry Tutorials
- OpenTelemetry Bootcamp Tutorials - Complete Course
- Appdynamics Basic To Advance Level Tutorials
Monitoring: articles
- 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
Monitoring: videos
- 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
Monitoring: certifications
Soft-skills
Soft-skills: courses
Soft-skills: articles
- 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
Development
Development: books
Development: courses
- 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
Development: articles
- Git squash commits
- Git reset
- Git revert
- Git cherry pick
- Git amend
- Git LFS
- Oh shit, git?
- GitHub flow
- What is gitlab flow?
- Calendar versioning
- romver