9 DevOps skills you absolutely need in 2026

Containers, orchestration, infrastructure as code, observability and the cloud bill. Everything between your code and it working for somebody.

1. Containers

With a container, "works on my machine" stops being a sentence
With a container, "works on my machine" stops being a sentence

A container packages your application with everything it needs to start: the exact language version, the system libraries, the configuration. It runs the same on your laptop, in the pipeline and in production, because it literally is the same thing.

It is not a virtual machine: it does not carry a whole operating system inside, it shares the host's. That is why it starts in under a second and weighs megabytes rather than gigabytes. And that is why "works on my machine" stopped being an excuse: your machine and production are the same image.

2. Orchestration: Kubernetes

You declare how you want it to be; it makes sure it stays that way
You declare how you want it to be; it makes sure it stays that way

With one container you do not need Kubernetes. With forty, spread across several machines, that have to find each other, scale when traffic arrives and come back up on their own when they die, you do need something. That something is an orchestrator.

The important part is the shift in mindset: you do not give it orders, you declare the state you want. "I want three copies of this, with this much memory, reachable at this address." It compares that wish with reality every few seconds and does whatever it takes to make them match. A machine dies and it brings up another without anyone phoning anyone.

3. Infrastructure as code

The console leaves no trace; a file does, and it gets reviewed too
The console leaves no trace; a file does, and it gets reviewed too

Building infrastructure by hand in your provider's console has two problems: nobody knows exactly what was done and nobody can repeat it. Six months later there are twenty resources nobody dares touch because nobody remembers what they are for.

With infrastructure as code, all of that lives in files in your repository: reviewed like any other change, with a record of who touched what, and standing up a new environment is one command. And the best part is the boring one: you can tear the whole test environment down every night and bring back an identical one in the morning.

4. The pipeline

Each step only runs if the previous one is green
Each step only runs if the previous one is green

The pipeline is the conveyor belt between your commit and production: compile, run the tests, analyse the code, build the image, deploy. Each step only runs if the previous one passed, and anyone on the team can see where it stopped and why.

Two rules make the difference. Fast, because a forty-minute pipeline makes people batch their changes, and batching changes is exactly what we do not want. And trustworthy: if it fails for reasons other than the code, within two weeks nobody will look at why it is red.

5. Observability: metrics, logs and traces

Three different questions and one tool for each
Three different questions and one tool for each

When something breaks in production you need to answer three questions and each has its own tool. Metrics say something is wrong: errors are up, latency spiked. Logs say what exactly happened on one specific request. Traces say where: which services it passed through and how long each took.

With metrics alone you know something is burning but not what. With logs alone you have millions of lines and no way to relate them. OpenTelemetry is the standard for collecting all three from any service and sending them wherever you like: instrument once and stop guessing.

6. Configuration and secrets

Whatever changes between environments cannot live inside the image
Whatever changes between environments cannot live inside the image

The same image has to serve test and production. If it carries the database address inside, it is not the same image: it is a different one, and what you tested is not what you are about to deploy.

Everything that changes between environments comes in from outside, in environment variables or a configuration manager. And secrets separately: in a manager that rotates them, one permission per service, never passing through the repository. Having the application refuse to start when one is missing beats finding out on the first request.

7. Scaling: up and sideways

A bigger machine has a ceiling; many small ones do not
A bigger machine has a ceiling; many small ones do not

Scaling vertically means a bigger machine. It is the easy option, it works up to a point, and it has two problems: eventually there is no bigger machine, and in the meantime you still have one single thing that can fall over.

Scaling horizontally means more identical machines with the traffic spread across them. There is no ceiling and it survives failures, but it forces one thing on you: your application must hold nothing inside. No sessions in memory, no files on local disk, because the next request will land on another machine that knows nothing about them.

8. Deploying without downtime

The new version lives alongside the old and only stays if it holds up
The new version lives alongside the old and only stays if it holds up

Deploying by switching the old off and the new on means a spell with no service and, if it goes wrong, a long spell. There are two ways around it and both rest on the same idea: letting the new version coexist with the old for a while.

With blue-green you stand the new one up entirely alongside, check it works and switch the traffic in one go; rolling back is switching it again. With canary you send it 1% of users first, watch the errors and ramp up. And the important part of both is the same: that rolling back is a button and not an all-nighter.

9. What your cloud costs

Three items take almost the whole bill, and one is the one you least expect
Three items take almost the whole bill, and one is the one you least expect

The cloud bill has a peculiarity: developers write it and the finance director reads it. And it almost always splits the same three ways: the compute you leave running, the storage that piles up, and outbound traffic.

The third is the surprise. Taking data out of the cloud costs money, and so does moving it between regions, so shifting files around without thinking costs more than keeping them. Three habits cover most of it: tag everything so you know whose it is, switch test environments off at night, and set an alert for when spend leaves the normal range.

Summary

  • A container is the same image in all three places.
  • You declare state to an orchestrator, you do not give it orders.
  • Infrastructure lives in the repository, not in the console.
  • The pipeline: fast and trustworthy, or nobody will look at it.
  • Metrics to know something is burning, traces to know where.
  • Whatever changes between environments comes in from outside.
  • To scale sideways, hold no state inside.
  • Canary or blue-green: make rolling back a button.
  • Compute, storage and egress. The third one surprises people.

DevOps is not a job title, it is everything between your code and it working for somebody. You do not have to build it yourself, but you do have to know what happens there: most of a team's bad nights do not come from a bug in the code, they come from a deploy nobody knew how to undo.