← Back to Questions
Microservices

What is rolling deployment in Microservices?

Learn What is rolling deployment in Microservices? with simple explanations, real-time examples, interview tips and practical use cases.

What is Rolling Deployment in Microservices?

Rolling Deployment is a software deployment strategy used in Microservices and Cloud-Native Applications where application instances are updated gradually, one by one or in small batches, without stopping the entire system.

Instead of replacing all servers simultaneously:

  • Old instances are replaced gradually
  • New instances are introduced step by step
  • Application remains available during deployment

Rolling Deployment is one of the most commonly used deployment strategies in:

  • Microservices Architecture
  • Kubernetes Deployments
  • Cloud-Native Applications
  • Distributed Systems

Why Rolling Deployment is Important

In enterprise systems:

  • Applications must remain highly available
  • Downtime impacts customers
  • Frequent releases are required
  • Deployment failures should be minimized

Traditional deployments may cause:

  • Full system downtime
  • Production outages
  • Service interruptions

Rolling Deployment solves these problems by:

  • Updating instances gradually
  • Keeping application online during deployment
  • Reducing deployment risk

Simple Banking Example

Suppose a banking platform has:

  • 10 Payment Service instances

Current version:

Payment Service v1.0
    

New version:

Payment Service v2.0
    

Rolling deployment process:

  1. Stop 1 old instance
  2. Deploy 1 new instance
  3. Validate health
  4. Repeat gradually

Banking application remains available throughout deployment.


Traditional Deployment Problem

Stop All Instances
       |
Deploy New Version
       |
Application Downtime
    

Rolling Deployment Solution

Replace Instances Gradually
       |
Some Old Instances Running
Some New Instances Running
       |
No Downtime
    

How Rolling Deployment Works

Old Instance Removed
       |
New Instance Started
       |
Health Checked
       |
Next Instance Updated
    

Rolling Deployment Flow

Instance 1 -> Updated
Instance 2 -> Updated
Instance 3 -> Updated
Instance 4 -> Updated
    

until all instances run new version.


Main Components of Rolling Deployment

Component Purpose
Old Instances Current running version
New Instances Updated application version
Load Balancer Routes traffic to healthy instances
Health Checks Ensures instance readiness

Real Banking Deployment Example

Initial State

10 Instances -> v1.0
    

Step 1

9 Instances -> v1.0

1 Instance -> v2.0
    

Step 2

8 Instances -> v1.0

2 Instances -> v2.0
    

Process continues gradually.


Traffic During Rolling Deployment

Users are served by:

  • Old version instances
  • New version instances

simultaneously during deployment.


Load Balancer Role

Load balancer routes traffic only to:

  • Healthy instances

Failed instances are removed automatically.


Health Check Example

/actuator/health
    

Kubernetes or load balancer verifies instance readiness before routing traffic.


Rolling Deployment Architecture

                    Users
                      |
                Load Balancer
                      |
---------------------------------------------------
|          |          |          |                |
v1.0      v1.0       v2.0       v2.0            v1.0
    

Both versions coexist temporarily.


Rolling Deployment with Kubernetes

Kubernetes supports Rolling Deployment natively.


Kubernetes Rolling Deployment Example

kubectl apply -f deployment.yaml
    

Kubernetes gradually replaces old pods with new pods.


Kubernetes Rolling Update Strategy

strategy:

  type: RollingUpdate
    

maxUnavailable Configuration

Defines:

  • Maximum unavailable instances during deployment

Example

maxUnavailable: 1
    

maxSurge Configuration

Defines:

  • Extra temporary instances during deployment

Example

maxSurge: 1
    

Banking Kubernetes Example

10 Payment Pods Running

1 Pod Replaced at a Time
    

Banking application remains available continuously.


Rolling Deployment with Docker

Docker containers allow:

  • Incremental container replacement

Docker Banking Example

payment-service:v1

payment-service:v2
    

Containers are updated gradually.


Rollback in Rolling Deployment

Suppose deployment fails.

  • Rollback process starts
  • Old version restored gradually

Banking Failure Example

New payment version introduces transaction issue.

Kubernetes detects:

  • Health check failures

Deployment rollback triggered automatically.


Benefits of Rolling Deployment

  • Minimal downtime
  • Lower infrastructure cost
  • Gradual release process
  • Improved availability
  • Reduced deployment risk
  • Native Kubernetes support

Real Banking Use Cases

  • Payment service upgrades
  • Fraud detection releases
  • Mobile banking backend updates
  • Loan processing improvements
  • ATM API deployments
  • Core banking service modernization

E-Commerce Example

During shopping festival:

  • Checkout service upgraded gradually

Customers continue placing orders without downtime.


Challenges of Rolling Deployment

  • Old and new versions coexist temporarily
  • Backward compatibility required
  • Database migration complexity
  • Rollback slower than Blue-Green Deployment

Backward Compatibility Challenge

During deployment:

  • Both old and new versions handle requests

APIs and database schemas must remain compatible.


Database Migration Challenge

Suppose:

  • New version introduces schema changes

Database migrations must support:

  • Old application version
  • New application version

Monitoring in Rolling Deployment

Monitoring tools track:

  • Error rates
  • Latency
  • CPU usage
  • Memory usage
  • Transaction success rate

Rolling Deployment vs Blue-Green Deployment

Feature Rolling Deployment Blue-Green Deployment
Deployment Style Gradual instance replacement Separate environments
Infrastructure Cost Lower Higher
Rollback Speed Moderate Very Fast
Downtime Minimal Near Zero

Rolling Deployment vs Canary Deployment

Feature Rolling Deployment Canary Deployment
Traffic Control Limited Advanced
Release Strategy Replace Instances Gradually Route Small Traffic Percentage
Risk Control Moderate Higher

Best Practices for Rolling Deployment

  • Use health checks properly
  • Maintain backward compatibility
  • Monitor deployments continuously
  • Use gradual rollout strategies
  • Plan database migrations carefully
  • Automate rollback mechanisms

Professional Interview Answer

Rolling Deployment is a deployment strategy used in Microservices and Cloud-Native Applications where application instances are updated gradually without stopping the entire system. Old instances are replaced one by one or in small batches while the application remains available to users. Rolling Deployment minimizes downtime, reduces deployment risk, and supports continuous delivery. It is widely used in Kubernetes environments, banking systems, cloud-native applications, and enterprise distributed systems for safe and scalable application releases.


Summary

Rolling Deployment is one of the most widely used deployment strategies in modern Microservices and Distributed Systems.

It enables gradual application upgrades with minimal downtime while maintaining service availability and reducing deployment risk.

Banking systems, payment gateways, e-commerce platforms, Kubernetes environments, and enterprise cloud-native applications heavily rely on Rolling Deployment for stable and scalable software releases.

Understanding Rolling Deployment is essential for backend developers, DevOps engineers, cloud architects, SRE engineers, and microservices developers building scalable distributed applications.

Why this Microservices question is important?

This interview question helps candidates understand real-time backend development concepts, practical problem solving, coding fundamentals, system design basics and production-ready application behavior.

Practice this question carefully for Java backend roles, Spring Boot developer interviews, microservices interviews, company interviews and full-stack developer preparation.

About the Author

Naresh Kumar is a Senior Java Backend Engineer with experience building enterprise applications using Java, Spring Boot, Microservices, Docker, Kubernetes and Cloud technologies.