Blue/Green Principles in Brownfield Legacy Systems
Abstract
Blue/green and canary deployments are often associated with modern platforms. In practice, they are deployment principles rather than platform features. Even in brownfield legacy systems, these principles can still be applied to reduce risk and improve production safety.
The Reality of Brownfield Systems
Many production environments still involve:
- Applications running on virtual machines
- Legacy servers such as IIS
- No native support for blue/green or canary deployments
- Limited tolerance for large-scale platform rewrites
In practice, many brownfield systems—such as older .NET Framework applications—do not fit cleanly into container or cluster-based platforms without substantial rework.
Parallel Instances Enable Blue/Green Behavior
If application state allows:
- Deploy a second version alongside the existing one
- Use a separate VM, site, or port
- Keep the current version serving users
At this stage, both versions run in production, but only one receives live traffic.
Validate in Production Without User Impact
The new version can be exercised under real production conditions using:
- Dedicated hostnames
- IP allowlisting
- Header-based routing
- Internal-only endpoints
This allows validation of authentication, data access, logging, and performance without exposing users to risk.
Control Traffic at the Edge
Introduce a single routing control point such as an application gateway, load balancer, or reverse proxy.
This enables deliberate cutover, immediate rollback, and explicit ownership of traffic without modifying application code.
Key Takeaway
Blue/green deployments separate deployment safety from application logic. Even in legacy systems, running parallel instances and controlling traffic externally enables safer releases.
ASCII Diagram
Users
|
v
+-----------------+
| Load Balancer / |
| Gateway |
+-----------------+
|
| (cutover control)
|
+-------+-------+
| |
v v
+-----------+ +-----------+
| Blue | | Green |
| Environment| |Environment|
| (Active) | | (Standby) |
+-----------+ +-----------+
|
v
Production
(No K8s)