Modi per implementare versioni di software diversi come un unico pezzo?

0

Siamo C # shop (e appena iniziamo con TFS) con un numero di soluzioni diverse (e ce ne sono molte) che rappresentano componenti diversi, che distribuiamo su un numero abbastanza grande di server di produzione. Attualmente, le installazioni dei componenti vengono eseguite manualmente, in cui lo sviluppatore si posiziona su ciascun server e installa / disinstalla il componente (i file di installazione dei componenti sono .msi, che creiamo utilizzando WIX per ogni singolo componente). Naturalmente, il problema diventa che alla fine qualcuno dimenticherà di installare un nuovo componente sui server di produzione e solo dopo aver attraversato gli altri server, scoprirai che hai a che fare con componenti obsoleti. E siamo terribili nel tenere traccia di ciò che ha fatto ciò che i server.

Tecnicamente, possiamo collocare tutte le soluzioni esistenti sotto un'unica soluzione e avere un singolo file .msi-install che comprende l'intera gamma di progetti. Ma questo creerà un'unica soluzione e un enorme file MSI. Tuttavia, questo è chiaramente risolve tutti i problemi.

Quindi quali sono i modi per distribuire le versioni di diversi software come un unico pezzo?

    
posta newprint 09.08.2017 - 20:28
fonte

2 risposte

3

È molto comune che i sistemi siano composti da molte parti dipendenti che dipendono dalle versioni specifiche che vengono distribuite. Ecco i miei suggerimenti che aiuteranno ad eliminare il problema di avere un componente non aggiornato:

  • Automatizza le tue implementazioni. L'errore umano è inevitabile, ma se inizi ad automatizzare le distribuzioni pezzo per pezzo, le tue implementazioni diventeranno più coerenti e meno soggette a questi tipi di errori.
  • Imballa un prodotto e tutte le sue dipendenze sotto lo stesso programma di installazione. Non si dovrebbe essere in grado di installare un componente se la sua dipendenza non è installata. non dovresti unire le soluzioni per creare un MSI da più soluzioni. Dovresti essere in grado di collegare i componenti dalla gestione dei pacchetti (Nuget) per creare il tuo programma di installazione amalgamato. Avere meno installatori da eseguire ridurrà gli errori di implementazione.
risposta data 09.08.2017 - 22:39
fonte
1

Potresti prendere lezioni da come pythons pip e NuGet/Chocolatey funzionano dove si avranno uno o più pacchetti di livello superiore con requisiti che specificano quali pacchetti dipendono, completi di minimo facoltativo, versioni massime o esatte .

Vale anche la pena dare un'occhiata a strumenti come Vagrant, Packer & Docker gestisce le cose.

    
risposta data 09.08.2017 - 23:07
fonte

Leggi altre domande sui tag