Abbiamo un'applicazione aziendale. Costruisci Maven, circa 20 sottomoduli con più sottomoduli. Abbiamo un Ops dedicato (operazioni) che distribuisce la nostra applicazione a 10 cluster. Le installazioni hanno versioni diverse, circa 5 clienti in totale. Linguaggio Java Stiamo sviluppando attivamente tutte le parti dell'applicazione in modo che tutto possa cambiare (non siamo in modalità di manutenzione). L'applicazione viene eseguita in Tomcat, in Linux; distribuito in file di guerra Java.
Al momento tutte le configurazioni dell'applicazione (host db, ecc.) sono mantenute nei file delle proprietà Java. Questi file si trovano nel percorso globale /opt/app/conf
. Questo è utile per gli operatori perché possono facilmente modificare la configurazione di una particolare installazione. Tuttavia, per gli sviluppatori è difficile perché le proprietà non sono memorizzate nel nostro repository di controllo della versione. Crea anche una "dipendenza" hardcoded su un percorso globale, il che significa che è difficile per uno sviluppatore avere diverse copie del repository (o ramo) allo stesso tempo. Inoltre, a volte i file delle proprietà non sono "sincronizzati" con il codice (poiché non sono insieme in VCS).
Abbiamo preso in considerazione diverse alternative a questa situazione, ma la maggior parte di esse avrebbe chiaramente favorito le operazioni ops o dev, non entrambe. Qualche idea?