Esistono diversi scenari in cui la distribuzione potrebbe essere diversa per ambiente:
- Quali macchine vengono distribuite su (ovviamente).
- File di configurazione (hai menzionato questo).
- Numero di macchine (o VM) per ambiente.
- Load Balancer.
- Configurazioni di rete.
- di autenticazione.
Potrebbero esserci molti altri, ma è difficile dire senza ulteriori informazioni sul tuo progetto specifico.
Per quanto riguarda la memorizzazione dei binari, è abbastanza comune archiviare gli artefatti di build da qualche parte, ma raccomanderei l'uso di un vero e proprio repository di risorse piuttosto che un "repository di codice sorgente" come SVN. Avresti creato lavori che creavano le risorse (release o in-progress) e messi nel repository. Quindi avresti altri lavori che distribuiscono le risorse ai server. Puoi combinarli, ma questo può essere molto per un lavoro e tu inizi a perdere granularità.
(A parte: ho un po 'di esperienza con Maven, Nexus e Jenkins per i servizi web C # ... ma questa è una vera follia per molti sviluppatori .NET, ma una volta che hai Maven che lavora per te in .NET- terra - invece di contro di te - quindi ottieni dei benefici netti.)