COMPLETE DEVOPS ROADMAP
DEVOPS CAREER ROADMAP :
1. Learn programming languages.
Automation is a critical part of what gives the DevOps lifecycle its speed.
Learn one Programming language, very essential.
Programming languages to learn include:
. Go
. Ruby
. Python
2. Study operating systems.
OSs not only power the local machines that the team uses to communicate and complete their tasks, but OSs also run the servers that host the team’s deployed applications.
Every OS is different, so learning more than one is advisable.
OSs to learn include:
Linux (recommended)
centos
Windows
Ubuntu
Terminal
- bash scripting
- Vim/Nano/PowerShell/Emacs
- System performance (nmon, iostat, sar, vmstat)
- Text manipulation tools (awk, sed, grep, sort, uniq, cat, cut, echo, fmt, tr, nl, egrep, fgrep, wc)
- Process monitoring (ps, top, htop, atop, lsof)
- Network (nmap, tcpdump, ping, mtr, traceroute, dig airmon, airodump, dig, lptables, netstat
- Others (strace, dtrace, systemtap, uname, df, history)
- screen
- tmux
- terminal multiplexers
. Unix
. Windows
OS concepts to learn include:
I/O Management
Virtualization
Memory/Storage
File System
Process Management
Threads & Concurrency
Sockets
POSIX basics
Networking concepts
Startup Management (intid)
Service Management (systemd)
Managing Servers
. Process Management
. Sockets
. Threads and Concurrency
3. Networking security and protocols.
Networking protocols to learn include:
. HTTP
. HTTPS
. SSL
. SSH
Port Forwarding
Emails — White/Grey Listing
- SMTP
- IMAPS
- POP3S
- DMARC
- SPF
- Domain Keys
Reverse Proxy
Caching Server
Forward Proxy
Load Balancer
Firewall
Web Server
IIS
NGINX
Apache
Tomcat
Caddy
4. Understand Infrastructure as Code.
Infrastructure as Code (IaC) is a practice for streamlining the provisioning of infrastructure to support your application deployment.
Service Mesh
- Docker
. IaC strategies to learn include:
. Configuration Management
- Ansible
- Chef
- Salt
- Puppet
. Infrastructure Provisioning
- Terraform
- CloudFormation
- Pulumi
Container Orchestration
- Docker Swarm
- Kubernetes
- Mesos
- Nomad
. Pulumi
. Vagrant
. SaltStack
. Puppet
. Google Cloud Deployment Manager
. Chef
5. Adopt Continuous Integration/Continuous Deployment tools.
CI/CD tools support multiple phases of the pipeline and automate processes and handoffs to free up team members.
CI/CD tools to learn include:
- GitHub
- GitLab
- Bamboo
- Jenkins
TeamCity
Gitlab CI
Github Actions
Monitoring Software & Infrastructure
6. Invest in application and infrastructure monitoring.
Monitoring is the practice of watching for signs of trouble in your application and its underlying infrastructure so that your operations team can fix issues before they become outages. Naturally, this practice breaks down into two parts.
7. Application Monitoring
Internal issues with your application can manifest in multiple ways, so it’s best to monitor multiple metrics.
Application monitoring tools to learn include:
- Prometheus (recommended)
- Nagios
- Datadog
Application Monitoring
- New Relic
Logs Management
- Elastic Stack
- Splunk
8. Infrastructure Monitoring
The sooner your team can respond, the less impact these issues will have on your user experience.
Infrastructure monitoring tools to learn include:
- New Relic (recommended)
- Jaeger
- AppDynamics
- Prometheus
- Grafana
9. Study cloud providers.
Naturally, it’s important to understand the different cloud services available and their unique costs and benefits so you can select the best hosting for your finished applications.
Cloud providers to learn include:
- AWS (recommended)
- Azure
- Google Cloud
- Heroku
Digital Ocean
- Cloud Design Patterns
10. Learn cloud design patterns.
Cloud design patterns to learn include:
- Availability
- Data Management
- Design and Implementation
DevOps engineers touch the whole DevOps lifecycle, it’s better to know a little of everything than be strong in only a few areas. The individual contributors on your team are meant to specialize in their specific areas (development, networking, monitoring, etc.). You are responsible for moving the product between each contributor.