DEV Community

Cover image for DevOps Roadmap - How to become a DevOps Engineer
TechWorld with Nana
TechWorld with Nana

Posted on • Updated on

DevOps Roadmap - How to become a DevOps Engineer

A roadmap of how to become a DevOps engineer in 2023

What does DevOps actually mean? And what is a DevOps Engineer? šŸ¤”

DevOps is a software development approach involving Continuous Development, Continuous Testing, Continuous Integration, Deployment and Monitoring.

The above process spans across the traditionally siloed teams of Development and Operations and DevOps tries to remove the barriers between them.

So, a DevOps Engineer works basically with the DEVelopment and OPerations team. It's the link between those 2 main parts.

Concepts vs Tools šŸ‘€

DevOps includes concepts like Build Automation, CI/CD, Infrastructure as Code, etc.. And there are numerous tools that enable these concepts to be implemented. And because of these vast number of tools, it can get confusing and overwhelming.

The most important thing is to understand the concepts and learn 1 specific tool for each category. E.g. when you already know what CI/CD is exactly and know how to use Jenkins, it will be easy to learn an alternative tool as well.

ā­ļø DevOps Roadmap to get started as a DevOps Engineer ā­ļø

Let's get straight into the roadmap of what skills you need to learn.

ā­ļø 1) Concepts of Software Development

As a DevOps engineer you will not be programming the application, but as you are working closely with the development team to improve and automate tasks for them, you need to understand the concepts of:

  • how developers work
  • which git workflow they are using
  • how applications are configured
  • automated testing

ā­ļø 2) Operating Systems & Linux Basics šŸ§

As a DevOps engineer you are responsible for preparing the infrastructure (servers) on which the application is deployed.

And since most of the servers are Linux servers, you need to know Linux OS and feel comfortable using the Command Line Interface. So you need to know:

  • basic Shell Commands
  • Linux File System
  • basics of how to administer a server
  • SSH Key Management
  • installing different tools on servers

ā­ļø 3) Networking & Security

You also need to know the basics of Networking & Security in order to configure the infrastructure, e.g.:

  • configure Firewalls to secure the application
  • understand how IP addresses, ports and DNS works
  • Load Balancers
  • Proxy Server
  • HTTP/HTTPS

However, to draw a line here between DevOps and IT Operations: You are not the SysAdmin. So you don't need advanced knowledge here. It's enough to understand and know the basics, because there are own professions like SysAdmins, Networking or Security Engineers

ā­ļø 4) Containerization - Docker šŸ³

As containers are becoming the new standard, you will probably run your application as a container. This means you need to generally understand:

  • concepts of virtualization
  • concepts of containers

Which tool to learn?
DOCKER - the most popular container technology today

šŸ‘‰šŸ¼ FREE Docker Course

ā­ļø 5) Continuous Integration and Deployment (CI/CD) šŸ”

In DevOps, all the code changes, like new features and bug fixes of developers, should be integrated in the existing application and deployed to the end user continuously and in an automated way. Hence the term: Continuous Integration and Continuous Deployment.

And setting up a complete CI/CD pipeline is the main task and responsibility of a DevOps engineer.

So when the feature or bugfix is done, a pipeline running on a CI server (e.g. Jenkins) should be triggered automatically, which:

  • runs the tests
  • packages the application
  • builds the Docker Image
  • pushes the Docker Image to an artifact repository and finally
  • deploys the new version to a server (which could be a DEVELOPMENT, TESTING or PRODUCTION server)

CICD Pipeline

So skills you need to learn here:

  • setting up the CI/CD server
  • build Tools & Package Manager Tools to execute the tests and package the application
  • configuring artifact repositories (like Nexus)

Of course, there can be more steps integrated, but this flow represents the core of the CI/CD pipeline and is the heart of the DevOps tasks and responsibilities.

Which tool to learn?
Jenkins is one of the most popular. Others: Bamboo, Gitlab, TeamCity, CircleCI, TravisCI

ā­ļø 6) Cloud provider ā›…ļø

Nowadays many companies are using virtual infrastructure on the cloud, instead of managing their own infrastructure. These are Infrastructure as a Service (IaaS) platforms, which offer a range of services, like backup, security, load balancing etc.

These services are platform-specfic. So you need to learn the services of that specific platform. E.g. for AWS you should know the fundamentals of:

  • IAM service - managing users and permission
  • VPC service - your private network
  • EC2 service - virtual server

AWS has much more services, but you only need to learn the services you/your company actually needs. E.g. when the K8s cluster runs on AWS you need to learn the EKS service as well.

AWS is the most powerful and most widely used one, but also most difficult one.

Which tool to learn?
AWS is the most popular one.
Other popular ones: Azure, Google Cloud

ā­ļø 7) Container Orchestration - Kubernetes āŽˆ

As I mentioned before, containers are widely used and in big companies hundreds or thousands of containers are running on multiple servers. This means these containers need to be managed somehow.

For this purpose there are container orchestration tools and the most popular one is Kubernetes. So you need to learn:

  • how Kubernetes works
  • administer and manage the Kubernetes cluster
  • as well as deploy applications in it

