Konrad Kowalski (rootsher)Principal Platform & Reliability Architect011010101110111101010111110011101011101001101111

Deployment Strategies: Why They Exist

date
category
CI/CD
also in
Reliability Engineering
reading
1 min / 280 words

The simplest deployment once looked like this:

text
stop the old version
put the new version in place
start it

That works if the application can disappear for a while.

It stops working when the system serves traffic all the time, has multiple instances, queues, a database, mobile clients, and users who do not know that a "deployment window" is happening.

Deployment strategies exist for one reason:

text
changing a version is risk

Different strategies control different parts of that risk.

Build, release, and deploy are not the same

It helps to split three words.

text
build
  an artifact is created

deploy
  the artifact reaches an environment

release
  users receive new behavior

In a simple world, all three happen together.

In a larger system, separating them gives control.

You can deploy code without enabling a feature.

You can send only a small part of traffic to a new version.

You can keep two environments ready and switch routing.

You can copy traffic to a new version without showing its response to the user.

What this series covers

This series does not start with Argo Rollouts, Flagger, or a cloud product.

First, the mechanisms need names.

Rolling update replaces instances gradually.

Blue-green keeps two versions and switches traffic.

Canary gives the new version a small percentage of real traffic.

Targeted rollout chooses specific users, rings, or segments.

Feature flags separate deploy from release.

Shadow traffic tests a new version with copied traffic.

Each article follows the same shape:

text
why it appeared
what it really means
minimal example
where it works
where the name lies

Minimal stack

The examples stay as small as possible.

The base is Kubernetes:

text
Deployment
Service
readinessProbe
Gateway API HTTPRoute
ConfigMap or env var

Not because every organization must deploy this way.

Because these primitives make the mechanism visible.

If you understand the mechanism, the tool is only an implementation.

If you do not understand the mechanism, the tool gives you a nicer panel for the same mistake.

We start with the strategy Kubernetes gives you by default: rolling update.