Overview
Rolling Deployment gradually updates application instances to a new version, ensuring no downtime. The application remains available throughout the process.
Key Concepts
- Current Version: The existing application version.
- New Version: The updated application version.
- Instances: Units of the application running on servers or containers.
Deployment Steps
- Prepare New Version: Ensure it is fully developed and tested.
- Update Instances in Batches: Update a subset of instances in small batches.
- Monitor and Validate: Validate the new instances’ performance.
- Repeat the Process: Continue updating until all instances are new.
- Rollback if Necessary: Pause or rollback if issues are detected.
Advantages
- No Downtime: Ensures continuous availability.
- Reduced Risk: Problems can be detected early.
- Incremental Updates: Controlled and manageable updates.
Challenges
- Complexity: Requires careful planning and coordination.
- Resource Intensive: Temporarily increases resource usage.
- Slower Deployment: Takes longer due to gradual updates.
Example Use Cases
- High-Availability Systems: Applications needing continuous service.
- Large-Scale Applications: Beneficial for many instances.
- Microservices Architecture: Suitable for environments with microservices.
Comparison with Other Deployment Strategies
- AB Testing Deployment: Rolling updates instances within the same environment, unlike A/B Testing’s simultaneous versions.
- Blue-Green Deployment: Rolling updates instances gradually, whereas Blue-Green switches environments.
- Canary Release: Both involve gradual updates, but Canary focuses on user groups, while Rolling updates instances.
- Recreate Deployment: Rolling updates instances incrementally, while Recreate replaces the current environment.
- Shadow Deployment: Rolling updates instances in production, while Shadow tests with mirrored traffic.