The DevOps toolbox, mapped

Every tool you will hear about, sorted by the job it does.

15 min read

At work you hear tool names all day: Docker, Terraform, Kubernetes, Datadog. Each one sounds like something you must learn tonight.

You do not. Each tool does one job, and there are only eight jobs. Learn the jobs first, and every new name has a place to go.

Sort tools by job, not by name

A job is a problem the team must solve. A tool is one product that solves it. Many products do the same job, and each team picks one.

One job, three products. A team picks one of them.

When you hear a new name, ask one question: which job does it do? If the answer is "it runs the tests", it sits next to GitHub Actions. You know what it is for, even if you never saw it before.

Here are the eight jobs in three groups. The groups follow the loop from the first lesson: build, run, then watch.

The whole map. Each job gets its own chapter later.

Build and ship

These three jobs turn your code into something that can run. You already touch the first two every day.

JobWhat it doesTools you will hear
1. CodeKeeps every versionGit, GitHub, GitLab
2. CI/CDBuilds, tests, shipsGitHub Actions, Jenkins
3. PackagePuts the app in a boxDocker
  • Code. Git records every change you make. GitHub stores the code and runs your pull requests. Together this is .
  • CI/CD. is the robot from the last two lessons. The checks on your pull request come from it. See chapter 5.
  • Package. Docker puts your app, its Node.js version and every library into one . The image runs the same on your laptop and on a server. See chapter 4.

Run

These three jobs give your app a place to live and keep it alive.

JobWhat it doesTools you will hear
4. CloudRents computers by the hourAWS, Google Cloud, Azure
5. OrchestrateRuns and restarts containersKubernetes, Amazon ECS
6. Infra as codeCreates servers from filesTerraform, Pulumi
  • Cloud. A cloud provider rents you servers, databases and networks. You pay for what you use. Vercel runs your app on cloud servers and hides them from you. See chapter 3.
  • Orchestrate. One container is easy to run. Fifty containers on ten servers need a manager. An does that work. Kubernetes is the best-known one. See chapter 6.
  • Infra as code. The team does not click buttons in the AWS console. It writes the servers down in a file, and Terraform creates them. The file lives in Git, so a pull request reviews every change. This is . See chapter 7.

Watch and protect

These two jobs start after users arrive. They tell the team when something is wrong, and they keep attackers out.

JobWhat it doesTools you will hear
7. MonitorShows errors and speedPrometheus, Grafana, Datadog
8. SecureGuards keys, finds holesVault, Dependabot, Trivy
  • Monitor. answers one question: is the app healthy right now? Prometheus collects numbers, such as requests per second. Grafana draws them on dashboards. Datadog does both as a paid service. See chapter 8.
  • Secure. A must never sit in the code. HashiCorp Vault stores secrets and gives them to the app at start. Dependabot opens a pull request when a package you use has a known security hole. Trivy scans container images for the same holes. See chapter 9.

The map on a real team

Here is one change, followed through all eight jobs, on a team that runs its own servers on AWS:

  1. build and ship

    1. GitHub
      GitHub1. code
    2. push
      GitHub Actions
      GitHub Actions2. build and test
    3. Docker
      Docker3. image v2.1.0
  2. deploy

    run

    1. Kubernetes
      Kubernetes5. runs the image
    2. runs on
      AWS
      AWS4. the servers
    3. Terraform
      Terraform6. made the servers
  3. watch and protect

    1. Grafana
      Grafana7. watches it all
    2. Vault8. holds the keys
The arrows follow one change. The last two tools watch and protect all of it. The numbers match the map above.

Now compare your own Next.js app on Vercel. The jobs are the same. Vercel does many of them for you.

JobNext.js on VercelSame app on AWS
1. CodeGitHubGitHub
2. CI/CDVercel builds each pushGitHub Actions
3. PackageVercel does itDocker
4. CloudVercelAWS
5. OrchestrateVercel does itKubernetes
6. Infra as codeProject settingsTerraform
7. MonitorVercel ObservabilityGrafana, Datadog
8. SecureVercel env variablesVault, Dependabot

Vercel did not remove the jobs. It hides them. When a team needs a long-running server, a special database or a lower bill at scale, the jobs come back, and so do the tools.

Remember4 points
  1. 01

    Sort every tool by its job. When you hear a new name, ask which job it does.

  2. 02

    Eight jobs: code, CI/CD, package, cloud, orchestrate, infra as code, monitor, secure.

  3. 03

    Many products do the same job. Teams pick one, so the names change from company to company.

  4. 04

    Vercel does many jobs for you. On your own cloud, each job needs its own tool.

Read more

The next lesson is "What is a server?". It opens the next chapter, "Servers and networks".