Rolling Deployment
Rolling Deployment allows incremental rollouts of software updates without downtime.
Classification
- ComplexityMedium
- Impact areaTechnical
- Decision typeDesign
- Organizational maturityAdvanced
Technical context
Principles & goals
Use cases & scenarios
Compromises
- Unexpected Bugs during the Rollout
- User Acceptance Might Be Affected
- Difficulties in Monitoring
- Regularly review rollout strategies.
- Incremental testing during rollout.
- Gather user feedback during the rollout.
I/O & resources
- Documentation of Existing Infrastructure
- Resources for Testing Environments
- Technical Contacts
- Completed Rollout Log
- User Feedback Data
- Performance Monitoring Reports
Description
Rolling Deployment is a method where software updates are gradually distributed to a multitude of servers. This technique allows the system to remain available while new features are introduced. By implementing a rolling approach, better feedback can be gathered, and potential issues can be identified more quickly.
✔Benefits
- Reduction of Risks during Updates
- Better Control over User Experiences
- Increased Availability
✖Limitations
- Complexity in Rollback Processes
- Increased Planning Effort
- Potential for Uneven User Experiences
Trade-offs
Metrics
- Rollout Speed
The time taken to deploy an update across all servers.
- User Satisfaction
Measurement of user satisfaction after an update.
- Error Rate
The frequency of errors or issues during the rollout.
Examples & implementations
E-commerce Platform Update
A national e-commerce company incrementally updated its platform to enhance user experience.
Streaming Service Feature Launch
A streaming service incrementally rolled out a new recommendation system to monitor acceptance.
Productivity Tools for Teams
A company incrementally translated its productivity tool for its teams to integrate feedback.
Implementation steps
Define the rollout strategy.
Prepare testing environments.
Execute the rollout and monitor results.
⚠️ Technical debt & bottlenecks
Technical debt
- Technical debt due to excessive complexity.
- Insufficient documentation.
- Resistance to change.
Known bottlenecks
Misuse examples
- Fast deployment without sufficient testing.
- Ignoring user feedback.
- Rollback when the cause is not understood.
Typical traps
- Too fast rollout without monitoring.
- Unrealistic schedules.
- Poor communication about changes.
Required skills
Architectural drivers
Constraints
- • Resources for Rollout Management
- • Infrastructure for Implementation
- • Security Regulations