You have an application deployed in production.
When a new version is deployed, you want to ensure that all production traffic is routed to the new version of your application.
You also want to keep the previous version deployed so that you can revert to it if there is an issue with the new version.
Which deployment strategy should you use?
Click on the arrows to vote for the correct answer
A. B. C. D.C.
The deployment strategy that best fits the requirement described in the question is the "Blue/Green Deployment."
Blue/Green deployment is a technique that involves maintaining two identical environments (referred to as Blue and Green) where one environment is actively serving traffic (Blue) while the other is inactive (Green). When a new version of the application is deployed, traffic is redirected from the Blue environment to the Green environment. After the Green environment has been tested and verified to work correctly, the traffic can be switched back to the Blue environment. In this way, Blue/Green deployment ensures zero downtime during the deployment process.
In this case, the Blue environment represents the current production version of the application, and the Green environment is the new version of the application that is being deployed. By using Blue/Green deployment, all production traffic can be routed to the new version of the application without affecting the current version. If there are issues with the new version, traffic can be quickly switched back to the current production version without causing any downtime.
The other deployment strategies mentioned in the question also have their use cases, but they do not fit the requirement described in the question as well as Blue/Green deployment:
Canary Deployment: This technique involves deploying a new version of the application to a small subset of users to test its functionality and performance. Canary deployment is suitable when you want to test the new version with a smaller subset of users before making it available to everyone. However, it does not ensure zero downtime during the deployment process.
Rolling Deployment: This deployment strategy involves gradually rolling out a new version of the application to a subset of users while keeping the previous version running. This technique is useful when the application can handle some downtime, and you want to gradually test the new version. However, it does not allow for quick and easy rollbacks to the previous version.
Recreate Deployment: This deployment strategy involves deleting the existing deployment and creating a new one with the updated version of the application. This technique is not suitable when you want to maintain the previous version of the application for quick rollbacks.