DEV Community

Mubbashir Mustafa
Mubbashir Mustafa

Posted on • Updated on

DevOps Roadmap - become a DevOps engineer in 2021

Disclaimer: The article reflects my thoughts and understanding - others may disagree with the content 🙏đŸŊ

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"

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.)

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)

Discussion (7)

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.


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!.

mubbashir10 profile image
Mubbashir Mustafa Author

Thanks, your article looks good too!

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.

mubbashir10 profile image
Mubbashir Mustafa Author • Edited on

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!

ilovehacking92 profile image

Thanks for sharing your suggestions

ali_dot_ali profile image
Ali Ali

Glad to see you here.

dennisdeveloper profile image

Amazing, congratulations :D