This is a step-by-step guide on how to become a DevOps engineer, with links to relevant learning resources.
If you like or are using this project to learn or start your solution, please give it a star. Thanks!
In this phase, you will learn the fundamentals of Linux, shell scripting, and networking. Key tools include:
- Linux (Ubuntu, CentOS): Master basic commands, file systems, permissions, and more.
- Networking: Understand concepts like DNS, HTTP/S, and TCP/IP.
- Shell Scripting: Learn Bash and Python scripting for automation.
- Virtualization: Use tools like VirtualBox or Vagrant to create virtual environments.
- Git: Version control for managing code.
In this phase, focus on learning how to manage version control and automate the build process. Key tools include:
- Git: Master branching, merging, and pull requests.
- CI/CD Pipelines: Understand how to automate testing and integration.
- Tools: Jenkins, Travis CI, CircleCI, GitLab CI.
Here, you will learn to automate infrastructure management and deployments at scale. Key tools include:
- Infrastructure as Code (IaC): Automate resource management with tools like Terraform.
- Configuration Management: Use Ansible, Chef, Puppet, or SaltStack for configuration.
In this phase, focus on containerizing applications and deploying them. Key tools include:
- Docker: Learn to build and manage containers.
- Kubernetes: Orchestrate and scale containerized applications.
- Helm: Manage Kubernetes applications.
Learn about cloud platforms and monitoring tools. Key areas include:
- Cloud Platforms: AWS, Google Cloud, and Azure.
- Monitoring Tools: Prometheus, Grafana, ELK Stack for logs and metrics.
Master secure practices for managing infrastructure. Key areas include:
- Secrets Management: Use tools like HashiCorp Vault.
- Cloud Security: AWS IAM, VPC security, encryption best practices.
Learn how to scale applications and handle high traffic. Key tools and concepts include:
- Load Balancing: Use AWS Elastic Load Balancer, Nginx.
- Service Mesh: Istio, Linkerd for managing microservices.
Explore advanced topics like chaos engineering and serverless architecture. Key areas include:
- Chaos Engineering: Tools like Gremlin, Chaos Monkey.
- Serverless: AWS Lambda, Google Cloud Functions.
- Learning resources for DevOps Engineers (mostly free)
- 1. GIT
- 2. Learn one programming language
- 3. Learn Linux & Scripting
- 4. Learn Networking & Security
- 5. Learn Server Management
- 6. Learn Containers
- 7. Learn Container Orchestration
- 8. Learn Infrastructure as a code
- 9. Learn CI/CD
- 10. Learn Monitoring & Observability
- 11. Learn one Cloud provider
- 12. Learn Software Engineering Practices
- Additional resources
Your files, including application code and infrastructure as code, will reside in a GIT repository. Git is a free tool for source code management, used to track changes and enable collaboration in non-linear development.
Popular platforms for Git include GitLab and GitHub. Learn essential Git commands like git clone
, branch
, merge
, and how to work with pull requests.
Resources:
- Pro Git Book FREE
- Learn Git by Atlassian FREE
- Learn Git Branching FREE
- Learn Git & GitHub on CodeAcademy FREE
- Git Command Explorer FREE
- Git Immersion FREE
- A Visual Git Reference FREE
Engineers should know at least one language to write automation scripts. Common choices for DevOps include Python, Go, and JavaScript. Python, a multi-paradigm language, is often recommended for beginners due to its readability and versatility.
Resources:
- Automate the Boring Stuff with Python FREE
- Python Crash Course FREE
- The Modern JavaScript Tutorial FREE
- JavaScript Crash Course for Beginners FREE
- Eloquent JavaScript, 3rd edition FREE
- Go by Example FREE
Since most servers run Linux, familiarity with the OS and its command-line interface is essential. You’ll also need scripting knowledge (e.g., Bash, Powershell) for task automation.
Resources:
- Operating System - Overview FREE
- Shell Scripting Tutorial FREE
- Powershell Tutorial FREE
- Bash Reference Manual FREE
- Ultimate Guide to Getting Started with Ubuntu FREE
- FreeBSD Handbook FREE
- Linux Command Handbook FREE
Understanding network protocols, DNS, firewalls, and the OSI model is essential for configuring secure, efficient networks.
Resources:
- OSI Model Explained FREE
- Computer Networking: A Top-Down Approach book | Video Content video
- TCP/IP and Networking Fundamentals for IT Pros Pluralsight course
- DevSecOps: Securing CI/CD Udemy course
- Hands-On Security in DevOps book
Managing servers requires knowledge of proxies, caching, and web servers like Nginx and Apache, ensuring high availability and security.
Resources:
- What is a Reverse Proxy? FREE
- Cache Server Overview FREE
- Reverse Proxy vs. Forward Proxy FREE
- NGINX Handbook FREE
- Learn Apache Server FREE
- Learn IIS FREE
Containers encapsulate applications with all dependencies, ensuring they run consistently across environments. Docker is the leading container technology.
Resources:
- What are Containers? FREE
- Learning Containers from the Bottom Up FREE
- Docker Tutorial for Beginners FREE
- Docker Mastery Udemy course
Container orchestration automates the deployment and scaling of containers. Kubernetes is the most popular orchestration tool.
Resources:
- Kubernetes Crash Course for Beginners FREE
- Certified Kubernetes Administrator (CKA) Udemy course
- Learn Kubernetes FREE
Infrastructure as Code (IaC) allows engineers to automate the setup and management of infrastructure. Popular tools include Terraform, Ansible, and Puppet.
Resources:
- Official Terraform Tutorials FREE
- Comprehensive Guide to Terraform FREE
- Puppet Overview FREE
- Getting Started with Ansible FREE
CI/CD automates app development stages from integration to deployment. Popular tools include Jenkins, GitLab, and Azure DevOps.
Resources:
- Continuous Integration FREE
- CI/CD Pipeline Guide FREE
- Learn GitLab CI/CD FREE
- Jenkins from Zero to Hero Udemy course
Monitoring provides real-time insights into application performance. Popular tools include Prometheus and Grafana.
Resources:
- What Is Observability? FREE
- Learn Prometheus FREE
- Learn Grafana FREE
Cloud providers, such as AWS, Azure, and Google Cloud, offer APIs to provision and manage infrastructure. Learn to handle users, networks, and virtual machines.
Resources:
- Exam AZ-900: Microsoft Azure Fundamentals FREE
- AWS Developer by A Cloud Guru Learning Path
Working in a DevOps role involves following Agile practices and understanding the software development lifecycle (SDLC).
Resources:
- What is Scrum? FREE
- Software Development Life Cycle (SDLC) FREE
- Software Development Life Cycle (SDLC) Phases & Models FREE
- The Beginner's Guide to Agile in Jira: Course description FREE
- Learn SAFe FREE
- Learn Automation Testing FREE
- GitLab - Beginner's Guide to DevOps FREE
- Common SDLC Models FREE
- Work Tracking:** Asana, Monday, Jira, Trello, Azure Boards.
- Source code control: Git, Github, GitLab, BitBucket, Azure DevOps.
- CI/CD: Jenkins, Team City, Github Actions, Travis CI, Bamboo, Circle CI, Azure Pipelines, Octopus Deploy, Harness, CloudBees CodeShip.
- Source Code Analysis: SonarQube, Veracode.
- Artifact management: Artifactory, Docker Container Register, npm, Yarn, NuGet.
- Configuration Management: Terraform, Ansible, Puppet, Chef.
- Container orchestration: Docker, Kubernetes, Red Hat OpenShift.
- Monitoring: Prometheus, Grafana, Splunk, Dynatrace, Kibana.
-
The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations, Gene Kim, Patrick Debois, John Willis, Jez Humble
The book introduces product development, quality assurance, IT operations, and information security. It is a great read for those who are new to DevOps or who want to learn more about how the various components of DevOps work together.
-
Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations, Nicole Forsgren, Jez Humble, Gene Kim
This book presents both the findings and the science behind measuring software delivery performance. For promoting DevOps to senior management, it's a fantastic tool.
-
Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation , Jez Humble, David Farley
It introduces automated architecture management and data migration. Many of the deployment pipeline concepts that have since become standard were established in this book. Config as Code, build and deployment automation, and efficient testing techniques are covered in some technical detail. Its mostly technical book.
-
Team Topologies: Organizing Business and Technology Teams for Fast Flow, Matthew Skelton, Manuel Pais
The book talks about how to organize teams in a way that enables fast flow of value to customers. It provides a set of four fundamental team topologies: Stream-Aligned Teams, Enabling Teams, Complicated-Subsystem Teams, and Platform Teams, which can be combined and adapted to suit different organizational contexts.
-
Effective DevOps: Building a Culture of Collaboration, Affinity, and Tooling at Scale, Jennifer Davis, Ryn Daniels
The book provides effective ways to improve team coordination. It shows how to break down information silos, monitor relationships, and repair misunderstandings that arise between and within teams in your organization.
-
The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win, Gene Kim, Kevin Behr, George Spafford
It is a classic novel about effectiveness and communications. IT work is like manufacturing plant work, and a system must be established to streamline the workflow. One of the best books out there.
-
Site Reliability Engineering, Betsy Beyer, Chris Jones, Jennifer Petoff, Niall Richard Murphy
This book explains the whole life cycle of Google’s development, deployment, and monitoring, and how to manage the world’s biggest software systems (also known as SRE). Anyone who considers themselves to be more on the "Ops" end of the DevOps side or who wants to know how to strengthen the bonds between various Dev and Ops teams should read SRE.
We can even present this roadmap as a burger :).
If you think the roadmap can be improved, please open a PR with any updates and submit any issues. Also, I will continue to improve this, so you might want to star this repository to revisit.
- Open a pull request with improvements
- Discuss ideas in issues
- Spread the word