Once you are done developing a web application and testing it to ensure it works as required, it is time to move it to the production environment. Sometimes, the web application will be going to users who have not used similar software before. At other times, the application will be replacing an older version.
While the development phase creates an application that satisfies both functional and non-functional requirements, the deployment process is crucial in managing disruption and user satisfaction. There are at least six strategies a web application development company could use to deploy an application. It is important to be familiar with each of them so you understand which would be most appropriate for different circumstances.
1. Recreate Deployment
The recreate deployment strategy involves shutting down the existing application or application version before rolling out the latest version. This method implies there will be downtime, the length of which depends on the time it takes the older version to shut down and the new version to boot up.
From a user standpoint, recreate deployment therefore creates a noticeable break in operational continuity.
2. Ramped Deployment
Ramped deployment involves a gradual roll out of the new version of the web application by replacing individual functions. This is done until all instances are replaced. It does not have to occur one instance at a time, you can replace instances in parallel whereby multiple instances are rolled out at a go.
Ramped deployment is relatively easy to set up and versions are conveniently released across multiple instances. However, rollout and rollback can be time consuming.
3. Blue/Green Deployment
Blue/green deployment is slightly similar to ramped deployment. However, in this case, the new version of the web application is deployed alongside the older version with the same number of instances. Here, the old version is the blue and the newer version is the green. After establishing that the new web application version satisfies all the requirements, traffic is switched from the older version to the new one.
The key advantage of this deployment strategy is rollout/rollback is instant. On the downside, you need double the system resources to run the two versions simultaneously.
4. Canary Deployment
Here, production traffic is gradually shifted from the older version to the new version of the web application. Often, traffic is split based on proportion. So, for instance, 90% goes to the older version and 10% to the newer one. Canary deployment is mostly used where application testing is inadequate or unreliable.
Its main merit is that application versions are released for some users. It is also a convenient means of performance and error rate monitoring in addition to fast rollback. Slow rollout is nevertheless a key disadvantage.
5. Shadow Deployment
Shadow deployment of web applications involves releasing the new version alongside the old one. Incoming requests to version A are replicated and sent to the newer version as well without causing a noticeable change to production traffic. It is an especially valuable strategy when testing load on a new feature. Web application rollout is triggered when performance and stability satisfies requirements.
The main advantage is testing the web application with production traffic with no impact on users. A disadvantage is the higher cost since you need double the resources. Also, it is a complex method and requires unique skills and experience.
6. A/B Testing Deployment
In A/B testing deployment, a set of users are routed to a new functionality under predetermined conditions. It is not really a deployment strategy, but rather a technique for decision making that is based on statistics. Nevertheless, it can be used to deploy a web application by adding new functionality to a canary-style deployment. Here, only the version that converts the most is eventually rolled out.
You Have Options
There are different strategies you could use for web application deployment. It all depends on your objectives, budget and resources. By understanding the strategies available to you, you can choose the right one.