Types of Deployment Strategies

Prateek chaudhary
3 min readMay 28, 2023

--

There are several types of deployment strategies that can be employed based on the specific needs and requirements of a project.

  1. Big Bang Deployment: The new version of the software is deployed all at once, replacing the previous version entirely. It involves a complete switchover from the old version to the new version. It comes with high risk and uncertainty
  2. Continuous Deployment: Every code change that passes the automated tests is automatically deployed to the production environment. It enables frequent and rapid releases, ensuring that the latest features and bug fixes are quickly made available to users.
  3. Blue-Green Deployment: Involves running two identical production environments, referred to as the “blue” and “green” environments. The blue environment represents the live version of the application, while the green environment is an identical copy that is updated and tested with new changes. Once the green environment is deemed stable and tested, the traffic is switched from the blue environment to the green environment, making it the new live version.
  4. Rolling Deployment: Involves gradually deploying changes to a production environment by updating subsets of servers or instances one at a time. The deployment typically starts with a small number of servers, and as they are successfully updated and tested, the process continues until all servers are updated.
  5. Canary Release: A new version of the software is deployed to a small subset of users or servers (the "canary group") while the majority of the users continue to use the stable version. The canary group provides real-world testing and feedback, allowing for monitoring and identification of potential issues before rolling out the new version to all users.
  6. Feature Toggle / Dark Launching: Feature toggling is a deployment strategy that allows for selectively enabling or disabling specific features in an application. It allows development teams to deploy new features to production but keep them hidden or inactive until they are ready for use. This strategy provides flexibility and reduces the risk associated with releasing new features.
  7. Recreate Deployment : You shut down the old version of the application completely, deploy the new version, and then turn the whole system back on. This means there will be a downtime while the old software is shut down and the new one is booted up. Its cheaper and doesnt require Load balancer as there is no shifting of traffic from different versions.
  8. A/B Testing Deployment : A/B testing deployment is a way for developers to test out new versions of their software. They do this by deploying the new version alongside the older version, but only making the new version available to a select group of users.
    This is somewhat similar to Canary Deployment but in Canary the new version is tested in production like environment whereas in A/B deployment the performance of new version is tested.

It’s important to choose the most suitable strategy based on factors such as the desired release frequency, risk tolerance, user impact, and testing needs.

--

--

Prateek chaudhary
Prateek chaudhary

Written by Prateek chaudhary

Software Developer who loves to explore new tech

No responses yet