DevOps Engineer Roadmap for beginners
In this blog, I want to share my experience of how someone can become a DevOps Engineer. This is not a 30-day tutorial or a set of resources to make you a DevOps Engineer in a specific number of days, but rather a guide for beginners based on my experience. Learning is a continuous process, and if done the right way, it can make your journey better.
My DevOps background
I was a Developer turned DevOps Engineer, so the beginning was not easy for me. I was working as a Python programmer in a hosting company that was also automating processes and practicing DevOps. That is how my journey began. Here are a few of the things I struggled with:
- Not all, but most Developers are not familiar with networking, so it was a big hurdle for me in my DevOps journey. I started reading and practicing it a lot. I also did CCNA training, which helped me greatly to understand networking concepts.
- I was a Windows operating system user, which was another problem because most of the systems I had to work with were Linux, and I was not familiar with Linux commands. The next challenge for me was learning and excelling at Linux operating systems.
Things I learned on my Devops journey:
Learn the basic ideology:
Get familiar with DevOps concepts and how they help an organization that follows DevOps principles. Understanding the fundamental idea behind DevOps is very beneficial. DevOps is not just about learning the tools and doing automation; it’s a culture and mindset that can bring about significant changes. Tools are just the pillars that support this culture. Over time, beginners will understand this concept as well, so there’s no need to panic.
Learning Linux and Networking is must:
As stated before without this your DevOps journey is going to get harder. I am still learning it.
Getting familiar with CICD:
As a DevOps guy, most of us would be assigned to set up a CICD pipeline. It has helped me a lot to get to know how applications are built and deployed and making it production ready.
During the process we also get to know how automation can help ease the regular monotonous process. It also helps us think from different thought processes like what if the deployment fails then we need to think about how to rollback what we did to deploy the changes.
Believe me it adds one level of confidence as well when you can set up a CICD and successfully deploy the application. There are many tools out there for doing CICD but for a beginner Jenkins can be an easy way to start. These days CICD can be done directly in the code repository itself so can be easily learned using the CICD feature in the code repository itself.
Learn bash scripting:
For someone from a coding background it would be the easiest part. In general,I almost always use bash scripts in all my CICD pipelines. Also it can be used where some sort of automations are required.
Get familiar with Docker:
I don’t want to speak here about what and how to use docker but what I want to say is most of the companies are containerizing their application and how to use and implement it.
Get to know some Cloud Providers:
Getting familiar with at least one cloud provider like AWS , GCP or Azure. The benefits of such cloud providers are they help in easy setting up servers where we can learn and destroy when not required else it would have been a bit difficult to manage resources.
Get familiar with Kubernetes:
Docker is the fundamental thing to know before getting into Kubernetes. Companies are shifting to deploying their application on the kubernetes cluster and making their application highly available and scalable.
Conclusion:
I have not intentionally added many things in here which might even overwhelm the beginners so putting it here is the minimal things someone can focus on to make their journey easier and fruitful. I repeat this are based on my experience which worked for me, that does not mean will work for all.