In-place upgrades
The first type of deployment we'll cover is in-place upgrades. This style of deployment operates on infrastructure that already exists in order to upgrade the existing application. This model can be seen as a traditional model that existed when the creation of new infrastructure was a costly endeavor in terms of both time and money.
To minimize the downtime during this type of an upgrade, a general design pattern is to deploy the application across multiple hosts behind a load balancer. The load balancer will act as a gateway between users of the application and the servers that run the application. Requests for the application will come to the load balancer, and depending on configuration, the load balancer will decide which backend server to direct the request to.
To perform a rolling in-place upgrade of an application deployed with this pattern, each server (or a small subset of the servers) will be disabled at the load balancer, upgraded, and then re-enabled to take on...