In this detailed guide, I have shared the practical roadmap for becoming a DevOps Engineer based on my 10 years of experience working as a DevOps Engineer in various organizations.
As for the current IT market, the DevOps domain is one of the best options for IT folks’ salary and career growth. One common question I get quite often is, “How to become a DevOps engineer?“
Many people argue (including me) that there is nothing like a “DevOps Engineer” or a “DevOps Team” because it is not a thing. However, everyone in the industry has now gotten used to the term “DevOps engineer, ” and as long as you understand the DevOps philosophy, these titles don’t matter much.
Toward the end of the article, I added the different teams a DevOps engineer can be part of.
There are many misconceptions about what DevOps really means. One such misconception is “Automation is DevOps.” Developing skills related to infrastructure automation is not enough to become a DevOps Engineer.
Wikipedia says,
DevOps (a clipped compound of development and operations) is a culture, movement or practice that emphasizes the collaboration and communication of both software developers and other information-technology (IT) professionals while automating the process of software delivery and infrastructure changes.
From the above definition, it is clear that DevOps is not about any tools or technologies. It is a philosophy for making different IT teams (Developers, Platforms teams, QA, Performance, etc) work together to deliver better and fast results through continuous feedback.
Here is an interesting trend graph showing DevOps popularity in the last five years.
Table of Contents
- Who is a DevOps Engineer?
- DevOps Engineer Roadmap
- Understand DevOps Culture
- Learn to Use Generative AI Tools
- Learn Linux
- Learn How Infrastructure Components Work
- Learn Cloud Computing & Virtualization
- Learn Infrastructure Automation
- Learn Container Orchestration and Distributed Systems
- Logging & Monitoring & Observability
- Learn Security Best Practices (DevSecOps)
- Learn Programming & Scripting
- Learn Git, GitOps & Learn to Document
- Understand End To End Application Delivery Lifecycle
- Resources
- DevOps vs SRE
- Different Types of “DevOps Teams”
- DevOps Engineer Roles & Responsibilities
- DevOps Engineer Interviews
- DevOps Engineer FAQs
- Read DevOps Blogs
- Document Your Learnings
- Conclusion
Who is a DevOps Engineer?
Organizations trying to practice DevOps require people with collaborative skills who are willing to change and adopt new technologies & methodologies. They are DevOps Engineers.
From a tooling perspective, a DevOps Engineer is someone who has a good understanding of Operating systems, Networking, automation tools, CI tools, Version control systems, monitoring & observability tools, Infrastructure as Code, and Programming/Scripting.
I have seen teams babysitting pipeline jobs for the infra/app build and release process. In the world of DevOps Engineers, the CI/CD pipeline designed/developed by the team should deliver small updates or releases without much manual intervention. It happens only if there is a cultural shift in the way different teams work.
For example, From my experience working as a DevOps Engineer, sitting with different teams and having an open conversation on pain points would solve many problems than plainly following a team-wise rule book. (And trust me, it is not as easy as it sounds 🙂
Another goal of DevOps engineers is to automate repeated tasks and spend more time on engineering and innovation.
DevOps Engineer Roadmap
You must understand the fact that DevOps is not specific to developers or system engineers. It’s for anyone passionate about evolving practices, and technologies and willing to work in a collaborative environment where everything is automated to make everyone’s life so easy.
It doesn’t matter whether you are a sysadmin, developer, tester, performance engineer, support engineer, etc. You can be a DevOps engineer because you are already part of an IT ecosystem that is responsible for deploying and managing applications to production.
This article explains how you should prepare yourself for tools and technologies to become a DevOps engineer who practices the DevOps philosophy.
Note: In this article, I have covered many verticals. A beginner can’t be a master of everything. However, having a fair amount of knowledge in these areas will help you become a DevOps engineer.
Understand DevOps Culture
To become a DevOps engineer, the first and foremost thing is to understand the DevOps culture. It is all about different teams working together towards a common goal. In other words, there should not be any blaming culture between different IT teams.
The following image says it all.
For example, If you are a devops engineer, never say “It’s not my job”, say, “Let me see what I can do to help.” How you respond has a significant impact on collaboration. (It doesn’t mean you have to spoon-feed people and do others’ work.)
Note: If you are fresh graduate, understanding cultural aspects is challenging because it comes with actual industry experience. So my advice would be to focus on core IT fundamentals (OS, Networking & Programming) and then move on to cloud & Devops tools.
IT leaders and decision-makers should ensure the entire team is mentored on DevOps cultural aspects before getting into DevOps toolsets. It avoids lots of confusion in the teams. It usually doesn’t happen in organizations, and they end up having a “DevOps Team” for operations, which again ends up in a siloed structure.
People would stop hiding the truth and stop blaming others for project issues once they understand that an issue in project delivery has to be addressed in a collaborative manner rather than pointing fingers. For example, a blameless postmortem.
Once you understand the DevOps culture, you will stop saying that “CI/CD and infrastructure automation is DevOps.”
I would suggest reading the state of the DevOps report by puppet. A must-read devops report for engineers and leaders.
Learning Resources
- DevOps Culture and Mindset [Coursera]
- The Phoenix Project [Recomended eBook]
Learn to Use Generative AI Tools
Learn to learn.
When I started my DevOps journey, I used to spend days learning and researching using Google and forums to learn new tools and technologies. Those days are gone now. Now, with a single prompt, you get the answers in seconds.
All you have to do is, ask the right questions. Have patience to read and you will gain so much knowledge.
We are in an era where there will be so many advancements in technology through AI tools. As an engineer, it is essential to use Generative AI tools like ChatGPT and Google Bard to learn the core basics without spending much time.
Because these tools can converse with you and give explanations in simple language. Further with chatGPT plugins, you can take your productivity to the next level.
So smartly do the hard work 🙂
Making use of AI tools for DevOps engineers is well put in this sentence
AI and automation tools have significantly changed the role of a DevOps engineer, reducing the time spent on routine tasks and increasing the focus on strategic, high-value work. It’s important for DevOps professionals to stay current with AI and machine learning technologies as they continue to evolve.
Learn Linux
We are in an era where we cannot live without Linux/Unix systems. You should get a better understanding and working knowledge of various Linux distributions highly used by organizations (RHEL, Centos, Ubuntu, CoreOS, etc.).
As per The Linux foundation case study, 90% of the public cloud workload runs on Linux.
Here is another interesting study from Redhat, which shows the different Linux distros used in the public cloud.
Now you have enough reasons why you should focus on Linux.
When it comes to Linux, it’s all terminal, GUI is less preferred in *nix world. Get your hands dirty with the terminals of these systems.
You can use a Virtual box with Vagrant or AWS/GCP/Azure to spin up Linux servers.
You can start with the following.
- Understand the Linux booting process
- Understand systemd
- Install and Configure web servers (Apache, Nginx, Tomcat, etc..) and learn how web servers work.
- Learn how Linux processes work.
- Learn to setup HTTP proxies.
- Learn how SSH works.
- Learn about different file systems.
- Learn how volumes work in Linux.
- Learn about system logging, monitoring, and troubleshooting.
- Learn about important protocols (SSL, TLS, TCP, UDP, FTP, SFTP, SCP, SSH)
- Learn to manage services and try to create a service on your own (Initd, Systemd)
- Host static/Dynamic websites on web servers and play around with different configurations.
- Understand the difference between a Load Balancer and a Reverse Proxy/
- Setup Load balancers and reverse Proxy (Nginx, HA proxy, etc.). Understand each configuration and algorithm behind load balancing.
- Learn to optimize Linux performance.
- Setup and Database and understand its configurations and management. (Eg: PostgreSQL Setup)
- Break something and learn to troubleshoot.
Tip: When working on real projects, you work on Linux systems in a private network with limited access to public websites and resources. You need to have good knowledge of managing packages without internet connectivity.
Linux Learning Resources
- Introduction to Linux [edX]
- Learn shell scripting for DevOps
- The Complete Guide to Bash Programming
- Linux Learning Paths
Related Certifications
Learn How Infrastructure Components Work
The basic building block of any organization is its Infrastructure. It could be on the cloud or on-premise Data Center.
An overall understanding of Infrastructure components is a must for a person who wants to practice or work in a DevOps environment. For example, when you get into meetings with network/security teams, with a fair amount of infrastructure knowledge you can ask the right questions, understand what they are saying and collaborate better.
There is a big difference when you say “It’s not working, can you look into this” and “Hey, I have done my initial troubleshooting, and here are my findings. Can you look into this further and help us understand what’s causing the issue”
You should spend some time and have a basic understanding of the following.
Networking | Storage |
1. OSI Model/TCP-IP Model 2. Network Topologies 3. CIDR Notations 4. Subnetting 5. Public network 6. Private network 7. Static/Dynamic IPs 8. Firewall 9. Proxy 10. NAT 11. Public & Private DNS 12. VPN 13. IPv4 & IPv6 Protocols | 1. SAN 2. Backups 3. NFS 5. Object storage 6. Disk IOPS/throughput/latency 7. Databases 8. Key-Value Stores |
High Availability | Single Sign-On |
1. Clusters 2. Fail-Over Mechanisms 3. Disaster Recovery 4. Vertical scaling 5. Horizontal scaling | 1. Active Directory/LDAP 2. SAML |
Security | Load Balancers |
1. SSL certificates 2. PKI Infrastructure 3. Zero trust security 4. Password/secret rotation 5. Security Compliance 6. Site-to-site VPN 7. Client-to-site VPN | 1. L4 Load Balancers 2. L7 Load Balancers 3. Load balancing algorithms 4. Reverse Proxy |
There are more things, but I have highlighted the critical components of an IT Infrastructure that you might encounter in your day-to-day job.
Resources
For networking, you can start with the Udacity free course given below.
Learn Cloud Computing & Virtualization
Cloud computing and virtualization are the basic building blocks of today’s DevOps practices.
You can start learning virtualization concepts using tools like Virtualbox & Vagrant (Type 2 virtualization). It is the foundation of cloud computing.
In terms of Cloud computing, you need to learn and get certified on cloud platforms.
When I say “Get Certified,” please do not use the exam dumps to pass the certification. It adds significantly less value to you. It may be useful for the organization to show the clients that they have certified cloud engineers.
Most of the public cloud market share is currently owned by AWS. Here is the latest report from Statista.
Pick any one public cloud, preferably AWS, and learn about all its core infrastructure services. Do hands-on on all the core services and understand how it works.
Watch AWS re-invent videos and understand how other organizations are using AWS services for hosting their applications.
Trust me, you will learn a lot from these videos, and no online training will provide that much information on how to run production workloads on AWS.
If you are planning to get certified GCP, watch their Google Next videos.
Use the certification to gauge yourself on the respective platform.
Cloud & Virtualization Learning Resources:
- Virtualbox Tutorial
- Vagrant tutorial for beginners
- AWS Certification Courses
- Microsoft Azure – Beginner’s Guide + AZ-900 preparation
Learn Infrastructure Automation
We no longer create servers manually. Infrastructure automation tools have become an essential aspect of every organization. Also, all modern infrastructure deployments follow the immutable infrastructure model.
As per a report from Redhat, many organizations are investing in their automation initiatives. Check out this data.
From provisioning servers to application configuration, and deployment, everything should be automated. You can learn any of the following DevOps toolsets that fit your needs.
For Dev Environment | For Infrastructure Provisioning |
1. Vagrant 2. Docker Desktop 3. Minikube (k8s) 4. Minishift (k8s) 5. Kind (k8s) | 1. Terraform (preferable) 2. Cloudformation for AWS 3. CLIs (of respective cloud provider) 4. Pulumi |
For Configuration Management | VM image/Container management |
1. Ansible (preferable) 2. Chef 3. Puppet 4. Saltstack | 1. Hashicorp Packer 2. Docker |
Following are my tips on learning automation tools
- Learn the basics from a blog, official documentation, or through a course. Whichever you feel comfortable with.
- If you want to write an Ansible playbook for Nginx, first configure Nginx manually and see how the components and configs work. Then start writing the playbook.
- Ensure you learn test-driven infrastructure development. There are testing tools for every automation tool. (Ansible-test, terratest etc.)
- Community modules are a great reference to learning. You can learn complex logic from community modules.
- When using community modules, ensure you know what each block of code does.
Resources:
- Udacity Cloud DevOps Engineer Nanaodegree
- Learn DevOps: Infrastructure Automation With Terraform
- Ansible for the Absolute Beginner – Hands-On – DevOps
Learn Container Orchestration and Distributed Systems
Distributed systems are the basic building blocks for modern scalable infrastructure. You need to understand the basic concepts of distributed systems because most tools that you use for microservices are distributed in nature. For example, Kubernetes.
Also, Container adoption is increasing day by day. The organization you work for might not be using containers now. However, it is best to have hands-on knowledge of container technology like Docker or podman. It will gain you some competitive edge among your peers.
Once you understand docker, you can start learning about container orchestration tool Kubernetes.
Kubernetes is the new age Linux.
These platforms are best suited for microservices-based architecture.
Here is an interesting Kubernetes usage trend by Datadog.
The following image shows the five-year increasing search trends for Kubernetes.
Also, many engineers and even fresh college graduates are showing interest in learning kubernetes. 2023 will see many engineers getting certified in kubernetes. You can check out our CKA, CKAD, and CKS exam guides. You can pick the best Kubernetes certification based on the domain you want to work with.
Service mesh is an advanced topic in the container space. If you are a beginner to container toolsets, you can learn this after gaining a good amount of knowledge in container orchestration and microservices-based architecture. There are many service mesh tools from the CNCF foundation. You can take a look at the best service mesh tools for microservices.
Resources
- Docker for the Absolute Beginner
- How to build a Docker image
- Podman tutorial for beginners
- How to Learn Kubernetes – Comprehensive Roadmap
- Kubernetes Tutorials For Beginners
- Best kubernetes courses
- Kubernetes the Hard way
Logging & Monitoring & Observability
Observability, Logging, and monitoring are fundamental aspects of an infrastructure.
All apps deployed in the infrastructure will produce logs and metrics. Logs are pushed and stored in a logging infrastructure based on architecture and design.
Every company would have a logging and monitoring infrastructure. Commonly used logging stacks are Splunk and ELK. Also, there are a few SaaS companies like Loggly, which provide logging infrastructure.
For monitoring, there are open-source tools like Prometheus, and Nagios and enterprise tools like AppDynamics, Datadog, SignalFx, etc. You can check out our blog on the best open-source monitoring tools.
Developers, operations teams, and security teams use logging systems to monitor, troubleshoot, and audit applications and infrastructure. Also, for AIOPS, log data plays a key role.
In every organization, mission-critical applications are monitored 24/7 using monitoring dashboards. Generally, dashboards use data from logging sources or metrics generated by the application.
Also, there would be alerting systems that use the rules configured in the monitoring systems for alerting.
For example, an alert could be triggered as a slack notification, Jira ticket, email alert, ServiceNow incident ticket, or xMatters phone call. Alerting workflows differ from organization to organization.
As a DevOps engineer, you should be able to query logs and troubleshoot issues in non-prod and prod environments. Understanding regular expressions are very important to query logs in any logging tool.
Resources
- Prometheus Architecture
- Regular Expressions (Regex) Tutorial
- DevOps measurement: Monitoring and observability
Learn Security Best Practices (DevSecOps)
DevSecOps is another area dealing with integrating security practices in each stage of DevOps.
Wikipedia says,
DevSecOps is an augmentation of DevOps to allow for security practices to be integrated into the DevOps approach. The traditional centralized security team model must adopt a federated model allowing each delivery team the ability to factor in the correct security controls into their DevOps practices.
One of the discussed topics in DevSecOps is the Shift-left security approach. Shift Left Security is nothing but adopting security practices in the design/development stages itself.
Cloud security alliance says,
Security can be achieved only when it has been designed in. Applying security measures as an afterthought is a recipe for disaster.
Cloud security alliance
You can check out The Six Pillars of DevSecOps by the Cloud security alliance.
Here is an interesting Checkpoint 2020 security survey that shows different cyber attacks by region.
In cloud environments, crypto mining is one of the common attacks. This mostly happens when the cloud access secrets are maintained poorly so that hackers get access to it.
When it comes to DevOps, secret management for applications and infrastructure components should follow standard security practices. You can also read about Zero trust security practices.
The following image shows the key DevSecOps standard practices published by Redhat.
Hashicorp Vault is a great secret management tool you can look at. There are many workflows available to manage environment secrets.
The State of API security report by Salt Security shows that there is a 681% increase in API attacks.
Resources:
- Vault Tutorial
- What is container security?
- Container Scanning using Trivy
- Kubernetes vault setup guide
- Vault Injector tutorial
Learn Programming & Scripting
Scripting is essential for a DevOps Engineer. Nowadays, for DevOps interviews, every decent company has a preliminary scripting/coding round.
Here is a snippet from the official google cloud blog which talks about skills to become a cloud engineer. Which says “Code is non-negotiable“.
In one or another way, you will end up using programs and scripts in the CI/CD workflow. You can learn the following commonly used scripting languages. Learning programming
- Bash/Shell
- Python
- Golang
You can check out my following articles
- Shell scripting for DevOps
- Best programming languages for devops
- Python for DevOps – where I have explained different use cases of programming & scripting in DevOps
Also, to become a true devops engineer, you need to understand the Developers’ world better. To do that, you need to know how a typical development process works.
So it is essential to have a good understanding of programming, APIs, etc. It will help you troubleshoot and collaborate better. Also, an understanding of API is a basic prerequisite to learning Kubernetes.
My suggestion is to pick a programming language and build an application from scratch. When I started my career, I built an entire Ruby on rails web application from scratch even though development was not my primary work. Till today it has helped me in understanding many concepts in the developer’s world. Even Google Cloud guys suggest the same.
When you develop an application, you will understand the process and components involved in application development. Once you know this, you can effectively interact with developers and have meaningful conversations.
Also, In today’s world, we treat everything as code. Even though there are enough tools to automate everything, you might need custom functionality that a tool may not offer. In such cases, coding/scripting comes in handy to achieve those functionalities.
For example,
- Jenkins pipeline as code requires an understanding of groovy
- Ansible custom module requires an understanding of python
- Writing Kubernetes operator requires Golang experience.
Also, if you look at AWS CDK or IaaC tool like Pulumi, you can use a programming language to define the infrastructure and do test-driven infrastructure development like you develop applications.
Golang is really getting popular in the DevOps domain. Lots of DevOps tooling are done using Golang nowadays. In fact, tools like Kubernetes, and terraform are written in go.
JFrog surveyed Golang adoption during GopherCon, and 18% of the respondents said they use Golang for DevOps-related work.
I have given enough reasons on why you should learn programming as a DevOps engineer.
Resources
- 30+ websites to learn coding online
- Complete Python Bootcamp: Go from zero to hero in Python 3
- Learn How To Code: Google’s Go (golang)
- Linux Shell Scripting: A Project-Based Approach to Learning
Learn Git, GitOps & Learn to Document
It is essential to version control everything you do (except passwords and secrets :P). Git is the best version control tool. There are plenty of tutorials available on git, and it will not take much time to learn important git operations.
You can start with Github or Bitbucket as your remote code repository.
Note: Git Branching strategy is an important aspect of any application release process.
Once you understand Git, learn about GitOps. It is an evolving technical practice not commonly used by companies. However, it will become a mainstream practice someday.
So what is this GitOps anyway? here is what gitops.tech explains GitOps
GitOps is a way of implementing Continuous Deployment for cloud native applications. It focuses on a developer-centric experience when operating infrastructure, by using tools developers are already familiar with, including Git and Continuous Deployment tools.
You can read my simple explanation on Gitops.
ArgoCD is the widely used GitOps tool and you can get started with ArgoCD to learn GitOps practically.
The next important thing is to document every important thing you do. Every repository must have a README
file, which should explain your code in a better way. Good documentation will help not only you but also someone who tries to use your code.
Resources:
- How to Learn Git for DevOps
- Git Complete: The definitive, step-by-step guide to Git
- Git Basics Every Developer and Administrator Should Know
Understand End To End Application Delivery Lifecycle
When it comes to the application delivery lifecycle, there are three important concepts you need to be aware of.
- Continuous Integration
- Continuous Delivery
- Continuous Deployment
Read this example release process management article to understand how a typical application development, build, testing, deployment, approval process, and validation work.
Learn to use any of the following CI/CD tools.
CI Tools | CD Tools |
Jenkins | ArgoCD |
GitHub Actions | FluxCD |
Drone CI | Jenkins X |
Travis CI | GoCD |
Here is a good pictorial representation of the CI/CD process by bmc.
Also, here is a list of topics related to the application development and release lifecycle. You can connect with people in the industry and understand how it is done in their organization.
- Planning process.
- Architectural approval & signoff process by Enterprise architects.
- Enterprise Security signoff on infrastructure & application design/tools.
- Data Compliance
- Config /Secret management
- QA/Performance testing & Approvals
- Monitoring KPIs documentation & setup
- Change management process.
- Production release process.
- Post-production validation activities
- Rollbacks scenarios and strategies.
Resources
DevOps vs SRE
SRE is another evolving topic in the DevOps community.
SRE is a set of practices and philosophies that emerged from Google.
Here is what Google says about DevOps and SRE
DevOps and SRE are not two competing methods for software development and operations, but rather close friends designed to break down organizational barriers to deliver better software faster. “Class SRE Implements DevOps”
I recommend these official documents from Google to understand more about SRE.
Different Types of “DevOps Teams”
Nowadays, every organization tags people dealing with Infrastructure/CI-CD as “DevOps Engineer.” and makes them part of a “DevOps team.” However, their duties vary depending on the teams they work for.
There is a misconception about “DevOps Engineers” thinking they are responsible for everything. That’s not true. It might work for small teams.
In reality, If you are hired as a “DevOps Engineer,” you might fall in any one of the following teams in an organization.
- Central Platform Team (Platform engineering): Responsible for provisioning Infrastructure on demand. This team is responsible for delivering a scalable self-service portal and services to developers and other teams. They will not take care of applications but the underlying platforms. They will make sure the production systems are available 24×7 through continuous platform support and monitoring. Also, they will work on new tooling and automation to meet future needs. The end consumers of this team would be a development or App Ops team. So this is more of shared responsibility.
- DevOps Team: Although “DevOps team” doesn’t make any sense, organizations use it to tag the operations team with this name. This team normally works with developers closely and serves multiple development teams. They are responsible for end-to-end application delivery.
- App Ops Team: This team is part of specific engineering teams working closely on a specific program in an organization with good knowledge of that particular domain. For example, the payments team. This team is responsible for deploying and managing payment applications. Platform management will be taken care of by the central platform team or by DevOps teams.
- SRE Team: This team deals with automation, availability, latency, performance, efficiency, change management, monitoring, emergency response, and capacity planning. They work closely with developers to solve operational issues. This team consists of engineers working on infrastructure with a development background.
- Dedicated Support Team: Support teams are meant to troubleshoot/handle production support tickets and direct the respective team’s issues based on severity. This team has further L1, L2, and L3 lever classifications.
For experienced candidates, It is very important that you understand the nature of day-to-day tasks before you join an organization.
DevOps Engineer Roles & Responsibilities
DevOps job seekers, it is better to understand the devops engineer roles and responsibilities before you join an organization.
Each company has different roles and responsibilities.
You can ask the following questions to get a clear picture of what you will be doing as a DevOps engineer.
- What would be the Day to Day project activities?
- Is there any active automation work, or is it a maintenance project?
- What devops tools are currently used in the project?
- Is there any new migration or development activity in the pipeline?
- What is the future roadmap of the project?
- How often would there be on-call support? Is there compensation for on-call support?
- Will there be any rotational night shifts?
- Are the work timings fixed or get changed if the project changes?
- Is there a culture of working on weekends?
- Ask about the team size..definitely, don’t want to get burned out!
You can ask more questions that you think to align with your learning and career goals. Just because the brand name is good, it doesn’t mean you will have quality work.
Overall, here is what you should know about Devops engineers day to day work.
- Devops engineers don’t create pipelines and automation every day. Instead, most of the automation work is a one-time activity.
- DevOps engineers will have to participate in on-call activities to support the project. There are exceptions in a few projects though.
- You could be part of the platform team, application team, support team,
- If you are part of a platform engineering team, continuous development and innovations happen as part of building platform tools. It will be a great learning experience.
- If you are going to be part of the AppOps team, you will have to use the tools developed by platform teams, and there might be options to extend it as per the requirements. But you get to be part of daily meetings to understand what is going on in the project.
- If you are part of the support team, you get a playbook on solving issues, but there is less chance you get to be part of design discussions.
Try to avoid night shifts and rotational shifts. Health is more important than anything.
DevOps Engineer Interviews
In 10 years, I have given and conducted DevOps engineer interviews for different types of organizations. The requirements vary from organization to organization and project to project.
For example, teams that are looking to expand at a slow pace search for engineers with strong fundamentals. They don’t care how many tools you know; instead, they focus on core IT fundamentals during the interview. This mostly occurs in established product companies.
On the other hand, there are service-based companies that hire engineers with certifications and tool knowledge based on their needs. For instance, if a company is seeking or trying to secure a DevOps project on AWS, they would look for people with AWS experience and certification. Typically, service-based company interviews are easier to crack.
However, most interviews will have preliminary coding or scripting rounds. Some companies might even assign you homework to design and set up infrastructure automation and components for a specific use case.
DevOps Engineer FAQs
How to get into DevOps?
There is no single roadmap for DevOps. If you are from a development, QA, Performance, or support background, you need to learn about Infrastructure automation and CI/CD. If you are a fresher, you need to concentrate on programming, OS concepts, Cloud, and Containers to get into DevOps. Most importantly, you need to pick a real-world use case and work on them before appearing for interviews. Here is an example list of DevOps POC tasks.
Do DevOps need coding?
It depends on the project you are working on. For example, there are DevOps engineer jobs that concentrate on platform development. In that case, coding is a must. You need to know coding to develop custom requirements in infrastructure automation and CI/CD. Also, for most DevOps interviews, you need to clear a coding/scripting round.
What exactly does a DevOps engineer do?
Devops engineers’ work is to collaborate with developers and cross-functional teams to make the CI/CD process easy. Most importantly, to spend more time on engineering to automate repeated tasks. Along with infrastructure automation, DevOps engineers need to look into troubleshooting and monitoring production and non-production platforms and applications.
What skills are needed for DevOps?
The common skills required for DevOps are programming, Operating System concepts, Distributed systems, Networking, Monitoring, Troubleshooting, Containers, Infrastructure automation, configuration management, Version control, and CI/CD tools like Jenkins, GitlabCI, GitHub action, etc.
Which is the best certification for DevOps Engineer?
There are many certifications for DevOps engineers. Unfortunately, there is no one right certificate for everyone; your choice depends on what technology or tool interests you. For example, if you want to be a Cloud devops engineer, cloud certifications make more sense, and if you work on containers, kubernetes certifications will help you. You can check out the best devops certification guide to know more about it.
Do AI tools replace DevOps Engineers?
No. However, AI tools make it easy for DevOps engineers to learn and deliver projects fast. DevOps engineers should embrace AI tools to improve their productivity.
Read DevOps Blogs
If you want to be a knowledgeable DevOps engineer, read more. Read at least one DevOps tech blog related to engineering. Read topics that are not part of your day-to-day job to broaden your thinking.
Follow all the engineering blogs like Netflix, Twitter, Google, etc. Learn how they are using the right toolsets, deployment strategies, and their latest open-source projects.
Follow like-minded people on LinkedIn, Reddit, Medium, Quora, etc.
Resources
Document Your Learnings
It’s good to share with others your experiences and learning. You can publish tutorials, learnings, and experiences on your blog.
It will help others, and it will create a personal brand for yourself. It takes less than 30 minutes to set up a WordPress blog or a Medium blog.
Or you can create a GitHub repo documentation.
Whenever you learn something new about DevOps, you can write about it. It will be a reference to you as well as others. You can share it on LinkedIn groups, Dzone, etc.
I have built a DevOpsLearners community for beginners to publish their blogs on cloud/DevOps topics.
Conclusion
I have shared a detailed and practical DevOps roadmap to start your DevOps engineer journey. Ensure you have a strong understanding of the core IT fundamentals. It will make your learning process very easy.
Also, the tools and processes involved in DevOps are not limited to what is mentioned in this article. However, these are commonly used open-source tools and technologies you can start with to become a DevOps engineer.
Also, working actively on DevOps projects will enhance your skillsets. Even if you don’t get an opportunity in your organization, you can make use of free cloud credits to do POCs in real-world scenarios.
Now I’d like to hear your thoughts:
What’s your key takeaway from this?
Or maybe you have a question about different verticals explained.
Either way, leave a comment below right now.
68 comments
As a experience guy in DevOps and working in the same area for more then 7 years and I use to read blog on regular basis, but I must admit this is the best blog I ever read on DevOps. Shared everything In detail, thanks to author for sharing your Knowlege via blog and I will be sharing this link to all my colleagues. Thanks again.
Really, it’s a great blog. I’ll also DevOps fresher, but this blog shows all the basic and important things that a fresher needs to learn. Also, this article shows your experience and the proper way to learn such a great article. Thank you for this.
the best of my searches!! I would recommend to read this first to all DevOps aspirants!! Thanks Bibin 🙂
Excellent article. Very comprehensive and clear. I appreciate a lot links to other resources
Thank you very much for sharing with us
I had earlier read quite a lot of articles on the roadmap but this one was quite exhaustive and helpful. I especially liked the engineering blogs, podcasts and projects section. I am an automation tester and want to learn DevOps to gradually start working in my project for the same (become an SDET). This article will surely help me with it. Thanks!
Thank you Bibin for these great article, it was super helpful.
Excellent article and excellent summary. Thanks Wilson
Excellent Article and Kudos to your writing skills 👍 – Exactly what I was looking for 🙂
I think this is the best article I’ve ever read about what anyone need to know/learn to become DevOps. I’ve 1 year experience in DevOps and this article was very good to think about where I’m in my learning roadmap.
Thanks!
Great Article dear Bibin , its really help full and thank you so much ..
Welcome Yogesh 🙂
WOW Bibin…! Praise lord for giving you this kind of helping nature and wisdom.
This is very informative and really helps me to prepare for interviews.
Very nice and informative article. Looking forward to more
This article is absolutely fantastic and pretty comprehensive, after reading this article I couldn’t stop myself sharing with LinkedIn community. Sharing and caring fellow engineers around the world makes me happy every day. The way you explained concepts encouraging everyone working together makes each and every organization to achieve their goals without any barriers.
Thanks Surender. Glad it helps 🙂
This blog post has given me a whole new perspective on DevOps. thank you very much. I started a BootCamp but now I have a clearer picture of what I am doing and how to do it.
I am a DevOps engineer myself with 5+ years f experience; was casually browsing some devops stuff on Google and this article popped up. It gave me a whole new perspective regarding Devops and I’ll definitely go through you other blogs.
Thanks for this gem.
Glad it helped Pushpal 🙂
Honestly, by far the best article I’ve seen on DEVOPS. This is very enlightening and encouraging. Keep up the good work bro! Thanks
Thanks Mishtahbellz. Glad it helped 🙂
Thanks for listing this useful info on Devops, it is really helpful in terms of career growth. Keep posting content on technology.
Wow, Excellent article Bibin!!
This is one of the most intelligent, rich, comprehensive and well structured articles about Devops and IT I have ever seen. Congratulations to the Author.
Thanks Vailton. Glad it helps.
No words. Wooow, from an ocean like DevOps domain what an amazing, short and brief tutorial !!! Thanks very much Bibin Wilson. It is a great article.
Bibin,
You are a Rockstar!!
Very kind words and glad it helped Arpit 🙂
Thank you so much for drafting very detailed idea about Devops methodology, Bibin. Keep up the good work 🙂
Glad it helped Vignesh 🙂
Bibin Wilson,
Thank you for writing this blog. Absolutely very well written and informed.
Could you please guide me with more information on this DevOps pathway? How can I achieve this as my background is Electrical Engineering and since I started working on SCADA Automation Control configuration, I am really interested to change my career in DevOps. As being a Non IT background with No to little experience in networking/IT communication, How can I start my journey from scratch?
Any information will be highly appreciated 👍
Thanks 🙏
Glad it helped Oomung.
You need to first develop some skills around IT. I would suggest you start with Linux & programming and then learn cloud & tools.
You can join some BootCamp if you are not a self-learner. That’s the best way to go.
Thanks a lot for this great article. Its really useful for me.
Could you please share a link or resource for learning Groovy scripting? It will be of great help.
I have been trying to start my journey towards learning various tools and understanding about devops and it is one of the extremely well explained blog I came across. Thanks for the guidance .
hi Kirti, Glad it helps.
Nice one bro! Thanks
Welcome Sreejith! 🙂
Great article! Very informative. Thank you
very nice
Thanks Swati. Glad it helps.
Great article. Gave an insight on devops culture.
Thanks Srinika. Glad it helped 🙂
Amazing content , clarified everything
Thanks Bibin…
Very useful to beginners like me
Waiting for more info about Devsecops
You are welcome Ranganath. Will write a blog on DevSecOps soon! Thank you.
Thanks so much Bibin for creating Devopscube and sharing this info
Thanks Varun. Glad it helps
Very much appreciate your comment! 🙂
Wow, fantastic! This the best and most complete guide that I’ve read about this subject.
Thank you Marcelo! Glat it helped!
Great Article dear Bibin , I was very much looking for some article like this , good job and thanks a lot for your effort , keep rocking
Thank Arun. Glad it helps. Appreciate your comment!
Very comprehensive article and makes a very complicated subject accessible to many. 👍🏾
Must read for anyone who is seeking a job in Kubernetes or DevOps.
Thanks Shiva..Glad it helped!
Hey Bibin, this post is really strong and helpful. I also liked the infographics and I just wanted to say thank-you for putting it up. Cheers, Mehmet
Thanks, Mehmet! Glat it helped.
thanks for perfect article 🙂
it is really useful !!
You are welcome Arta. Glad it helped.
Good summarize, thanks.
You are welcome, Ferhat!
a comprehensive guide, worth the read, every letter in this blog is worth!
keep writing!
Very Good Article. Lot of Info Provided with shot note.
Thanks A Lot.
Wow, great article. Thanks for that! Keep up the great writing!
It was a great read!
I strongly agree with your statement that “DevOps is not a thing” . Its more of a philosophy, methodology, or you can say practice that fosters collaboration and communication within the teams. It puts a set of tools and practices at your disposal which you can leverage to achieve your business outcomes and competitiveness. DevOps is paramount if you want to deliver innovation and agility. Adding more to the skills, openness to change, adaptability, sense of shared responsibility, and people skills are must to blend in DevOps environment. Some sought-after technical skills required in DevOps are having clear-cut understanding of storage, networking, containers, automation tools, and source control systems.
Its time to edit this Post now.
Now organisations are also asking person who has web dev experience, knows Infra/Cloud and Automation.
So basically he should also know Java or any high level programming language.
very nice bro
Awesome .it build confidence and help to get clear picture on devops.Thanks
These skills all point to a growing recognition that software isn’t written in the old way anymore. Where software used to be written from scratch in a highly complex and lengthy process, creating new products is now often a matter of choosing open source components and stitching them together with code. As for the infrastructure transparency of the entire cloud stack, I think nclouds is also a great service to look at.
Nice Article