Sembra che ci sia una lacuna nell'erogazione e nella distribuzione continue .. Ma ci sono alcuni strumenti che sono davvero potenti e possono colmare il divario!
Ho avuto lo stesso problema un po 'di tempo fa e ho trovato uno strumento straordinario che mi ha salvato la vita, e tutti i membri della mia azienda che hanno dovuto distribuire manualmente la nostra soluzione, ogni rilascio, a tutti i nostri clienti. Questo strumento si chiama Octopus Deploy.
Nel loro sito web descrivono il prodotto come:
Octopus Deploy is a user-friendly release management system for professional .NET developers.
It enables automated, frequent, low-risk releases of ASP.NET applications and Windows Services into development, test, staging and production environments.
E lo fa davvero molto bene.
Questo è il modo in cui l'abbiamo creato nella mia azienda:
Abbiamo un repository Git diviso in tre rami: dev-pre-pro.
Come strumento di integrazione continua utilizziamo Hudson. Ogni volta che Hudson compila uno dei tre rami, genera un pacchetto Nuget (usando OctoPack + MSBuild).
Questi pacchetti possono essere consumati dal nostro sito di amministrazione OctopusDeploy all'interno del nostro dominio. OctopusDeploy sostanzialmente spinge i pacchetti di nuget ai suoi "tentacoli" (servizi installati nelle macchine in cui vogliamo distribuire) ed esegue azioni personalizzate usando PowerShell.
In questo modo, utilizzando gli script PS è possibile copiare la nuovissima soluzione appena compilata nell'ambiente selezionato, avviare / interrompere i servizi prima o dopo aver copiato o addirittura aggiornato il database. Lascia che la tua immaginazione scorra ..
Quindi, dopo aver compilato il progetto nello strumento CI (potrebbe essere fatto utilizzando TFS), possiamo andare al sito di amministrazione di OctopusDeploy ed eseguire un aggiornamento a tutti i nostri ambienti (dev-pre-pro) con soli due clic!
Ps.- Non lavoro per OD, ma penso che sia uno strumento straordinario! ;)