DEV Community

Mubbashir Mustafa
Mubbashir Mustafa

Posted on • Edited on

DevOps Roadmap - become a DevOps engineer in 2022

What is DevOps (In my words):

  • A cross-functional mindset that makes your team more agile
  • The practice/culture to remove the barrier between developers (who develop apps, write code, are responsible for implementing feature requests, bug fixing, etc.) and operators (who deploy those apps, manage IT infrastructure/servers, and are responsible for uptime, security, stability, scalability, etc.)
  • Collaboration between operators, system administrators, DB administrators, developers, testers, etc.
  • A movement that essentially prevents people from saying "but it works on my localhost"
  • Honestly, a philosophy, one practical implementation is SRE

DevOps Focus Areas:

🎯 Reduce Organization Silos
Collaborate, communicate, educate and share.

🚀 Push Gradual Changes
Roll out small changes so that if something goes wrong you can easily roll back to a previously (acceptable) state.

🐞Embrace Failure
Wherever a human element is involved, failure is inevitable. A good DevOps strategy is one that considers failure as a normal thing.

📊Monitor Everything
Monitor everything, generate meaningful data, analyze it and reduce toil over a period of time.

🤖Tooling & Automation
Leverage tools to implement IaC and CI/CD


How to become a DevOps guy - a roadmap? (from a technical standpoint):
ℹ️ I have compiled the list in an order that I would follow if I am just starting

  • Computer Programming (any language will do - primarily, you should be able to write scripts)
  • Version control (git is a de facto standard)
  • Linux/Unix/Posix Compliant OS (get comfortable with it)
  • Basics of Computer Networking
  • Containerization (Docker, Podman, CRI-o, etc. - try to go for OCI compliant one)
  • Container Orchestration (Docker Swarm, Kubernetes, Mesos, .etc)
  • Cloud Platform (AWS, Azure, GCP, etc. - one important point here is that these cloud providers have so many products and it is assumed that you should be good in the ones that are needed in your workflow. For example, it is good to know how AWS Lex works, but it's not needed to become a DevOps engineer 🤷🏽‍♂️)
  • Continuous Integration/Continous Deployment/Continous Delivery - CI/CD (CircleCI, Github Actions, Bitbucket Pipelines, Gitlab CI/CD, Jenkins, Bamboo, Chef, AWS Code Build, AWS Code Pipeline, GCP Cloud Build, .etc)
  • Automation/Infrastructure as a Code or IaC (Terraform, Pulumi, Ansible, Puppet, Saltstack, .etc)
  • Logging and Monitoring (Grafana & Prometheus, etc.)

Notes:
You don't necessarily need to learn all of the available tools/services in a given category. For example, in the Cloud Platform section, the three big cloud providers out there have the following managed services for Kubernetes:

AWS-> (Elastic Kubernetes Service) EKS
GCP-> (Google Kubernetes Engine) GKE
Azure-> (Azure Kubernetes Service) AKS

Knowing more than one is desirable but not a requirement. I believe if you can deploy on one platform you should be able to deploy on the other as well.

Similarly in IaC, I would suggest you pick the ones that you generally enjoy working with or your potential employer/client is using.


What's Next?:
Once you are done with the list your basics are completed and you are ready to take on DevOps engineer role. You will also discover new tools as well along the way, like:
Helm (Kubernetes manager), Containerd (container runtime just like Docker, CRI-o), Packer (machine image builder for multiple platforms), Vagrant (headless virtualization), Prometheus (monitoring), Grafana (data visualization like Tableau, AWS Quicksight, .etc), Envoy (proxy like HA, Nginx, etc.), meshes (AWS Mesh, Istio, .etc) ....and many more 🤯 (so just don't be afraid, once your basics are strong you can give any and every tool a try and see if you enjoy it and if it's improving your workflow or it's just hype)

Top comments (7)

Collapse
 
epsi profile image
E.R. Nurwijayadi

You have a great list. Now I feel so small.

I have an article series about CI/CD, or to be exact just SSG deploying. It is a very small part of devops, but enough for beginner to start with.

🕷 epsi-rns.gitlab.io/devops/2020/02/...

CI/CD: Deploy Overview

I haven't got time to continue my exploration yet. But I think should write more to help other people.

Again, great list!.

Collapse
 
mubbashir10 profile image
Mubbashir Mustafa

Thanks, your article looks good too!

Collapse
 
mvidaurre profile image
Manuel Vidaurre

As you mentioned DevOps is a Culture, it is a mindset. There is the misconception that is a role or a position. Each developer and operation engineer should embrace the DevOps Culture/Mindset for be successful as an organization.

Collapse
 
mubbashir10 profile image
Mubbashir Mustafa • Edited

I totally agree with you. Being agile and cross-functional is really something teams should strive for. But I think HR/recruitment industry works differently. But yeah, lately companies are hiring SREs, which is a role instead and is the practical implementation of DevOps.

Thanks for sharing your thoughts!

Collapse
 
ilovehacking92 profile image
ilovehacking92

Thanks for sharing your suggestions

Collapse
 
ali_dot_ali profile image
Ali Ali

Glad to see you here.

Collapse
 
dennisdeveloper profile image
Dennis-Developer

Amazing, congratulations :D