DevOps Resources
GitHub - bregman-arie/devops-resources: DevOps resources - Linux, Jenkins, AWS, SRE, Prometheus, Docker, Python, Ansible, Git, Kubernetes, Terraform, OpenStack, SQL, NoSQL, Azure, GCP

ℹ️  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 submitting pull requests






  
    DevOps
    Jenkins
    Git
    Ansible
    Network
    Linux
    Terraform
  
  
    Coding
    Python
    Go
    Shell Scripting
    Kubernetes
    VictoriaMetrics
    Prometheus
    Mongo
  
  
    Cloud
    AWS
    Azure
    Google Cloud Platform
    OpenStack
    Security
    Puppet
  
  
    ELK
    DataOps
    OpenShift
    SQL
    Containers
  






DevOps Roadmap
Alternative Roadmaps
Learn About DevOps
Learn Git
Programming
Operating Systems
DevOps Toolchain


DevOps
DevOps Roadmap

The following path is opinionated. You can find alternative paths in the alternative roadmaps section
Do NOT attempt to learn everything, especially if you are a complete beginner (the burnout will make you regret you ever heard the word DevOps)
Learn enough to say "I know what is DevOps and I understand how to practice it". You can learn everything else by demand or when you feel ready

The must list



Topic
What to learn
Alternatives
Description




Version Control
Git
-
Version Control is used everywhere and Git is the leading version control technology


Programming
At least one programming language
None. Don't settle for learning only shell scripting
Anyone who practice DevOps should know programming to some extent


Operating System
Linux
Other distribution of Linux :D
Operating Systems is another must when it comes to DevOps


Protocols
DHCP, UDP, TCP, HTTP, SSH
Not as an alternative, you can simply learn later: NFS, NTP, FTP
Learn how these protocols work and what they are used for


Applications
Web Server, Load Balancer, Cache, Database

Learn how they work and try out some implementations (e.g. MySQL for databases and httpd for web servers)


System Design
Availability, Reliability, Scalability, Performance
Learn how to design infrastructure and systems




The second must list :)
Seriously though, don't try to master everything in this list and start with something that you are interested in. The order has no meaning in this case.



Topic
What to learn
Alternatives
Description




Configuration Management and IaC
Ansible and Terraform
CM: Chef, Puppet and Salt. IaC: Pulumi and CloudFormation



Cloud
Azure, AWS, GCP
-



Containers
Podman and Kubernetes
Docker instead of Podman. Nomad instead of Kubernetes



CI/CD
Jenkins, GitHub Actions
Gitlab CI, Circle CI, Argo CD



Logging and Dashboards
Elastic Stack, Report Portal, Grafana
Graylog, Splunk



Monitoring
VictoriaMetrics, Prometheus
Nagios, Centreon, Datadog




Alternative Roadmaps
There are other DevOps roadmaps and learning plans out there. If you feel the one above is little bit too much or just want to look at other options, maybe you'll find the following useful



Name
Description




DevOps Roadmap
DevOps skills roadmap. What to to learn at each step.


DevOps 3 Weeks Plan
Detailed plan on what to do at each day


How to Become a DevOps Engineer in Six Months?
Skills you need to become DevOps Engineer



Learn about DevOps



Name
Description




What is DevOps? - Amazon
Learn what is DevOps by Amazon and which AWS services can help you to practice DevOps


What is DevOps? - Red Hat
Learn what is DevOps by Red Hat, including many interesting articles


What is DevOps? - Microsoft
Learn what is DevOps by Microsofy, including Azure DevOps service


What is DevOps? - Google
Learn what is DevOps by Google


Who is DevOps? - Spacelift
Who is DevOps? Is it Worth it to Become a DevOps Engineer?



Learn Git
Make sure you are comfortable with the following list once you done learning Git basics

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



Programming
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
Write a script that extracts information from some website using web scraping libraries

Operating Systems
Deep dive into operation system internals. Linux should be your first choice.
Here is a list of resources that will help you learn Linux.
Also, don't waste a second on picking the right distribution. For learning OS concepts and internals, any distribution would work fine.



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
Virtualization
Storage

Linux Master Application
A completely free application for testing your knowledge on Linux

System Design
System Design can be a complex topic. For that reason, I've created a separate repository for you to learn it properly.

Tooling, Apps & Services



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.



Interactive practice and learning sites
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




Kodekloud Engineer
perform real tasks by working in a fictional organization


QWIKLBAS
AWS, GCP, ... lab practice



