Overview

Rolling Deployment gradually updates application instances to a new version, ensuring no downtime. The application remains available throughout the process.

Key Concepts

  1. Current Version: The existing application version.
  2. New Version: The updated application version.
  3. Instances: Units of the application running on servers or containers.

Deployment Steps

  1. Prepare New Version: Ensure it is fully developed and tested.
  2. Update Instances in Batches: Update a subset of instances in small batches.
  3. Monitor and Validate: Validate the new instances’ performance.
  4. Repeat the Process: Continue updating until all instances are new.
  5. 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.