Skip to content

Rolling Update (Ramped) Deployment

A Rolling Update (also known as a Ramped Deployment) is a strategy where new application versions are released incrementally, replacing instances of the old version gradually without service interruption^[400-devops__06-Kubernetes__k8s-ithelp__Day12__README.md].

Process

This method functions like water flowing to a lower point, updating instances slowly and smoothly^[400-devops__06-Kubernetes__k8s-ithelp__Day12__README.md]. During the process, a specified number of old instances are terminated as new instances are launched, ensuring there is no downtime for the service^[400-devops__06-Kubernetes__k8s-ithelp__Day12__README.md].

Deployment stability and speed can be managed by adjusting several parameters^[400-devops__06-Kubernetes__k8s-ithelp__Day12__README.md]:

  • Max Surge: The maximum number of pods that can be created above the desired replica count during the update^[400-devops__06-Kubernetes__k8s-ithelp__Day12__README.md].
  • Max Unavailable: The maximum number of pods that can be unavailable during the update process^[400-devops__06-Kubernetes__k8s-ithelp__Day12__README.md].
  • Max Executions: The number of services that can be released simultaneously^[400-devops__06-Kubernetes__k8s-ithelp__Day12__README.md].

Advantages and Disadvantages

Advantages

  • Resource Efficiency: It consumes fewer resources compared to Blue/Green deployment strategies^[400-devops__06-Kubernetes__k8s-ithelp__Day12__README.md].
  • Availability: The service remains uninterrupted during the deployment^[400-devops__06-Kubernetes__k8s-ithelp__Day12__README.md].
  • Ease of Setup: It is relatively easy to configure^[400-devops__06-Kubernetes__k8s-ithelp__Day12__README.md].

Disadvantages

  • Slow Rollback: The time required to release or rollback can be significant; for example, updating 100 services in batches of 10 (taking 5 minutes each) means a rollback might not occur until the 80th service fails^[400-devops__06-Kubernetes__k8s-ithelp__Day12__README.md].
  • Traffic Management: Since both old and new versions run simultaneously, it is impossible to control traffic routing between them^[400-devops__06-Kubernetes__k8s-ithelp__Day12__README.md].
  • Debugging Difficulty: Errors can be harder to attribute to a specific version during the update process^[400-devops__06-Kubernetes__k8s-ithelp__Day12__README.md].

Sources

  • 400-devops__06-Kubernetes__k8s-ithelp__Day12__README.md