Abbiamo un problema nella nostra organizzazione dove abbiamo la necessità di sapere "con certezza molto alta" quali versioni specifiche di ogni app / servizio web / ecc. viene distribuito su un determinato nodo e / o ambiente in qualsiasi momento specifico.
Alcune idee sono state prese a calci in giro, come ad esempio:
- Uno strumento di distribuzione personalizzato supportato da un DB e su ogni distribuzione registra il numero di versione sul DB (in modo che possiamo eseguire una query DB e dire " Ehi, sembra il Web di Fizz Buzz Il servizio ha la versione 1.34.1 distribuita nel suo ambiente QA / TEST ")
- Un tipo di plugin "build info" che inietta le informazioni dell'elemento della configurazione in un file di metadati (XML / JSON / qualunque) e che espone alcuni URL dell'amministratore da cui è possibile recuperare tali informazioni. Ad esempio, la build CI crea la versione 1.34.2 del "Fizz Buzz Web Service" e crea un file buildinfo.json all'interno del suo binario. Quindi, una volta distribuito il servizio Web, alcuni controller sul lato server possono leggere quel file JSON ed esporlo come informazioni a, diciamo,
http://myapp.example.com:8081/buildinfo
, ecc.
Sebbene questi metodi possano funzionare, sento che stiamo cercando di reinventare la ruota qui. Quindi chiedo: ci sono strumenti / metodi / pratiche che affrontano questo già? Voglio solo la possibilità di eseguire un tipo di tipo di query che riporta quale versione di un componente (di nuovo, app Web, servizio Web, DB, qualunque sia) distribuita su un determinato nodo (VM) o ambiente (DEV, QA, PROD) .