Six Strategies for Application Deployment

Six Strategies for Application Deployment

Recreate

  • Version A is terminated then version B is rolled out.
  • High down time
    Ramped (also known as rolling-update or incremental)
  • Version B is slowly rolled out and replacing version A.
  • Both new and old version exist during deployment, need to support multiple version at the same time
    Blue/Green
  • Version B is released alongside version A, then the traffic is switched to version B.
    Canary
  • Version B is released to a subset of users, then proceed to a full rollout.
  • Usually used when low confidence on new release
    A/B testing
  • Version B is released to a subset of users under specific condition.
  • Requires intelligent load balancer
  • Difficult to troubleshoot erros for a given session
    Shadow
  • Version B receives real-world traffic alongside version A and doesn’t impact the response
  • Can test system load
  • Complex to set up, need to mock service