What is DevOps? - Not a Person
Contents
If someone would like to hire me for a role of DevOps Engineer, they probably think “What does a DevOps person do?”
It’s important to remember that DevOps is a methodology first, and only secondary, DevOps is a role.
We should stop labeling people as “DevOps Engineers”, as it clearly doesn’t define a skill set one may be looking for.
DevOps Definition
DevOps a set of practices intended to reduce the time between committing a change to a system and the change being placed into normal production, while ensuring high quality.
Let’s just ask ourselves, what is the exact skill set of a “DevOps Engineer”? Typical options could be:
- Software Engineer with some System Admin skills
- 70% Writing Product Code
- NodeJS Backend
- AWS Lambda for product’s data processing
- A bit of ReactJS
- 30% Managing Operations:
- CI/CD using canned solutions like AWS Amplify or Netlify.
- Some infrastructure (simple click-through, nothing like a cohesive Infrastructure as Code).
- Some monitoring, inherently with alert fatigue.
- Docker (to some extent, usually huge unoptimized images as a result).
- 70% Writing Product Code
- System Admin with some Software Engineering skills
- 70% Operations
- Cohesive Infrastructure as Code.
- Complex and complete CI/CD via Jenkins, Github Actions, Gitlab and other industry-standard tools.
- Docker best practices: multi-stage builds, size-optimized images and solid twelve-factor app methodology implementation.
- 30% Software Engineering
- NodeJS, Python, Golang backend (performance, scalability, monitoring)
- Dependency & Security management
- 70% Operations
Given these two options it’s quite hard (if not impossible) to nail all of them in one rigid job title, to answer a question “What is DevOps”?
Of course, there are other points of view, so it would be interesting to learn yours. Let me know in the comments section!
Second Head Post
This is a post from Second Head. So please, don’t expect too much.
Post photo by @patkrupa