Skip to content
DevOps devops getting-started 5 min read

What is DevOps?

DevOps is a way of working that brings together the people who build software (developers, or “devs”) and the people who run it on servers (operations, or “ops”). The goal is simple: ship changes to users faster, with fewer bugs and fewer late-night outages. DevOps is mostly about culture and habits — automation and tools just make those habits easier. If you only remember one thing, remember this: DevOps is a mindset first, and a toolbox second.

The wall between dev and ops

For decades, software teams were split into two groups with opposite goals.

  • Developers are rewarded for change. Their job is to add features and fix bugs, so they want to push new code as often as possible.
  • Operations are rewarded for stability. Their job is to keep the servers up, so they fear change — because every deploy is a chance for something to break at 3 a.m.

These two groups were often separate departments who “threw work over the wall” to each other. A developer would finish code and hand it to ops to deploy. When it broke, devs blamed ops (“it works on my machine!”) and ops blamed devs (“your code crashed our server!”). Releases were rare, scary, and manual.

This conflict even has a name: the “wall of confusion.” DevOps exists to tear that wall down.

How DevOps tears the wall down

DevOps replaces the wall with three ideas that the whole team shares.

1. Shared ownership

Instead of “I wrote it, you run it,” the team says “you build it, you run it.” Developers help keep the app healthy in production (the live environment real users touch), and operations people get involved early while code is still being written. Everyone owns the result together, so there is no one to blame — only a problem to fix.

2. Automation

Anything done by hand more than a couple of times gets automated. This includes:

  • CI/CDContinuous Integration / Continuous Delivery. CI means every code change is automatically built and tested. CD means tested changes are automatically prepared (and often pushed) to production. Together they replace slow, error-prone manual deploys.
  • Infrastructure as Code (IaC) — describing your servers and networks in text files instead of clicking buttons in a dashboard, so the setup is repeatable.
  • Configuration management — scripts that set up a server identically every time.

Automation removes human mistakes and lets a small team move fast and safely.

3. Fast feedback

The team measures everything — error rates, response times, deploy success — and sees problems within minutes, not days. Monitoring and logging tell you when something is wrong before a customer complains. The faster you learn that a change caused trouble, the faster (and more cheaply) you can fix it.

What DevOps is NOT

This is where many teams go wrong. Let’s be clear about the myths.

MythReality
”DevOps is a job title.”DevOps is a culture the whole team practices. A “DevOps Engineer” role exists, but hiring one person does not make an organisation “DevOps."
"DevOps is just tools.”Tools (Docker, Jenkins, Terraform, Kubernetes) support DevOps. They are not DevOps by themselves.
”DevOps means no operations team.”Ops work still exists. It is now shared and automated, not deleted.
”DevOps is only for big tech.”A two-person startup benefits just as much as a huge company.

Gotcha: Buying tools without changing how people work does not make you DevOps. A team that installs Jenkins but still deploys once a quarter, blames each other, and gates everything behind a manual approval committee has spent money — not changed culture. The tools amplify your habits; if the habits are bad, you just automate the chaos faster.

A tiny taste of DevOps automation

To make this concrete, here is the kind of small automation a DevOps mindset encourages. Imagine you run a web app on an Ubuntu 22.04/24.04 LTS server and want a one-command script that pulls the latest code, installs dependencies, and restarts the service. Doing this by hand every time is exactly the manual, error-prone work DevOps removes.

First, create the script:

sudo nano /usr/local/bin/deploy-app.sh
#!/usr/bin/env bash
# Simple deploy script — fail fast if any step errors
set -euo pipefail

APP_DIR="/var/www/myapp"

echo "Pulling latest code..."
cd "$APP_DIR"
git pull origin main

echo "Installing dependencies..."
npm ci --omit=dev

echo "Restarting service..."
sudo systemctl restart myapp.service

echo "Deploy complete."

Make it executable and run it:

sudo chmod +x /usr/local/bin/deploy-app.sh
sudo deploy-app.sh

Output:

Pulling latest code...
Already up to date.
Installing dependencies...
added 142 packages in 3s
Restarting service...
Deploy complete.

That one script is a micro-example of the whole philosophy: a repeatable, automated step that any team member can run, instead of a secret sequence of commands living in one person’s head. (systemctl is the command that controls systemd, the standard service manager on modern Ubuntu, which starts and restarts your background apps.)

Security tip: Never put passwords, API keys, or tokens directly in scripts like this. Store secrets in environment files such as /etc/myapp/env with locked-down permissions (sudo chmod 600 /etc/myapp/env) so only the owner can read them, and load them from there.

When to adopt DevOps (and when to go slow)

You should lean into DevOps when:

  • You release software regularly and want releases to feel boring and safe.
  • Outages or manual deploys are slowing your team down.
  • Multiple people need to understand how the system runs, not just one hero.

Go slower when:

  • You are a solo hobby project where heavy automation is more overhead than benefit — though even here, basic CI and a deploy script pay off quickly.
  • Your organisation will not support the cultural change (shared ownership, blameless attitude). In that case, fix the culture conversation first, because tools alone will not stick.

Best Practices

  • Start with culture, not tools. Get devs and ops talking and sharing goals before you buy anything.
  • Automate the painful, repeated tasks first — usually builds, tests, and deploys.
  • Make deploys small and frequent. Small changes are easier to test and safer to roll back.
  • Practise blameless postmortems. When something breaks, fix the process, not a person.
  • Measure everything — deploy frequency, failure rate, and recovery time tell you if DevOps is actually working.
  • Keep secrets out of code. Use environment files or a secrets manager, never plain-text credentials in scripts.
  • Document your runbooks so anyone on the team can deploy or recover the system.
Last updated June 15, 2026
Was this helpful?