Deployment strategies
Deployment strategies define how you want to deliver your software. Organizations follow different deployment strategies based on their business model. Some choose to deliver software that is fully tested, and others might want their users to provide feedback and let their users evaluate under development features (such as Beta releases). The following section discusses various deployment strategies.
In-place deployments
In this strategy, the previous version of the application on each compute resource is
stopped, the latest application is installed, and the new version of the application is
started and validated. This allows application deployments to proceed with minimal disturbance
to underlying infrastructure. With an in-place deployment, you can deploy your application
without creating new infrastructure; however, the availability of your application can be
affected during these deployments. This approach also minimizes infrastructure costs and
management overhead associated with creating new resources. You can use a load balancer so
that each instance is deregistered during its deployment and then restored to service after
the deployment is complete. In-place deployments can be all-at-once, assuming a service
outage, or done as a rolling update. AWS CodeDeploy and AWS Elastic Beanstalk
Blue/green deployment
Blue/green deployment, sometimes referred to as red/black deployment, is a technique for releasing applications by shifting traffic between two identical environments running differing versions of the application. Blue/green deployment helps you minimize downtime during application updates, mitigating risks surrounding downtime and rollback functionality.
Blue/green deployments enable you to launch a new version (green) of your application alongside the old version (blue), and monitor and test the new version before you reroute traffic to it, rolling back on issue detection.
Canary deployment
The purpose of a canary deployment
Linear deployment
Linear deployment means traffic is shifted in equal increments with an equal number of minutes between each increment. You can choose from predefined linear options that specify the percentage of traffic shifted in each increment and the number of minutes between each increment.
All-at-once deployment
All-at-once deployment means all traffic is shifted from the original environment to the replacement environment all at once.