Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Test in locale e deploy per applicazioni Java

Verificare il funzionamento delle applicazioni Java in locale, grazie all'emulatore di Windows Azure, prima di procedere al deployment
Verificare il funzionamento delle applicazioni Java in locale, grazie all'emulatore di Windows Azure, prima di procedere al deployment
Link copiato negli appunti

Nell'articolo precedente abbiamo visto come preparare l'ambiente di sviluppo per realizzare applicazioni Java per Windows Azure, quindi abbiamo scritto una semplice pagina d'esempio che mostri il classico "Hello World!", riadattato per l'occasione ad "Hello Azure!". Ora siamo curiosi di vedere la nostra applicazione in esecuzione e testarne il funzionamento.

Effettuare il debug di un'applicazione per Windows Azure direttamente dal cloud non è ovviamente possibile, e per questo l'SDK di Windows Azure ci mette a disposizione un ambiente di emulazione utilizzabile per testare le applicazioni prima di pubblicarle effettivamente sulla nuvola.

Per eseguire un'applicazione nell'emulatore è necessario compilarla in un pacchetto opportuno, lanciare l'emulatore, effettuare il deploy del pacchetto all'interno dell'ambiente cloud emulato nel nostro computer e quindi andare a verificare nel browser che l'applicazione stia funzionando correttamente. Una serie di passi che sembrano piuttosto complessi ma, per fortuna, gli strumenti di sviluppo di Java per Windows Azure ci semplificano notevolmente il lavoro.

Per impacchettare e lanciare l'esecuzione di una Web application in Java all'interno dell'emulatore di Windows Azure è possibile utilizzare uno script presente all'interno del Windows Azure Project creato nello scorso appuntamento con Eclipse. Nella cartella "emulatorTools" è infatti presente un file di nome "RunInEmulator.cmd" che è possibile lanciare con un semplice doppio clic.

Verrà avviato l'emulatore di Windows Azure, quindi verrà eseguito lo script di startup analizzato nello scorso articolo per installare il runtime di Java e l'application server Tomcat, quindi inserire la nostra applicazione Web nel server e avviarla. Nella finestra dei comandi che viene aperta dallo script è possibile seguire l'esecuzione di queste operazioni.

Figura 09. (clic per ingrandire)


Una volta che il procedimento è completato, possiamo aprire la nostra Web application all'interno del browser navigando all'indirizzo:

http://localhost:81/HelloAzure/ 

e ottenendo come risultato finale, quindi, una pagina simile a questa:

Figura 10. (clic per ingrandire)


È interessante notare come l'applicazione stia girando all'interno dell'emulatore di Windows Azure ma in un ambiente del tutto familiare agli sviluppatori Java: ad esempio, infatti, navigando all'indirizzo

http://localhost:81/

si avrà accesso alla console di gestione di Tomcat.

Figura 11. (clic per ingrandire)


Possiamo quindi interrompere l'esecuzione nell'emulatore sempre facendo uso degli strumenti di sviluppo di Windows Azure per Java. Lanciamo con un semplice doppio clic il file "ResetEmulator.cmd" presente nella cartella "emulatorTools", che si occuperà per noi di interrompere l'emulatore.

Java sbarca sulle nuvole

Poiché siamo molto soddisfatti della nostra prima applicazione Java, possiamo procedere immediatamente a pubblicarla sul cloud di Windows Azure.

All'interno di Eclipse, modifichiamo le proprietà del progetto HelloAzureCloudProject facendo clic con il tasto destro sul nome del progetto nel Project Explorer e scegliendo "Properties". Andiamo quindi nella scheda "Windows Azure" e modifichiamo il valore della proprietà "Build for" su "Deployment to cloud".

.

Figura 12. (clic per ingrandire)


In questo momento non ci interessa utilizzare il collegamento in Remote Desktop verso la nostra applicazione Web, quindi espandiamo il nodo "Windows Azure" e scegliamo la scheda "Remote Desktop". Dobbiamo quindi disabilitare la checkbox che riporta "Enable all roles to accept Remote Desktop connections with these login credentials".

Possiamo quindi premere OK per salvare le nostre modifiche.

A questo punto, compiliamo la nostra soluzione scegliendo la voce "Build All" dal menu "Project". Nella cartella "deploy" del Windows Azure Project verranno generati due file:

  • WindowsAzurePackage.cspkg è il pacchetto applicativo vero e proprio, che contiene i file di codice della nostra applicazione
  • ServiceConfiguration.cscfg è invece un file XML che specifica tutte le impostazioni di configurazione della Web application

Nota: nella versione più recente degli strumenti di sviluppo di Windows Azure per Java, il pacchetto "WindowsAzurePackage.cspkg" è una cartella, ma possiamo semplicemente comprimere il suo contenuto in un file ZIP e rinominare quest'ultimo in WindowsAzurePackage.cspkg (sostituendo anche l'estensione .zip).

Possiamo procedere quindi alla pubblicazione sul Cloud.

Accediamo al portale di gestione di Windows Azure dal browser all'indirizzo https://windows.azure.com/ e creaiamo un nuovo Hosted Service. I passi da fare sono pochi e semplicissimi:

  • Scegliamo un nome ed un URL per il servizio (la piattaforma controllerà subito per noi se l'URL scelto è disponibile)
  • C'è la possibilità di specificare in quale regione effettuare il deploy scegliendo fra i vari datacenter di Windows Azure nel mondo
  • Specifichiamo che vogliamo effettuare il deploy direttamente sull'ambiente di produzione del nostro servizio e che vogliamo avviarlo immediatamente dopo il completamento del deploy
  • Quindi scegliamo i due file che sono stati generati dallo strumento nella cartella "/deploy"

La finestra dovrebbe riportare quindi delle impostazioni simili a quelle della seguente figura:

Figura 13. (clic per ingrandire)


Premendo il pulsante "OK" riceveremo un warning che ci informa che la nostra applicazione è configurata per eseguire una sola istanza. Proseguiamo tranquillamente.

A questo punto viene avviata la creazione di un nuovo servizio cloud su Windows Azure: questo processo, che dura solo pochi minuti, provvederà a creare alcune nuove macchine virtuali sulla nuvola (tante quante sono le istanze indicate nel file di configurazione), quindi configurerà il load balancer e installerà il runtime di Java e l'application server scelto nelle macchine virtuali create. A questo punto, la nostra applicazione verrà installata ed avviata sulle macchine virtuali, per essere subito pronta ad accettare nuove richieste dal Web.

In pochi minuti, tutto sarà pronto e sarà possibile provare l'applicazione direttamente sul Web, navigando con il browser all'indirizzo scelto per il deployment, che nel mio caso è:

http://hellojavafromazure.cloudapp.net
Figura 14. (clic per ingrandire)


Una volta testata l'applicazione possiamo fermare il servizio e rimuoverlo da Windows Azure semplicemente premendo il pulsante "Elimina" nel portale di gestione.

A questo punto siamo in grado di creare una semplice applicazione di prova, effettuarne il debug nell'emulatore locale e farne il deploy sul Cloud di Windows Azure. Nel prossimo appuntamento cominceremo lo sviluppo di un'applicazione Java reale che faccia uso dello storage in the cloud di Windows Azure per salvare file e dati.

Ti consigliamo anche