How To Be A Good DevOps Engineer?
Tags: devops, devsecops, automation, career
Published: 2022-09-16 17:30:14

DevOps Engineer, who plays a very important role in today’s IT industry, has a very bright future. In this post, we will discuss what requires becoming a good DevOps Engineer OR How to become a good DevOps Engineer.
We know as a DevOps engineer our role can be very broad, it varies project to project, company to company. But in general, below are a few points you need to be focusing on.

## As a DevOps Engineer, you should be good at Operations
It is very significant that you are good at handling servers (e.g., virtual machine). When you work in automating infrastructure deployment then obviously you are the person who should be aware of details about the VMs, Load Balancer etc. Below are a few points.

- You should be aware of various OS and some experience in working this OS. For example, if I take Ubuntu flavor of Linux and you are deploying one application in Ubuntu machine then obviously you should know about Ubuntu OS.

- You should know fundamentals of compute machine. For example, if you are going with cloud technology, then you must be aware of Virtual Machine (VM). You should know how a VM is working like

- How VM’s hardware getting allocated? For this, you need to know hypervisor.

- How its OS is working? What is the image is used in that VM? For this, you should know what image file is. Image file is nothing but OS software in file format.

- You should know how to do patch update on Windows, Linux etc. Though in most of the case it comes under support task, still you should know and before moving your VMs under support you are the person who is responsible for doing all this stuff.

## You should be good at your automation skill
Automation is one of the most important responsibility of DevOps Engineer, as a DevOps engineer you are here to fasten the delivery process and automation can help here by removing those time-consuming & error-prone manual process. If you don’t know how to automate, please start learning automation. In automation, you should learn at least the below -

- [Ansible](https://www.ansible.com/) — which is one of the most popular IT automation tools. You can go through this post for better understanding of Ansible.

- [PowerShell scripting](https://docs.microsoft.com/en-us/powershell/scripting/overview) — It is used to perform various task on Windows.

- [Shell Scripting](https://en.wikipedia.org/wiki/Shell_script)/Bash Scripting

## DevOps Engineer need to know basic coding
Though DevOps engineer don’t write the application code, but still, you need to know the logic, and how a code is written. Because as a DevOps Engineer you will be writing automation scripts in Ansible, Terraform, PowerShell etc.

It’s always recommended to have some working experience as developer role to become a good DevOps Engineer. You don’t need to be an expert of any programming language. But if you have the basics and a high-level understanding, then it will help you greatly.
For example, as a DevOps Engineer you are dealing with a Java application then it will very be helpful if you have some knowledge of Java. You should be knowing the important points like to run any Java application you must need JDK to be installed, Java applications are packaged as JAR file etc.

## DevOps Engineer should have knowledge of networking
As a DevOps engineer, you should have a good grasp on networking. Below are few keyword or concept in networking you should be knowing.

- CIDR range
- Public IP & Private IP.
- Inbound & Outbound traffic flow.
- Network Security Group
- Network Security Policy.
- Route & Route Table
- VNET or VPC and their peering (Cloud networking)
- Subnet
- Traffic routing from one hop to another hop.

## DevOps Engineer Should be knowing Bigger Picture
Last but not the least, as a DevOps Engineer, try to get the bigger picture and try to gather as much information about the working of the application. For example, below information are important if you are dealing with an application

- Detailed tech stack of the application
- Database used by the application
- Platform used by the application (e.g., VM, container)

Thanks