Rollout
Learn about updating machines and downtime, handling load on machines, end-to-end health check, rolling out in immutable infrastructure, and in-memory sessions.
Updating machines
The time has come to roll the new code onto the machines. The exact mechanics of this are going to vary wildly depending on our environment and choice of configuration management tool. Let’s start by considering a convergence style infrastructure with long-lived machines that get changes applied to them.
Right away, we have to decide how many machines to update at a time. The goal is zero downtime, so enough machines have to be up and accepting requests to handle demand throughout the process. Obviously that means we can’t update all machines simultaneously. On the flip side, if we do one machine at a time, the rollout may take an unacceptably long time.
Instead, we typically look to update machines in batches. We may choose to divide your machines into equal-sized groups. Suppose we have five groups named Alpha
, Bravo
, Charlie
, Delta
, and Foxtrot
. Rollout would go like this:
-
Instruct
Alpha
to ...