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

Renovate bot advanced tricks feature

Renovate Bot: 4 advanced tips and tricks – Part II

This is part two of a series that provides tips for advanced Renovate Bot users. It gives valueable tips for writing your own regex managers, explains why and how to self-host a Renovate Bot instance, how you can reduce friction when introducting Renovate to your teams, and encourages interacting with the active Renovate community. Introduction … Read more

Renovate bot advanced tricks feature

Renovate Bot: 3 advanced tips and tricks – Part I

This is part one of a two-part series that provides tips for advanced Renovate Bot users. Part 1 explains some important, basic concepts, illustrates how Renovate approaches creating and updating PRs as a flow chart, and goes into details about Renovate’s “post upgrade tasks” feature. Introduction to Renovate Bot Renovate (Bot) is a CLI tool … Read more

renovate bot introduction feature

Automatic dependency updates – a Renovate Bot introduction

Renovate bot is a tool that automatically updates software dependencies declared in your Git repository via pull requests. In this Renovate bot introduction I explain the benefits of automated dependency updates, how the Renovate bot works, how to operate/run the bot yourself (if necessary), and how you can configure the bot’s behavior for each repository. … Read more

renovate bot cheat sheet feature

Renovate bot cheat sheet – the 11 most useful customizations

Renovate bot is a tool that automatically updates third-party dependencies declared in your Git repository via pull requests. This Renovate bot cheat sheet helps teams who adopt Renovate with customizing the most common (and useful) configuration options, without having to read the entire, extensive Renovate bot documentation. Originally posted on 2021-07-25, updated on 2023-07-30. Introduction … 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

release it book summary feature

Book recommendation: Release It! – Design and Deploy Production-Ready Software

In this book recommendation, I review the second edition of the book Release It! Design and Deploy Production-Ready Software by Michael Nygard, released in 2018. I also offer my 27 page summary of the book as free download. Introduction A common misconception is that the majority of the costs in a software-based project is allocated to … Read more

Docker build cache debug techniques

Docker build cache: debug techniques

The Docker build cache avoids rebuilding those parts of a Docker image that were already built. Unfortunately, cache misses are hard to debug. In this article I explain three frequent yet unexpected reasons for cache misses, with solutions. One of them is that COPY or ADD statements are rebuilt, because files have changed. To diagnose … Read more