How to become a DevOps Engineer

This article is for non DevOps Engineers who want to become DevOps Engineers.

Introduction

First of all, what is a DevOps Engineer?

Building CI/CD Pipelines

It is without much doubt that creating CI/CD pipelines is one of the primarily things a DevOps Engineer does on a day to day basis.

Help Bridge the Gap

One must not forget that being a DevOps Engineer is all about embracing DevOps and i am sure we all know by now that DevOps as a principle is all about bridging the ‘gap’ between Development (Dev) and Operations (Ops).

  • SOLID principles
  • GRASP principles
  • Keeping your code DRY over WET
  • Writing good quality ‘clean’ code
  • Read online blogs/articles/wikis
  • Doing Code Kata. (practice your coding — practice makes perfect) 👌
  • Do some personal coding projects
  • Participate in online coding challenges
  • Test yourself using online coding platforms

Programming Languages DevOps Engineer needs to know

Here i present a few programming languages that i feel it would be nice for a DevOps Engineer to know.

  • + many other Hashicorp’s Tools
  • Kubernetes CLI (kubectl)
  • AWS CLI (aws-cli)
  • … plus many more

Testing

Don’t think testing is only restricted to QA/Testers. Far from it. Even a normal Software Developer needs to get involved in testing. Think unit testing, integration testing, end 2 end testing etc.

… Automation

Automation is a key thing in DevOps. Since DevOps is all about shortening the SDLC, you can bet that a lot of the manual tasks would be automated in some form or another.

Think Systems — Understand Software Engineering

As a DevOps Engineer, you are required to know how to not just create a software system, but also how to manage and maintain that software system you built.

  • Software Architecture (Microservices, SOA etc…)
  • Scaling (horizontal vs vertical)
  • Timeouts & Retries
  • Software Engineering Patterns (Circuit Breaker/Fallback, Back Pressure, Rate Limiting, Bulkhead etc…)
  • REST principles & API Design
  • Web Development (HTTP/S, How Google works)
  • Databases/Data Storages/Data Structures
  • Transactions
  • ACID vs BASE (Strong Consistency vs Eventual Consistency)
  • Messaging Solutions (Queues vs Topics/ Pub-Sub)
  • Service Communications (Service Discovery)
  • Cloud Native concepts/ 12-Factor App Principles
  • Cloud Engineering
  • Caching Patterns
  • Deployment/Release Strategies
  • Fault-Tolerance/High Availability (HA) Patterns such as: Master-Slave, Primary-Standby/Secondary, Clustering, Leader Election, Replication etc
  • Distributed Tracing
  • Chaos Engineering

The thrive for #DevSecOps

Nowadays, it is even more trendier to call yourself “DevSecOps”.

Common DevOps Tools

Although DevOps shouldn’t be all about the tools and technologies but more so for the culture and practices associated with SDLC, it is not uncommon for tools to be linked closely or even tightly associated with the idea of DevOps.

  • CloudFormation
  • Ansible
  • Chef
  • Puppet
  • Jenkins (& other CI/CD tools)
  • Docker
  • Kubernetes
  • Linux/Unix Skills…

Other misc stuff (that doesn’t fit into any categories)

There a few other things that you also need to know:

  • Branching Models (GitFlow, GitHub Flow, GitLab Flow)
  • Release Cadences
  • Version Strategies (Semantic Versioning vs. Commit Hash)
  • Merge Patterns (Git Merge, Git Squash and Rebase)
  • Trunk Based Development
  • Feature Branches
  • Feature Toggles

Summary

So if you are currently not a DevOps Engineer and you really want to become a DevOps Engineer one day then you really need to start do the following:

  • Start to become comfortable with configurations
  • Learn programming
  • Key Programming Languages to know
  • Understand Testing Concepts
  • Practical experience of Operations tasks
  • Get used to automating things (IAC, Test Automation, General Automation etc)
  • Understand how Software Systems are built from the ground up and end to end
  • Get to know the common ‘DevOps Tools’
  • Take an active interest on Security for #DevSecOps
  • Other misc stuff

I’m a Software Engineering Enthusiast specialising in DevOps, Cloud Engineering, and Programming, all-round Techie, Coffee-Addict ☕, Blogger, Food Lover, Gamer

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store