The DevOps Engineer role is a relatively new role that has come into existence during the past decade in I.T. and seems hard to define.
Part of what makes the position challenging to understand is that it is continually changing due to new technologies.
However, a good start at understanding it is to realize that it is a mix of several different roles; software engineer, sysadmin, network engineer, and more.
Of the roles, the two with the most massive influence are software engineering and sysadmin. I think the Dev piece of DevOps is Software Engineering, and the Ops is sysadmin.
With that mindset, then the following will make sense.
A DevOps Engineer is responsible for building software that automates the developer experience and sysadmin responsibilities.
This post demonstrates what a DevOps engineer does and what DevOps culture is and isn't using Azure and Azure DevOps.
Typically a DevOps Engineer has the following experience with technology:
- Containers like Docker
- Container Orchestration like Kubernetes
- Infrastructure as Code like Terraform
- Configuration of Servers through code like Ansible, Puppet, Salt, or Packer
- Proficiency in a programming language like Python or GO
- Familiarity with shell scripting awk/bash
- Familiar with Linux and User Management
- Software Development
- Familiarity with a cloud host provider like AWS, GCP, Azure, Digital Ocean, etc.
To better understand, let's establish what a culture of Not DevOps looks like in an organization.
Suppose we're at a Fortune 500 company like Dunder Mifflin Paper Company. The leaders decide they want to build a new web application to take paper orders. And you have been hired as a fresh graduate of a Bootcamp or college to make it happen. So you get work, which might look like this.
(1) You write and push code to GitHub -> (2) Code is tested by QA / Security -> (3) Code is Deployed -> (4) Users visit website
Let's look at a technical example to understand the workflow better.
We'll use the free Azure App Service to deploy a Python Django Web App.