ℹ️  This repository is about gathering any useful resources and information regarding DevOps and secondly, provide some roadmap for those who want to practice DevOps.
đź“ť Â Feel free to add more resources by sumitting pull requests
Name | Description |
---|---|
DevOps Roadmap | DevOps skills roadmap. What to to learn at each step. |
What is DevOps? - Amazon | Amazon's "What is DevOps?" page |
DevOps Best Practices | What is DevOps + list of resources |
DevOps 3 Weeks Plan | Detailed plan on what to do at each day |
In general, you should be comfortable with:
- Commit changes to a project
- Submit pull/merge requests
- Working with branches
- Rebase changes (change order, squash, ...)
Name | Description |
---|---|
Interactive Git Branching Learning | Visual and interactive way to learn Git branching |
Learn git concepts, not commands | Article on Git concepts |
Codeacademy Learn Git | Not Free |
Practicing DevOps without knowing programming is like eating cornflakes with ketchup - it's just doesn't makes sense... (yes, my analogies are the worst). Here is a list of some good sites to practice programming in general:
Name | Comments |
---|---|
HackerRank | Practice Coding skills |
Exercism | Over 48 languages and 2600 exercises |
LeetCode | Practice programming online |
A better approach might be to actually write some DevOps related scripts or projects. Start simple. Here are some ideas:
- Write a script that gets a number of instances and a name of a platform (AWS, local, Azure, ...) as parameters and provisions those instances on the chosen platform
- Write a script to parse logs and extract some specific information you are interested in
Deep dive into operation system internals. I would say choose Linux but I must admin I'm biased. If you did choose Linux, here is a list of resources that will help you learn Linux
Name | Comments |
---|---|
Linux Journey | Written guides + exercises + quiz |
Techmint Linux | Written articles/lessons |
Linux Survival | Interactive guide |
Once you are familiar with the commands and feel comfortable enough to keep deep diving, learn some OS concepts:
- Memory Management
- Processes
- Kernel
- Virtulization
Name | Description |
---|---|
Periodic table of DevOps tools | Table of DevOps tools per category |
DevOps tool chest | List of DevOps tools |
DevOps Bookmarks | NSIA |
CNCF Cloud Native Interactive Landscape | CNCF's recommended path through the cloud native landscape |
DevOpsBookmarks | To discover tools in the devops landscape. |
Learning by doing proved to be a very effective way to learn new things. If you are at a point where you don't feel comfortable enough to do it by yourself and you look for some guidance, the following sites might assist you
Name | Description |
---|---|
KataKoda | Linux, Docker, ML, Kubernetes, ... environments and scenarios |
QWIKLBAS | AWS, GCP, ... lab practice |
Another great way to learn is to learn from the experience of others. For that, the are some excellent DevOps communities.
Name | Comments |
---|---|
Reddit DevOps | Reddit DevOps Community |
Linkedin DevOps | Linkedin DevOps Community |
DevOps Bits | Facebook DevOps group. Disclosure: I started it :) |
Read book! Practice is important and the best way to learn practical things but reading about cultures, methods, concepts, ... has its own important role in your path towards mastering DevOps and SRE.
Name | Comments |
---|---|
The Phoenix Project | DevOps explained through a story of a fictional company on the brink of a failure |
The DevOps Handbook | |
Google SRE books | Very detailed books on the theory and also practice of SRE |
Name | Description |
---|---|
opensource.com | open source related articles including DevOps |
CooperPress | various newsletters on different topics |
afreshcup | "covering Ruby on Rails and whatever else I find interesting in the universe of software" |
thisweekindevops.com | "DevOps news without the hype" |
Uber Engineering | Uber Engineering Blog |
Author | Name | Description |
---|---|---|
Emily Woods | Infrastructure as Code, Part One |
Name | Description |
---|---|
DevOpsnipp | Sharing DevOps Snippets |
Gist | Not DevOps specific |
Name | Comments |
---|---|
DevOps Wiki | "A wiki of Devops Tools, Tutorials and Scripts" |
System Design Primer | "Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards." |
awesome-sre | A curated list of Site Reliability and Production Engineering resources |
Name | Comments |
---|---|
DevOps Exercises | Personally, I think it's pretty decent :) |
System Design Primer | "Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards." |
kdn251 | Interviews |
Name | Description |
---|---|
CheatSheets | CheatSeets for Kubernetes, Jenkins, YAML, Groovy, etc. |
Codelabs | "Codelabs provide a guided, tutorial, hands-on coding experience" |
Name | Description |
---|---|
The 12 Factor App | must-read in my opinion |
A distributed Systems Reading List |
-
CI/CD
-
Provision
- Terraform
- CloudFormation (AWS only)
- Pulumi
-
Configuration Management
- Ansible
- Puppet
- Chef
- Salt
-
Images
-
Cloud
- AWS
- Azure
- GCP
- OpenStack
-
Monitoring
- Prometheus
- Nagios
- statuscake - Website Uptime & Performance Monitoring
-
Log Management
-
Dashboards
- Kibana (Elastic)
- Grafana
- Report Portal
-
Security
- Vault - "Secure, store and tightly control access to tokens, passwords, certificates, encryption keys for protecting secrets..."
- Open Policy Agent - "Flexible, fine-grained control for administrators across the stack"
-
Code review
- Gerrit - Code Review system
- PullPanda - A collection of Tools such as reminder & analytics
- Review Board
-
Code coverage
- Cobertura
- Clover
- JaCoCo
-
Data Processors
- Spark
- Apache Hadoop
- Apache Airflow
- Presto
-
Analytics Engines
- Druid
- Dremio
- Snowflake
-
Operations Data
- Salesforce
- Zuora
Images and icons attribution can be found here