Visual Studio consente di eseguire la pubblicazione di una soluzione (testata in locale) sull'ambiente di staging o direttamente sull'ambiente di produzione in the cloud utilizzando il menu di pubblicazione. È sufficiente premere il tasto destro del mouse sul progetto cloud e scegliere publish
. La prima opzione consente di creare il package di installazione che potrà poi essere utilizzato dal portale per effettuare il deploy, mentre la seconda opzione consente di automatizzare questa operazione:
La procedura completa per automatizzare la pubblicazione diretta da Visual Studio consta di alcuni passaggi, esaminiamoli.
Per prima cosa occorre aggiungere le credenziali da utilizzare per interrogare le Management API. Le richieste da remoto dovranno essere firmate digitalmente e quindi la procedura prevede l'utilizzo (o la creazione) di un certificato digitale che consente di effettuare queste operazioni con Visual Studio.
Dal dialog di pubblicazione si può scegliere l'opzione "Deploy your Windows Azure project to Windows Azure" al posto di "Create Service Package Only":
Nella maschera successiva scegliamo un certificato digitale esistente oppure, come si nota dalla combo, ne creiamo uno nuovo. Non è necessario richiedere il certificato ad una autorità di certificazione esterna in quanto il certificato potrà essere aggiunto dall'amministratore sul portale di Windows Azure.
In pratica, visto che le richieste devono essere firmate digitalmente, il certificato che viene usato per firmare le richieste deve essere utilizzabile da Windows Azure per decriptare le informazioni e quindi verificare la firma. È sufficiente quindi far "conoscere" a Windows Azure il certificato X.509 utilizzato dagli sviluppatori per pubblicare da Visual Studio.
Una volta scelto Add
, appare la seguente maschera che consente di scegliere un certificato digitale già associato all'utente Windows corrente oppure di crearne uno nuovo.
Una volta creato il certificato occorre effettuarne l'upload dal portale di Windows Azure: la sezione Management Certificate consente di aggiungerlo, tramite il pulsante nel ribbon in alto "Add Certificate". Nella maschera seguente i miei certificati: i vari certificati installati fanno riferimento ai miei certificati locali di vari PC (sono quelli creati in automatico all'installazione di Windows).
Visto che ogni account Windows Live può gestire diverse subscription, è necessario indicare a Visual Studio a quale subscription legare le credenziali che stiamo creando. Si può copiare il Subscription ID della subscription su cui si vuole pubblicare in automaico da Visual Studio selezionando la subscription (evidenziata in blu) e controllando il cambo Subscription ID evidenziato in rosso nell'immagine seguente.
La subscription contiene una soluzione reale di DevLeap: rappresenta la parte server (o meglio cloud) della nostra applicazione Save The Planet per Windows Phone 7. Consta di un Web Role che ospita i servizi WCF e di un Worker Role che invia le notifiche con i canali Push verso i disposisitivi.
Copiare il Subscription ID e incollarlo nella maschera di Visual Studio.
Abbiamo completato la configurazione delle informazioni necessarie ad effettuare il publish da Visual Studio. Possiamo quindi premere "OK" e scegliere se pubblicare in staging o in produzione:
Durante la pubblicazione è possibile monitorare le varie fasi con il Windows Azure Activity Log:
Anche il Server Explorer monitora il tutto in tempo "quasi reale". Nell'immagine seguente si nota "Initializing" accanto a "Instance 0".
Naturalemente possiamo verificare l'andamento del deplyment anche dal portale di Windows Azure.
È interessante sottolineare anche la funzionalità che ci permette di monitorare le istanze in deployment direttamente dal Server Explorer del client.
Nell'immagine si nota il sito di ThinkAhead in produzione, con lo stato della sua Istanza "0". A fianco altri progetti che stiamo seguendo.
L'SDK di Agosto 2011 propone questa nuova schermata di pubblicazione, oltre ad un menù separato sul progetto cloud che produce il package. In pratica, mentre prima la funzionalità di Publish prevedeva due opzioni per la sola creazione del package e per la sua pubblicazione completa, adesso le due opzioni sono diventate due voci separate di menu.
È possibile scegliere anche la configurazione da usare, sia per quanto riguarda la compilazione Debug/Release (o custom) sia per quanto riguarda la service configuration. Da questa versione è infatti possibile creare più configurazioni e scegliere quale configurazione pubblicare su Windows Azure. Questa nuova funzionalità è molto comoda per tenere due configurazioni separate fra ambiente di test e ambiente di produzione e pubblicare la configurazione corretta in base al base al deployment da effettuare.