Azure Pipelines Kubernetes operator feature

Auto-scaling Azure Pipelines Agents in Kubernetes

This article explores my Kubernetes operator that provisions Azure Pipelines agents as Kubernetes Pods. It comes with an in-depth tutorial for how to use my operator. I also explore all alternative options for running Azure Pipeline agents, and explain why using a Kubernetes-based option beats all other options. Introduction CI/CD pipelines are a cornerstone to … Read more

BuildKit caching feature

Advanced Docker / BuildKit Caching with 5 tricks to speed up your image builds

This article explains BuildKit caching in detail. First you learn background knowledge, e.g. how the local and remote cache differs, and what kinds of cache items BuildKit can store where. Then, BuildKit’s garbage collection is explained in detail. Finally, I present 5 tricks to speed up your image builds, e.g. tuning the garbage collection policies, … Read more

Docker and BuildKit feature

Docker and BuildKit: how building images really works

This article explains how Docker builds images with BuildKit, via buildx. It discusses the advantages of BuildKit over Docker’s legacy image builder, and then elaborates on three approaches for calling BuildKit in Docker: 1) using the embedded BuildKit library managed by the Docker daemon, 2) using a BuildKit container managed by buildx, and 3) using … Read more

back up Docker volumes feature image

Backup Docker volumes (and restore them) – done right

This article explains how to use “tar” correctly, to backup Docker volumes and restore them. I explain why two top-ranked tutorials are not doing a good job, by taking them apart. Finally, I give hints for creating backups of Docker volumes in production. Introduction Making a local backup of a Docker volume and restoring it … Read more

Terraform broken drift detection feature

Broken drift detection with Terraform

When the resources of a Terraform provider (e.g. Azure) define “computed” optional attributes, these are not properly covered by Terraform’s drift detection. As I will demonstrate, this can lead to non-reproducible infrastructure. I also experiment with Terraform’s behavior, depending on what you declare in your configuration file, the content of your state file, and the … Read more

Boost your shell productivity with AI feature

Research and boost your shell productivity with AI

I explain how using Large Language Models (a form of AI) can boost your shell productivity. The basic idea is to have LLMs generate shell commands or scripts, rather than researching them with traditional approaches (such as a search engine). I discuss the advantages and disadvantages of LLMs over classic research approaches. I conclude by … Read more

Shell productivity tricks feature

Shell productivity tricks – the best shortcuts to boost your shell usage

In this article I present over 20 useful keyboard shortcuts and commands that boost your shell productivity (Terminal). Links to the source materials are provided, with tips for reducing mental load caused when trying to adopt too many shortcuts at once. Introduction In my Digital tool efficiency article, I discussed why many people use their … Read more

compliance checks feature

Compliance checks in your IDE, Git hooks or CI

In this article I compare several approaches for running compliance checks, like validating Git commit messages with a regular expression, or linting your code. I explain how these checks can either run in your IDE, in a local pre-commit hook, a remote pre-receive Git hook, or as part of your CI pipeline. I compare these … Read more