Which tool to learn?
KUBERNETES - most popular

šŸ‘‰šŸ¼ FREE Kubernetes Course

ā­ļø 8) Monitoring and Log Management šŸ”

Once software is in production, it is important to monitor it to track the performance, discover problems in your infrastructure as well as application. So one of your responsibilities as a DevOps engineer is to:

  • setup software monitoring
  • setup infrastructure monitoring, e.g. for your Kubernetes cluster and underlying servers.

Which tool to learn?
Prometheus, Nagios ...

šŸ‘‰šŸ¼ Prometheus Monitoring explained

ā­ļø 9) Infrastructure as Code

Manually creating and maintaining infrastructure is time consuming and error prone. Especially when you need to replicate the infrastructure, e.g. for a Development, Testing and Production environment.

In DevOps again, we want to automate as much as possible and that's when Infrastructure as Code comes into the picture.
With IaC we use code to create and configure infrastructure and there are 2 types of IaC tools you need to know:

  • infrastructure provisioning
  • configuration management

With these tools it's easy to replicate and recover the infrastructure. So you should know 1 tool in each category to make your own work more efficient as well as to improve the collaboration with your co-workers.

Which tool to learn?
Infrastructure provisioning: Terraform is the most popular one
Configuration Management: Ansible, Puppet, Chef

šŸ‘‰šŸ¼ Terraform explained
šŸ‘‰šŸ¼ Ansible explained

ā­ļø 10) Scripting Language šŸ‘©šŸ»ā€šŸ’»

Since you are closely working with developers and system administrators to also automate tasks for development and operations, you will need to write scripts and small applications to automate tasks.

In order to be able to do that you need to know a scripting or programming language.
This could be an OS-specific scripting language like bash or Powershell.

But what's more demanded is an OS-independent language like Python, Ruby or Go. These languages are more powerful and flexible. If you know one of these, it will make you much more valuable in the job market.

Which tool to learn?
Python: currently the most demanded one, which is easy to learn, easy to read and has many libraries available.
Others: Ruby, Go, NodeJS

šŸ‘‰šŸ¼ FREE Python Course

ā­ļø 11) Version Control - Git

You write all these automation logic mentioned above as code.
Just like the application code of developers, you manage this code and configuration files also with a version control tool, like Git.

Which tool to learn?
GIT - most popular and widely used


Good luck on your DevOps journey! šŸŽ‰ šŸ’Ŗ


Complete DevOps bootcamp to start your career as a DevOps engineer šŸš€

ā–ŗ More infos here: https://bit.ly/3gEwf4V
ā–ŗ Reduced EARLY BIRD prices until 28th of February šŸŽ‰

As the whole process is overwhelming, we constructed this program considering the above roadmap with the focus to get you job-ready and to help you learn these concepts and tools faster and more efficiently.

The bootcamp focuses on practical hands-on demos to follow along and to actually get confident to use these tools.


Like, share and follow me šŸ˜ for more content:

Top comments (9)

Collapse
 
vinayhegde1990 profile image
Vinay Hegde

Very well written article Nana! Just a few suggestions from personal experience, hoping they help:

  1. Hands-on knowledge with fair understanding of number 3 can save one's life, especially at a small company/startup where one is given the reins of the entire infrastructure.
    It also would help when one works with concepts like microservices, service mesh & distributed tracing.

  2. Points no 4, 7, and 8 are simply too vast to be covered in a roadmap, especially at the beginning of one's career. They are better grasped as one progresses along.

  3. Focusing on the why of things before coding to problem-solve as it's a transferable skill that'll serve one well regardless of workplaces.

Looking forward to more of your articles & videos, cheers!

Collapse
 
techworld_with_nana profile image
TechWorld with Nana

Thank you Vinay for the feedback and for your valuable insights!

Collapse
 
gksk profile image
gks

you have created best tutorials with a great animation and a clear explanation. Thanks For that. If possible please let me know the software you use for your presentation,animation,video making. This will help me as im also a Tutor in Udemy.

Collapse
 
righardtmarais profile image
Righardt

Great info Nana! I have been doing 'DevOps' role here in South Africa since 2000. The resources and information you gave here is very valuable for newbies. Great job.

Collapse
 
hassankhosseini profile image
Hassan Khajeh-Hosseini

This is awesome, thanks for writing this!

Collapse
 
germandude19 profile image
Mr.P Trades

Hello Nana,

Thank you for the article. I am interested to change my career to DevOps engineer. What would be the required timeframe required? I am following CloudGuru's Devops Path(learn.acloud.guru/learning-path/cl...). Do you have any suggestions? Thank you in advance :)

Collapse
 
cmmyim profile image
Marco Yim

Thanks for preparing this informative article.

Collapse
 
saroj8455 profile image
Saroj Padhan

Thank you

Collapse
 
rajiv_vijayaraj_dda2d9b93 profile image
Rajiv Vijayaraj

Hi Nana,

Is the Devops boot camp mostly meant for developers & System administrators or can someone who has no programming experience also take the course ?