COMPLETE DEVOPS ROADMAP

Ann Afamefuna
3 min readJul 25, 2022

--

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

. Azure Resource Manager

. AWS CloudFormation

. SpectralOps

. Terraform

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:

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.

--

--

Ann Afamefuna

DevOps Engineer | Scrum Master | 3X AWS Certified | Product Manager | Agile Project Manager | Content Creator | Technical Writer | ATS CV/Resume Writer