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].
Related Concepts¶
Sources¶
- 400-devops__06-Kubernetes__k8s-ithelp__Day12__README.md