My perspective is - when you work and manage different IT professionals with diverse backgrounds, including system operators, software developers, UI and UX developers, and other IT “knowledge-based” staff during the drafting, planning, developing, and deployment of a functional system or application, then you’re a DevOps engineer.
Others claim at least fifteen years of IT proven practice would qualify a person to be called a DevOps engineer, but I believe three or five years in the industry and depth understanding of deployments and releases you’re pretty qualified (leave a comment on this).
Let’s dive into what you should know as a DevOps engineer.
1.Your attitude
Sounds weird, right?! For this role, you have to figure out yourself, how to interact with other people and what makes you worked up so quickly. If you do not know your traits ( I know you know you:) ), you will have difficulty handling different personas because you’d be managing and working with different professionals in IT-related work.
The team members will sometimes depend on your expertise, and a senior or a junior will not understand your input and can get you infuriated. Figure out how you will handle your annoyance because lashing out at someone will affect the development or slow down on whatever you’re working on.
2.Communication
After working on your attitude, having good communication skills will get the team on your side or what objectives and goals you’re trying to achieve. DevOps is all about working with a team as a family, meaning you want the family members to work in one direction. Your ability to communicate would enhance the collaboration aspect. You would not want an application created under your watch throw all sorts of code errors during production because of poor communication. It is a must-have virtue or trait for DevOps engineers to be successful.
3.Observability
What will you communicate to your team members if you do not have that little observability trait? It is a crucial trait you need to have as a DevOps engineer. You should know what code or a JSON script the software developer is shipping to the application for you to communicate your thoughts. If it is debugging, ensure the cleaning process is done correctly to avoid repetition or that everything is within the stipulated time frame. In other words, be aware of what is going on.
4.Coding and Scripting
Being aware of what is going on means you should possess coding and scripting skills. At least you should have three widely used programming and scripting at your fingertips: PHP, Javascript, Node.js, Java, and Python. You can not offer input or experience gained to a software developer if you do not understand the language used in the development process.
5.Infrastructure as code
As a DevOps Engineer, it is important to ensure that the application or system under your watch is built in a structured manner for ease in future reference. You have to learn to use Infrastructure as Code (IaC) tools such as Terraform and AWS CDKs (Cloud Development Kit).
6.Automation
Automating things means you have to be conversant with the scripting language, as I mentioned above, such as Javascript and python. As much as you’re a Linux person, you should know how to use PowerShell for windows. In simple words, understand most of the DevOps toolsets available to be on the safe side and succeed in your role.
7.Cloud Skills
You can’t miss Cloud-related stuff as DevOps Engineer. They are related. Your production team may require your expertise on cloud platforms or services that are suitable for automation. Therefore, it is important to know these services to simplify the processes of monitoring, performing tests, code checks, and release and deployment.
8.Continuous delivery
Many companies are adopting DevOps methodologies and approaches in their system development and management. As a DevOps is necessary to understand continuous delivery (CD) theories to help these companies move towards cloud-world and automation because it is not easy. Knowing CD tools and systems will allow your team to create functional delivery pipelines.
9.Operations
It is another aspect of the Ops Engineer to understand different operations such as logging, monitoring, and alerting. It would help if you balanced these aspects in order to manage the entire process of production systems. Also, you’ll need to have experience working or using operating systems like Centos, Linux, Ubuntu, Windows, and RedHat Linux. Not to forget, familiarize yourself with web servers like Nginx and Apache.
10.Time management
Last (but not the end:), know how to manage your time. The production cycle works in phases, and you can’t be dealing with designing and development at once. Delegate duties or have a schedule that you’ll follow to ensure you monitor, test, and deploy without the pressure of completion.
Final Thoughts
DevOps practices are a never-ending discussion, meaning you have to learn every day taking this role. Technology never dies. It keeps growing or evolving. You’ll need to be flexible and be open to any changes that may occur in the future. Remember to be successful in tech; you have to watch out for the new tech in the block :).
Top comments (2)
What a great post, definitely worth a bookmark! @cndavu
A small DevOps Bible right here :)
As for 4 + 6 I also believe scripting and automations require a lot of "Out-Of-The-Box" Thinking.
There is always a way to automate and reduce the amount of time spent on each task a DevOps personal works on, especially on various "Second Day" operations.
As you mentioned: "you’d be managing and working with different professionals in IT-related work" so optimizing and automating each of these tasks to the bear minimum of effort and time may help you get that cup of coffee your'e trying to drink since 9 AM.
Thanks :)
Indeed, effective automation will give you the break you deserve. Now, this may come down to the type tool using and your team...