Community
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 :)



Conferences



Name
Comments




DevOpsDays
DevOps Conferences around the world


Velocity
Oracle's DevOps conference



Books
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


Essential Infrastructure as Code
VBook about automating software infrastructure by capturing desired configurations as a set of scripts.



Blogs & News
My top picks:



Name
Description




Codefresh Blog
Probably best GitOps content out there



Other DevOps & Software Engineering related blogs



Name
Description




Spacelift Blog
Excellent tech blog on Kubernetes, Ansible, Terraform and Engineering in general


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
Not only DevOps


Azure DevOps Blog
Microsoft DevOps Blog


DevOps Dudes
"Shortening the system development life cycle"


Netflix Tech Blog
Not Only DevOps


CloudBees Blog



Red Hat Blog
Not only DevOps


Atlassian DevOps Blog



Facebook Engineering Blog
Not only DevOps


DoorDash Engineering Blog
Not only DevOps


Palark tech blog
Tech blog dedicated to DevOps & SRE



Articles



Name
Description




Infrastructure as Code, Part One



DevOps Best Practices
What is DevOps + list of resources


Infrastructure as Code: Examples, Best Practices & Tools




DevOps Snippets



Name
Description




DevOpsnipp
Sharing DevOps Snippets


Gist
Not DevOps specific



Other Great Projects



Name
Comments




DevOps Wiki
"A wiki of Devops Tools, Tutorials and Scripts"


cheat-sheet-pdf
"Cheat-Sheet Collection for DevOps, Engineers, IT and more"


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



Interview Questions



Name
Comments




System Design Primer
"Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards."


kdn251
Interviews


DevOps Exercises
By topic, DevOps related questions and exercises



Misc



Name
Description




CheatSheets
CheatSeets for Kubernetes, Jenkins, YAML, Groovy, etc.


Codelabs
"Codelabs provide a guided, tutorial, hands-on coding experience"



Design & Architecture



Name
Description




The 12 Factor App
must-read in my opinion


A distributed Systems Reading List




DevOps Tooling

 CI/CD

 Jenkins (Managed & on-premise, Containers supported, Plugins)
 GitHub Actions (Hosted service)
 Travis (Hosted service)
 CircleCI (Hosted service)
 GitLab CI (Hosted service and on-premise)
 Bamboo (Managed service and on-premise)
 BuildKite (Hosted)
 Zuul (Hosted and on-premise)
 Drone
 Tekton
 Argo CD
 werf



Note: "Provisioning" tools can be used to perform configuration management to some extent. The same applies for configuration management tools, which can be used for pprovisioning.


 Provisioning

 Terraform (Open Source)
 CloudFormation (Available only on AWS)
 Pulumi (Open Source)



 Configuration Management (all Open Source)

 Ansible (Agentless, Mutable Infrastructure, Procedural)
 Puppet (Agent, Mutable Infrastructure, Procedural)
 Chef (Mutable Infrastructure)
 Saltstack (Mutable Infrastructure)
 Spacelift ($$$)



 Images

 diskimage-builder
 Packer



 Cloud

 AWS
 Azure
 GCP
 OpenStack



 Monitoring

 AppDynamics
 Datadog
 Dynatrace
 Monit
 Nagios
 Centreon
 New Relic
 Prometheus
 Sensu
 SolarWinds
 Statuscake - Website Uptime & Performance
 VictoriaMetrics - a fast, cost-effective and scalable monitoring solution and time series database.
 Zabbix



 Collector of Metrics by agent

 Telegraf



Monitoring


 Log Management

 Logstash
 Graylog
 Papertrail
 Fluentd
 Splunk
 SumoLogic



 Log aggregation system

 Loki



 Dashboards

 Grafana
 Kibana (Elastic)
 Report Portal (Mostly for Test Automation)



 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



 Issue Tracking

 Jira
 Bugzilla



 Code coverage

 Cobertura
 Clover
 JaCoCo



 Data Processors

 Spark
 Apache Hadoop
 Apache Airflow
 Presto



 Analytics Engines

 Druid
 Dremio
 Snowflake



 Operations Data

 Salesforce
 Zuora



 Containers Orchestration

 Kubernetes
 OpenShift
 Nomad



 Alerting

 PagerDuty
 ServiceNow
 Slack (Mostly used for IM)



 Metric Storage

 InfluxDB
 Splunk
 Cloud Storage services and Databases



More Infra & DevOps projects




Credits
Images and icons attribution can be found here
License

