Skip to main content

Topologia dell'ambiente di test

Requisito: ogni collaboratore vede il proprio microservizio modificato, mentre tutti gli altri continuano a vedere quello stabile. Duplicare l'intero stack per collaboratore è inutile.


Architettura

Shared stable core — un'istanza di ogni microservizio, sempre in esecuzione, non toccata dai collaboratori.

Per-user overlay — il servizio sotto test è buildato come service:user-branch e avviato a fianco dello stack stabile, non sostituendolo.

Per-user routing — un reverse proxy (Traefik con Docker label, o config Nginx dinamica) risolve le richieste dall'utente A verso il container di A e tutto il resto verso lo stack stabile.

Dati: senza cambio di schema, o solo con cambiamenti backward-compatible, un DB/Redis condiviso è sufficiente. La compatibilità backward deve essere verificata dai check, non assunta — e nessun consumer stabile deve leggere strutture che il cambiamento introduce.

Cleanup: i container di test portano un TTL, altrimenti gli orfani si accumulano.


Schema topologia

┌─────────────────────────────────────────────────────────────────┐
│ Shared stable core │
│ service-A:stable service-B:stable service-C:stable ... │
└─────────────────────────────────────────────────────────────────┘

┌──────────┴──────────┐
│ Reverse proxy │
│ (Traefik / Nginx) │
└──────────┬──────────┘

┌────────────────────┼────────────────────┐
│ │ │
User A overlay User B overlay User N overlay
service-A:a-branch service-B:b-branch service-C:n-branch
(TTL) (TTL) (TTL)