Hey everyoneđź‘‹, In this blog I am going to share my DevOps journey so far. What mistakes did I make, what all things have I learned so far, what resources have I used and some more experiences.
How did it start?
It all started when I saw this video of Kunal Kushwaha, where he talked about remote work. It was the first time I heard about it, so I researched a lot about it and I was very fascinated after knowing about remote work. So, I started trying various tech stacks. I tried web development, Android development, DevOps and some basics of web3.
So after giving some time to all these tech stacks, I chose DevOps and decided to go ahead with it.
DevOps Journey
Here is the order in which I learned different tools and technologies.
Networking Basics
I started my journey with networking basics. Also, I will recommend to everyone that no matter which tech stack you choose, learn networking basics first, because then only you will come to know how computers work, how the internet works, how data is transmitted over the internet, what are protocols, who manage them, what are ports and IP addresses and much more. I can say one thing for sure if I have not studied networking basics first then it would have been very much difficult for me to understand other DevOps concepts.
I followed this 4-hour+ tutorial by Kunal Kushwaha.
Linux
Getting familiar with the command line interface is very important, no matter which tech stack you choose. You only need to learn basic Linux commands, like user management, file management, text editor, working with files and directories and software installs. Trust me, learning Linux is total fun.
I followed this tutorial by Kunal Kushwaha.
YAML
YAML stands for YAML Ain't markup language. It is a data format used to exchange data. It is very very easy to learn.
I followed this tutorial by Kunal Kushwaha.
GIT and GitHub
Git is a version control system that is widely used for software development and other types of version control. It keeps track of the changes made to the code so that it is easy to revert to previous versions if needed. GitHub is a web-based platform for hosting and managing Git repositories.
I followed this tutorial by Kunal Kushwaha.
Virtualization and Containers (Docker)
Docker is a tool designed to make it easier to create, deploy, and run applications by using containers. Docker uses a containerization approach to virtualization, which allows multiple containers to run on the same host and share the host's operating system and resources.
I followed this tutorial by Nana Janashia.
Container Orchestration (Kubernetes)
Kubernetes (also known as K8s) is an open-source system for automating the deployment, scaling, and management of containerized applications. Now for beginners, Kubernetes seems to be difficult. But trust me, if you have a good understanding of Docker, learning Kubernetes becomes very interesting.
I followed this workshop by Saiyam Pathak. I will call it the best resource for someone who is going to learn Kubernetes for the first time.
Cloud
Learning cloud technology is very important no matter which tech stack you choose. The question which arises here is, which cloud provider to learn ?
You can choose any cloud provider because the basics remain the same and once you get familiar with one cloud, then getting familiar with the other cloud provider becomes easy. Certification here is an add-on, but if you want to go specifically in the domain of cloud engineering then obviously you have to get certified.
I followed this tutorial by Andrew Brown on freecodecamp youtube channel.
Go (Programming language)
Learning a programming language is also important while learning DevOps. You can learn either Python or Go. I decided to go ahead with Go because of its multiple advantages.
I followed this tutorial by Nana Janashia. You can also create a command line ticket booking application if you go through this tutorial.
Continuous Integration / Continuous Deployment
CI and CD can help teams deliver software updates faster and more reliably, and they can help teams improve the quality of their software by detecting and fixing issues early in the development process. For this, you can learn tools like Jenkins and GitHub Actions. Jenkins is kind of more popular, so I decided to go ahead with it.
I followed this tutorial by Simplilearn. It was an excellent tutorial, I got to know more than the basics in a very detailed way.
Infrastructure as Code
Infrastructure as code (IaC) is an approach to managing and provisioning infrastructure in a way that is automated and treated as a software development process. IaC allows teams to define and manage their infrastructure in a more consistent and repeatable way, and it makes it easier to track and roll back infrastructure changes.
There are a variety of tools and technologies available for implementing IaC. The most popular among them all is Terraform, which is written in a language called Hashicorp Configuration Language (HCL).
I followed two resources for this.
I followed this tutorial by KodeKloud to learn HCL and Terraform basics. It also has Hands-on labs which you can access for free.
Then I followed this tutorial by freecodecamp to learn how Terraform is used in production. You can also learn Cloud basics in this tutorial.
Yet to learn
There is still a long way to complete my DevOps journey. However, it will never end because new tools will continue to come, but learning the basics will come to an end.
Tools and technologies yet to learn :
Configuration Management.
Scripting.
Observability.
Chaos engineering.
Policy.
Service Mesh.
Mistakes I made so far
Now, I consider this section to be the most important one. Because here I will tell you what mistakes I made and how you can avoid them.
When I started learning DevOps, I didn't have a hands-on approach. Because of this, I started to forget things. Later on, I started doing hands-on practice as I go through the tutorial. So, I will recommend, that from the start try to have a hands-on approach.
I didn't find time to revise the topics which I already studied, this way things became unfamiliar after some time. So, try to revise from time to time so that you remain familiar with the topics.
During the initial days of my DevOps journey, I was in a hurry to complete the tutorial, just to move to the next tool or technology. You can call it excitement. But it was the wrong thing to do because you can miss the basics. So don't be in a hurry to complete the tutorial.
So that was all about my DevOps journey so far. I will continue to share my experiences and learnings as I move ahead.
Connect with me on Twitter