2.1 KiB
2.1 KiB
Canary Deployment Controller with Auto-Advance, Statistical Analysis, and Auto-Rollback
Module
ReleaseOrchestrator
Status
IMPLEMENTED
Description
Canary controller for gradual traffic promotion through configurable steps (e.g., 5% -> 10% -> 25% -> 50% -> 100%) with multiple progression strategies (linear, exponential, fibonacci). Auto-advances based on statistical metrics analysis, auto-rolls back on metric threshold breaches, supports manual intervention and configurable promotion schedules.
Implementation Details
- Modules:
src/ReleaseOrchestrator/__Libraries/StellaOps.ReleaseOrchestrator.ProgressiveDelivery/,src/ReleaseOrchestrator/__Libraries/StellaOps.ReleaseOrchestrator.Progressive/Canary/ - Key Classes:
CanaryController(src/ReleaseOrchestrator/__Libraries/StellaOps.ReleaseOrchestrator.ProgressiveDelivery/CanaryController.cs) - canary controller with statistical analysis and auto-advance/rollbackCanaryController(src/ReleaseOrchestrator/__Libraries/StellaOps.ReleaseOrchestrator.Progressive/Canary/CanaryController.cs) - canary controller implementationTrafficManager(src/ReleaseOrchestrator/__Libraries/StellaOps.ReleaseOrchestrator.ProgressiveDelivery/TrafficManager.cs) - manages traffic distribution during canary phasesCanaryDeploymentStrategy(src/ReleaseOrchestrator/__Libraries/StellaOps.ReleaseOrchestrator.Deployment/Orchestrator/RollingDeploymentStrategy.cs) - canary deployment strategy implementation
- Interfaces:
ICanaryController,ITrafficManager,IDeploymentStrategy - Source: SPRINT_20260110_110_003_PROGDL_canary_controller.md
E2E Test Plan
- Start a canary deployment with 5% initial traffic and verify only 5% of traffic goes to the canary
- Verify auto-advance: metrics remain healthy and traffic automatically advances to the next step (10%)
- Verify auto-rollback: inject a metric threshold breach and confirm traffic rolls back to 0% canary
- Verify progression strategies: configure fibonacci progression and verify steps follow 5%, 8%, 13%, 21%, ...
- Verify manual intervention: pause auto-advance and manually promote the canary