Recently a guy has said to me, “Hey! I’m free for the next three days. I want to be a DevOps Engineer within these days.” “Dude! Seriously?”, I was whispering. No, the guy was serious. He was really passionate about being a DevOps Engineer. So, I decided to write this blog to help him. I want to say, “This blog post is dedicated to you, bro. You’re the best.”
Is it possible to become a DevOps Engineer within three days? According to the Theory of Relativity of Albert Einstein, it is possible. But he may need the help of Doctor Strange or Thanos. Just kidding! Actually, anyone can learn anything within a very short time by the grace of Almighty. That’s why I am writing this post.
Wise Monkey says, “DevOps isn’t a role, it’s a mindset.” Okay, we won’t disagree. We should be called the Infrastructure or Platform Engineer. But we are okay with DevOps Engineer role as the world is calling so. Let’s jump into the list we need to learn within three days to become a DevOps Engineer.
Operating System Link to heading
Linux (e.g. Ubuntu, Fedora, Alpine, CentOS) is the king here. We need to have a clear concept about the Linux system. This includes package manager, CRON, firewall, process management, routing table, networking (integrated with OS) and troubleshooting. The deeper knowledge, the greater engineer.
Web Server/Proxy Link to heading
There are a lot of web servers e.g. NginX, Apache HTTP Server, Litespeed, Lighttpd. We can start learning from NginX, it is one of the most famous web servers. We need to learn how it works, how to write a config file, how to write a vhost file, how its logging system works and how SSL works.
Haproxy, NginX, and Traefik are famous tools to be used as proxy servers. You can start by picking any of these. But I will suggest picking NginX initially.
Database Link to heading
MySQL and PostgreSQL are the most famous RDBMS. You need to learn setting up the database, basic database management, optimization, fine-tuning. Once you are enough confident, then learn cluster management.
Don’t forget to try Redis and Memcached. They are in-memory data storage systems.
Automation Link to heading
We automate processes in two way - by directly programming languages and by automation tool. Once Bash was king here. Now the throne has gone to Python. You need to learn it. Also, I suggest learning Bash. It’s really cool.
Among automation tools, Ansible, Chef, and Puppet are famous. I love Ansible most. It’s written in Python and really easy to learn. You can choose any of these initially.
Continuous Integration (CI) Link to heading
Jenkins is the queen of all CI tools. It helps to automate the non-human part of the software development process, with continuous integration and facilitating technical aspects of continuous delivery. You need to have a clear idea about CI processes and how to use Jenkins wisely for CI.
Containerization Link to heading
Docker is the most popular containerization tool. But I am not sure whether it is the king or queen. Whatever it is, I love it. You can learn how to write containerize an application, how containers work, the basics of Docker, how its network work, how its volume works. CoreOS rkt is an alternative of Docker. You can look into this too.
Container Orchestration Link to heading
Yes, Kubernetes is the king here. It is an open-source container orchestration system for automating application deployment, scaling, and management. You have to learn a lot of things to learn Kubernetes. I will try to write a separate blog on it.
Cloud - The Unseen World Link to heading
Undoubdetly AWS (Amazon Web Services) is the king in this kingdom. But GCP (Google Cloud Platform), Microsoft Azure and DigitalOcean are rising at light speed. You pick any of these and start learning. I love AWS but I don’t want to push it into your mind.
If you are a regular reader of my blog, then you know I am always on the run. I couldn’t finish this blog as expected. Don’t cry, dude! I will update this timely. Most importantly, don’t take this blog post too much seriously. It’s a sarcastic writing. Hasta la vista, baby!