Files
git.stella-ops.org/docs/features/unchecked/releaseorchestrator/traffic-manager-with-load-balancer-adapters.md

1.7 KiB

Traffic Manager with Load Balancer Adapters

Module

ReleaseOrchestrator

Status

IMPLEMENTED

Description

Traffic management abstraction with adapters for Nginx Plus, HAProxy, Traefik, and AWS ALB, enabling weighted traffic splitting for canary and blue-green deployments.

Implementation Details

  • Modules: src/ReleaseOrchestrator/__Libraries/StellaOps.ReleaseOrchestrator.ProgressiveDelivery/, src/ReleaseOrchestrator/__Libraries/StellaOps.ReleaseOrchestrator.Progressive/Routing/
  • Key Classes:
    • TrafficManager (src/ReleaseOrchestrator/__Libraries/StellaOps.ReleaseOrchestrator.ProgressiveDelivery/TrafficManager.cs) - high-level traffic management with weighted splitting for canary and blue-green
    • TrafficRouterRegistry (src/ReleaseOrchestrator/__Libraries/StellaOps.ReleaseOrchestrator.Progressive/Routing/TrafficRouterRegistry.cs) - registry of traffic router implementations (adapters)
    • InMemoryTrafficRouter (src/ReleaseOrchestrator/__Libraries/StellaOps.ReleaseOrchestrator.Progressive/Routing/InMemoryTrafficRouter.cs) - in-memory traffic router for testing and development
  • Interfaces: ITrafficManager, ITrafficRouter
  • Source: SPRINT_20260117_035

E2E Test Plan

  • Register a traffic router adapter with TrafficRouterRegistry and verify it is available
  • Set weighted traffic split (e.g., 90/10) via TrafficManager and verify the split is applied
  • Verify canary traffic progression: increase weight incrementally and confirm routing changes
  • Verify blue-green switch: flip traffic 100% to the new version and confirm full cutover
  • Verify InMemoryTrafficRouter correctly tracks routing state for testing