Created: May 20, 2022

DevOps Engineer Skills Matrix: A Roadmap to a Career in DevOps

Andrew Sapozhnikov.

Andrew Sapozhnikov

CIO & CTO

DevOps
DevOps Engineer Skills Matrix: A Roadmap to a Career in DevOps

This article will discuss critical DevOps engineering skills that make you an expert. So, since we understand that people come to our company from different jobs and all have a different scope of competencies and levels of knowledge, we decided to create a universal roadmap for the growth and development of a DevOps engineer. But it didn't work as we wanted, so we decided to go the other way and create a list of skills and competencies needed to work in our company. Thus, having made a three-level system, each level consists of a questionnaire and criteria for the candidate. To put it another way, we prepared the first version of grading and certification. However, this system also did not help to solve our problem. Later we found a great tool - a self-assessment skill matrix. We decided to put the tool into practice for DevOps and later transformed it into a skill matrix. After that, we held a session where we set ourselves current and desired six-month grades. We used Miro as a tool, but you can also use Google sheets.

Skills and competencies

Because DevOps engineers in Mad Devs go deep into the operational and infrastructure parts, we have defined a knowledge stack for our current and future employees to start working as junior “MadOps”. 

You need at least a middle sysadmin level to get started. Also, skills required for further growth and understanding of abstract skills and principles of:

Linux

The Linux kernel, subsystems, and the utilities around it are at heart. What you need to know:

Docker/Containers

Even though Docker is leaning back, we cannot exclude it from the list of necessary skills. It is difficult to imagine anything else for local use for several more years. If we talk about k8s, then the official support for Docker as a Container Runtime should completely stop with the release of 1.23.

It should also mention that Docker was the technology that brought containerization to the masses. Whereas the containerization technology itself has been around for a long time, its users were often mostly "geeks.”

There is to know:

Terraform and IaC

Among the great variety of tools (pulumi, Cloudformation, AWS CDK, etc.) that help bring the IaC (Infrastructure as a Code) approach to the masses, we decided to use Terraform as a main tool to describe the infrastructure component. 

It's essential to know about:

  1. Terraform is not a silver bullet and cannot replace absolutely all tools. To configure virtual machines, it is better to use the following tools:
    a) Packer;
    b) Ansible/Chef/Puppet/Salt;
    c) Whatever you want (bash?).
  2. Terraform is not a multi-cloud management tool. It can be called so with a huge stretch. By managing only AWS, you cannot deploy the infrastructure in the GCP using the same code. Each provider has its own set of resources, and these resources are called differently. However, the use of Terraform allows us not to learn the new syntax of various tools and new approaches to organizing code for working with different clouds/providers. Which at times speeds up the process of writing, maintaining, and transferring code between engineers.

Knowledge requirements:

Mad Devs has an Open Source project GitHub - maddevsio/aws-eks-base: This boilerplate contains terraform configurations for the rapid deployment of a Kubernetes cluster, supporting services, and the underlying infrastructure in AWS. It is assumed that a person who masters the skill to work with Terraform at a sufficient level actively participates in the discussion of improvements and also periodically contributes changes. 

CI/CD

It is now impossible to imagine any project that wants to reduce Time-To-Market without losing quality and doesn't use CI / CD (Continuous Integration / Continuous Delivery / Continuous Deployment) processes. Therefore, it is vital to understand the concepts and apply them correctly. Our task is often to write a pipeline regarding the development and source code flow. Let's consolidate the idea that we don't pull the flow on the pipeline but adjust the pipeline to the flow. Now it is practically not important which CI / CD system will be used, because they all have pretty much the same functionality. BUT it is important to remember that EDGE cases exist, and knowing the strengths/weaknesses of a particular system will allow you to make the right choice at the right time.

Necessary knowledge in this field:

AWS/Azure/GCP (Cloud)

Each of these cloud providers offers over 100 services. There will not be enough time to know everything in detail. A considerable part of the services is quite unique and may never be encountered in work.

What is necessary to know:

When building a cloud infrastructure, it is also helpful:

Kubernetes

Where it is possible (and this is 99.9999999% of projects), we are using Managed solutions from cloud providers, which marks the nature of working with k8s. Most of the time, we act as cluster users, not cluster administrators; that is why the list of necessary expertise is based on user experience:

Helm

Since helm is a tool for Kubernetes, all requirements are connected to k8s knowledge, for example:

Observability

One of the most critical components of modern systems is Observability. It is impossible to efficiently deliver changes to the user and efficiently manage resources without well-tuned observability tools.

We often hear only about “Monitoring” and “Logging.” Observability is a broader concept that includes monitoring, logging and tracing.

Expected skills:

Security

It is tough to create a clear list of requirements because we are not security specialists but rather implementers. So here are the general points:

Solution development

An important element of our work is the development and implementation of solutions. The goal of such solutions is to simplify development, reduce costs, switch to a new, more efficient, safer technology, etc. From here, it follows several necessary performing skills:

DevOps/SRE

Everyone knows that DevOps and SRE are primarily cultural aspects and practices. Where DevOps comes from development and is aimed at delivering a feature to the client, and SRE comes from operations and is aimed at stability. Our requirements are pretty basic:

Soft skills

In addition to the fact that a good DevOps engineer should have a broad technical outlook and a number of automation skills, it is extremely important to develop soft skills. That is, those personal qualities that help to effectively connect and synchronize the work of all participants and departments into a single whole. There is no doubt that the existence of well-developed soft-skills is an important element in both personal growth and career progression (and sometimes a fundamental one).

Most often, engineers are private people, but times change, and it is impossible to work alone. The DevOps engineer is the link between operations, development, and managers. He constantly has to communicate with the team, helping to achieve a common goal.

What stands out among the skills:

In our company, we made a special matrix specially for soft skills' assessment, where all the necessary skills are highlighted.

Summary

To summarize, the meaning of DevOps-engineer in different companies is different, making it difficult to compile a single list of specialist competencies. Even with a 10-year career, so many directions and pitfalls are not enough time to study them. It is also worth considering what services companies are using - some use cloud services, while others use their own or rented hardware. Therefore, the required knowledge will depend on which company you want to work for. Especially for this case, we have compiled our DevOps engineer skills matrix to simplify the work process for applicants and employees.