When an EAS service scales to dozens or hundreds of replicas, a full rolling update carries significant deployment risk because it provides no batch control or pause mechanism. The update plan feature addresses this by supporting two update modes — manual batching (Partition) and automatic batching (Batch Update) — so you can control the pace of large-scale deployments and roll back quickly if problems arise.
Key concepts
-
Multiple update modes: Two modes are supported — manual batching (Partition) and automatic batching (Batch Update).
Characteristic
Manual batching (Partition)
Automatic batching (Batch Update)
Control
Fully manual; you advance each batch
System advances batches automatically after configuration
Operational overhead
Higher
Lower
Flexibility
Highest
Moderate
Best for
Canary releases of critical online services
Routine updates to large-scale services
Full control throughout the update: Pause, roll back, or change the batching strategy at any point during the update. Delete the plan to revert to the default full-replacement strategy.
Real-time status visibility: An Update plan status tag in the service details header shows the current phase. Hover over the tag to see a tooltip with live progress, batch countdown, and other key information.
Quick start
The following example walks through creating an update plan and completing a service update using manual batching on a service with 10 replicas.
Prerequisites: enable the update plan feature
The update plan feature can only be enabled when creating a new service. It cannot be enabled by updating an existing service.
When creating a service, add "eas.aliyun.com/enable-rollout": "true" to the features field of the JSON configuration. Without this setting, the update plan feature is unavailable. Example:
{
"metadata": {
"instance": 10
},
"features": {
"eas.aliyun.com/enable-rollout": "true"
}
}
Step 1: Create an update plan
Click the target service to open the EAS service details page.
Locate the Update plan tag in the header bar. By default it appears gray, indicating no plan is configured.
Hover over the tag and click Create update plan in the tooltip that appears.
In the panel that slides in from the right, select Manual batching and set the first-batch replica count to
2.Click OK.
The update plan is created. The tag turns blue and the status changes to Pending.
Step 2: Trigger the update
Click Update on the service details page and submit the new service configuration.
The system starts the update according to the plan: it updates 2 replicas first, then pauses and waits. The tooltip shows the current progress (2/10).
Step 3: Verify and advance to the next batch
Check your business metrics (latency, error rate, and so on). If no issues are found, modify the plan and set the target replica count to 10. The system updates the remaining 8 replicas until the update is complete.
If issues are found, modify the update plan and set the target replica count to 0. All updated replicas roll back to the previous version.
Status reference
The update plan uses a two-level status model: the top level is the phase, and the second level is the stage (which only exists when the phase is Active).
Not configured (gray): No update plan exists. Updating the service triggers a full replacement.
Pending (blue): A plan has been created and is waiting for a service update to activate it.
-
Active (blue): The update has been triggered and the system is replacing replicas in batches. Three stages exist within Active:
Current batch executing: The batch is in progress; the updated count is approaching the target.
Current batch paused: A user paused execution; progress is frozen.
Current batch completed: The batch target has been reached. The system waits for you to advance manually (manual batching) or for the countdown to expire (automatic batching).
-
Completed (blue): The current round of updates is finished.
Updating the service again re-triggers the plan and changes the status to Active.
Modifying the plan changes the status to Pending and waits for the next service update.
The following table shows which operations are available in each status:
|
Operation |
Not configured |
Pending |
Active |
Completed |
||
|
Current batch executing |
Current batch paused |
Current batch completed |
||||
|
Create plan |
✓ |
|||||
|
Modify plan |
✓ |
✓ |
✓ |
✓ |
✓ |
|
|
Delete plan |
✓ |
✓ |
✓ |
✓ |
✓ |
|
|
Pause |
✓ |
|||||
|
Resume |
✓ |
|||||
|
Update service |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
Usage notes
Modifying an Active plan: New parameters take effect immediately. If the plan is currently paused, the modification automatically resumes it.
Modifying a Completed plan: The configuration is saved but does not trigger an update automatically. Update the service again to apply the new plan.
Deleting an Active plan: The remaining replicas continue updating using the full-replacement strategy. No rollback occurs.
Scaling while an update plan exists: The plan parameters remain unchanged and apply based on the actual replica count at execution time.
Setting the first-batch count to 0 in manual batching: This is a valid value. The service update triggers immediately but pauses at the starting point, waiting for you to advance manually.
Setting the batch size ≥ total replica count in automatic batching: All replicas are updated in a single batch, which is equivalent to a full replacement.
JSON configuration
Configure the update plan by setting parameters in the metadata.rolling_strategy field of the service JSON configuration.
Full configuration structure
{
"metadata": {
"rolling_strategy": {
"max_surge": "25%",
"max_unavailable": "20%",
"partition": 5,
"paused": false,
"batch_update": {
"interval": "5m",
"batch_size": 2
}
}
}
}
Field reference
|
Field |
Type |
Description |
Default |
|
|
Number or percentage |
Maximum extra replicas allowed during an update |
0 |
|
|
Number or percentage |
Maximum number of replicas that can be unavailable during an update |
20% |
|
|
Number or percentage |
Manual batching: number of replicas to update in the current batch |
— |
|
|
Boolean |
Whether to pause the update. Applies to both modes. |
false |
|
|
Duration string (for example, |
Automatic batching: wait time between the completion of one batch and the start of the next |
— |
|
|
Number or percentage |
Automatic batching: number of replicas to update per batch |
Equals |
Configuration examples
Manual batching: canary release
{
"metadata": {
"instance": 10,
"rolling_strategy": {
"partition": 2,
"max_unavailable": 1
}
}
}
10 replicas total. The first 2 are updated; the remaining 8 stay on the old version until you advance the plan.
Automatic batching: large-scale service
{
"metadata": {
"instance": 100,
"rolling_strategy": {
"batch_update": {
"interval": "10m",
"batch_size": 5
}
}
}
}
100 replicas total. The system automatically updates 5 replicas every 10 minutes.
Emergency pause
{
"metadata": {
"rolling_strategy": {
"paused": true
}
}
}
Quick rollback
{
"metadata": {
"rolling_strategy": {
"partition": 0
}
}
}
Set partition to 0 to roll back all updated replicas to the previous version. This works for both manual batching and automatic batching modes.
FAQ
Q: How do I roll back quickly?
If you discover a problem during an update (for example, while updating from V2 to V3), use the following approach for the fastest rollback:
Switch the update plan to manual batching and set the target replica count to 0. All updated replicas roll back to the previous version (V2).
Update the service configuration (to V4 or any stable version).
Modify the update plan as needed to continue the rollout.
If the update has already completed and all replicas are running the new version (V3), rolling back through the update plan is no longer possible. Go to the service version list and select a specific version to roll back to.
Q: Can manual batching and automatic batching parameters be set at the same time?
No. The partition parameter (manual batching) takes precedence. When partition is set, the system ignores all automatic batching parameters.
Q: How do I pause an update in progress?
Set paused: true. This works for both manual batching and automatic batching. Alternatively, click Pause in the Update plan tooltip in the console.
Q: What happens if I don't set a batch size for automatic batching?
The system uses the value of max_unavailable as the batch size.
Q: What happens if I don't set a batch interval for automatic batching?
The batch size still applies, but the system will not advance to the next batch automatically. This is equivalent to manual batching and requires you to advance each batch manually.