Meet Unleash in person at a Conference near you➩ Book a meeting

Reserve your spot at FeatureOps Summit (June 23)

Events

FeatureOps Summit 2026 is the definitive, virtual gathering for developers, engineers, architects, and product leaders who are closing the gap between engineering velocity and business impact.

Rolling deployment vs progressive delivery: Infra vs user rollout

Michael Ferranti

Michael Ferranti

VP of Strategy

November 3, 2024

Rolling deployment

Rolling deployment is a gradual deployment strategy where new application versions are released incrementally across a fleet of servers or containers. Instead of updating all instances simultaneously, the deployment process replaces old versions with new ones in batches, typically one or a few instances at a time. This approach ensures that the application remains available throughout the deployment process, as some instances continue serving traffic while others are being updated.

The rolling deployment strategy provides a balance between deployment speed and risk mitigation. If issues arise during the deployment, the process can be halted, and the remaining instances continue running the stable version. However, during the deployment window, different versions of the application run simultaneously, which may require careful consideration of backward compatibility and database schema changes.

Progressive delivery

Progressive delivery extends traditional deployment strategies by incorporating advanced traffic management, monitoring, and automated decision-making throughout the release process. This approach combines deployment techniques like canary releases, blue-green deployments, and feature flags with real-time observability to gradually expose new features to users based on predefined criteria and performance metrics. The strategy emphasizes controlled exposure and the ability to quickly respond to issues through automated rollbacks or traffic steering.

Unlike simple deployment strategies, progressive delivery treats the release process as an ongoing experiment where the impact of changes is continuously measured and evaluated. Teams can start by exposing new features to a small percentage of users, monitor key performance indicators, and gradually increase exposure based on success criteria. This data-driven approach reduces risk by catching issues early and provides the flexibility to adjust the rollout strategy in real-time based on user feedback and system performance.

Comparison

Deployment scope

  • Rolling Deployment: Focuses on the technical process of updating application instances across infrastructure
  • Progressive Delivery: Encompasses the entire feature release lifecycle including user exposure and business impact

Traffic control

  • Rolling Deployment: Traffic naturally shifts as instances are updated, with limited granular control
  • Progressive Delivery: Provides fine-grained traffic routing and user segmentation capabilities

Risk management

  • Rolling Deployment: Mitigates risk through gradual instance updates and the ability to halt deployments
  • Progressive Delivery: Manages risk through controlled user exposure, automated monitoring, and intelligent rollback mechanisms

Complexity

  • Rolling Deployment: Relatively simple to implement and understand, focusing on infrastructure concerns
  • Progressive Delivery: More complex, requiring sophisticated tooling for traffic management, monitoring, and automation

Decision making

  • Rolling Deployment: Typically follows a predetermined schedule with manual intervention when issues occur
  • Progressive Delivery: Leverages automated decision-making based on real-time metrics and predefined success criteria

Feature flags in rolling deployments

Feature flags complement rolling deployments by providing an additional layer of control over feature activation independent of the deployment process. During a rolling deployment, feature flags allow teams to deploy code to all instances while keeping new features disabled until the deployment is complete and validated. This separation of deployment and release reduces the complexity of rollbacks, as problematic features can be instantly disabled without requiring a code deployment or interrupting the rolling update process.

When issues arise during a rolling deployment, feature flags enable quick mitigation by allowing teams to disable specific features while keeping the new application version running. This approach is particularly valuable when the deployment process reveals that certain features work well while others cause problems, eliminating the need for a complete rollback to the previous version.

Feature flags in progressive delivery

Feature flags are fundamental to progressive delivery strategies, serving as the primary mechanism for controlling user exposure to new features throughout the release process. They enable sophisticated targeting capabilities, allowing teams to expose features to specific user segments, geographic regions, or percentage-based cohorts while collecting detailed analytics on feature performance. The flags work in conjunction with traffic routing and monitoring systems to create a comprehensive release control system.

In progressive delivery, feature flags integrate with automated decision-making systems that can adjust feature exposure based on real-time metrics and predefined success criteria. For example, if error rates exceed thresholds or user engagement drops, the system can automatically reduce feature exposure or disable features entirely. This tight integration between feature flags and observability systems creates a responsive release process that can adapt to changing conditions without manual intervention.

Rolling Deployment offers simplicity and resource efficiency by gradually replacing instances of the old version with the new one, maintaining full capacity throughout the process. This approach requires minimal infrastructure overhead and provides automatic rollback capabilities if issues arise during deployment. However, rolling deployments can be risky for breaking changes since both versions temporarily coexist, potentially causing compatibility issues. The deployment process can also be slower for large applications, and there’s limited control over user exposure to the new version during the transition period.

Progressive Delivery provides superior control and risk mitigation through feature flags, canary releases, and blue-green deployments, allowing teams to precisely manage which users see new features and when. This strategy enables real-time monitoring, instant rollbacks, and gradual feature exposure based on user segments or metrics. The downside is increased complexity requiring additional tooling and infrastructure, higher operational overhead, and the need for more sophisticated monitoring and feature flag management systems. Choose rolling deployments for simpler applications with backward-compatible changes and limited infrastructure complexity, while progressive delivery is ideal for mission-critical applications, large user bases, or when you need granular control over feature releases and risk management.

FAQs about Rolling deployment vs progressive delivery

Is rolling deployment a form of progressive delivery?

Rolling deployment is an infrastructure technique; progressive delivery is an operational practice that combines techniques like rolling deployments, canary releases, feature flags, and A/B testing to release features gradually by user cohort. Rolling can be a building block of progressive delivery, but isn’t progressive delivery on its own.

What can I do with progressive delivery that I can’t with rolling deployments?

Target by user, not by server. With rolling deployments, user X gets the new version whenever their request happens to land on an updated instance. With progressive delivery, user X is either in the cohort that sees the new feature or isn’t — regardless of which server handles their request.

Can I do progressive delivery without changing my deployment process?

Yes. Progressive delivery is typically implemented with feature flags on top of any deployment strategy — rolling, blue-green, or recreate. Your CI/CD process doesn’t change; what changes is how you release features (independently of deploying code).

Which is safer for a risky feature?

Progressive delivery, because you can target exposure by user cohort (internal, beta, 1%, 10%) and roll back instantly via a flag. A rolling deployment can only control where the code runs, not who experiences it.

When does plain rolling deployment beat progressive delivery?

For infrastructure-only changes with no user-facing behavior such as library upgrades, runtime version bumps, and config refactors. There’s no feature to flag, so the overhead of progressive delivery isn’t worth it.