The side-by-side strategy has a lot in common with blue-green deployments. Instead of upgrading the machines in stages, we create a whole new duplicate environment and install the canary version there.
Suppose the application runs on multiple machines or containers, a few services, and a database.
Side-by-side Deployment
To make the deployment, we clone the hardware resources and install the updates. Once the canary is running on the new environment, we show it to a portion of the user base. This typically happens using a router, a load balancer, a reverse proxy, or some other business logic in the application.
Side-by-side Deployment
5% of the users are sent to the canary version
As in rolling deployments, we monitor the canary while we gradually migrate more and more users away from the control version. The process continues until we either detect a problem or all users are on the canary.
Once the deployment is complete, we remove the control environment to free up resources. The canary version is now the new stable.