Realizzare applicazioni web on the cloud con Microsoft Windows Azure

di Matteo Casati, in Windows Azure,

Nel mondo dell'informatica, da qualche tempo a questa parte, si sente molto parlare di "Cloud Computing": fondamentalmente si tratta di una tecnologia che permette di virtualizzare un'infrastruttura hardware e software, rendendola accessibile da remoto al momento della richiesta così da ottimizzare l'uso delle risorse e garantire il massimo delle prestazioni in termini di capacità di esecuzione e di crescita. A giudicare dall'interesse dimostrato dai grandi player del settore (Microsoft, IBM, Amazon, Google, HP, Intel, ecc.) probabilmente nel breve futuro molte delle applicazioni e dei servizi disponibili attraverso Internet si appoggeranno ad un'infrastruttura "on the cloud".

A partire da febbraio 2010 la soluzione per il Cloud Computing "Windows Azure Platform" di Microsoft diventa una realtà concreta a tutti gli effetti: terminata la fase di prova è infatti disponibile ufficialmente come prodotto commerciale. Windows Azure è una piattaforma completa che fornisce capacità di elaborazione e calcolo, di archiviazione (tabelle, blobs, code asincrone), servizi di gestione ed amministrazione dell'infrastruttura, Load Balancing, DNS, ecc.

Rispetto ad altre soluzioni Windows Azure è particolarmente interessante poiché:

  • nasce dall'esperienza diretta di Microsft nella gestione di grandi progetti e data center (dai vari siti istituzionali e di prodotto ospitati in microsoft.com ai servizi Hotmail, da MSDN ai servizi Live, dal portale MSN al motore decisionale Bing), dove elevate performance e scalabilità sono requisiti fondamentali;
  • è basato sul sistema operativo Windows, tant'è che molti definiscono Azure semplicemente come "Windows in the cloud";
  • tramite l'SDK fornito rende possibile l'emulazione dell'ambiente di produzione direttamente in locale, con notevole risparmio di tempo per lo sviluppo ed il testing delle applicazioni;
  • gli strumenti di integrazione con Visual Studio permettono di lavorare in un ambiente già noto allo sviluppatore riducendo notevolmente la curva di apprendimento;
  • sebbene .NET e Visual Studio siano le scelte più naturali, Windows Azure può essere utilizzato anche con altre tecnologie/linguaggi (PHP, Ruby, Java, Python) e ambienti di sviluppo (ad esempio Eclipse), anche in combinazione fra loro.

Possiamo schematizzare la piattaforma Windows Azure come da diagramma seguente:

Figura 1
Fig. 1 - Rappresentazione schematica della piattaforma Windows Azure

AppFabric è il servizio di gestione dell'intera infrastruttura Windows Azure e si occupa del deploy delle applicazioni caricate, del bilanciamento di carichi e richieste, del coordinamento delle varie istanze e della gestione delle singole macchine virtuali. Oltre alla parte di archiviazione dei dati (Storage) abbiamo una componente applicativa (Compute) in cui è interessante notare la presenza di due tipi distinti di processi:

  • Web Role (evidenziati in figura dal rettangolo verde in quanto oggetto di questo articolo): applicazioni basate su pagine o servizi web, quindi ASP.NET, WCF Services, FastCGI, ecc.;
  • Worker Role: applicazioni eseguite in background; possiamo considerarli la versione Cloud dei servizi Windows e, tipicamente, costituiscono processi asincroni che si basano sulla lettura di informazioni prelevate da code.

Setup: configurare l'ambiente locale per lo sviluppo ed il test

Per creare applicazioni ASP.NET in grado di essere eseguite sulla piattaforma Windows Azure dobbiamo preparare il nostro ambiente di sviluppo locale. Come prima cosa verifichiamo i prerequisiti necessari, ovvero:

  • Sistema operativo: Windows 7, Windows Server 2008, Windows Vista SP1;
  • IIS 7.0;
  • Visual Studio 2010 (attualmente in versione Beta 2) oppure Visual Studio 2008 SP1 (anche nelle versioni Express);
  • SQL Server 2005/2008 Express Edition (o superiore);
  • nel caso di Windows Vista e Visual Studio 2008 potrebbero essere necessario installare alcuni hotfix.

Quindi scarichiamo ed installiamo Windows Azure SDK, ovvero l'emulatore locale per l'ambiente di hosting; questo articolo è basato sulla versione Windows Azure Software Development Kit (November 2009), sebbene attualmente sia disponibile l'aggiornamento February 2010 (le novità introdotte in quest'ultimo update riguardano fondamentalmente la possibilità di determinare la versione del sistema operativo ed il supporto per Windows Azure Drive).

Al termine dell'installazione dell'SDK nel menu di avvio di Windows compare la cartella "Windows Azure SDK v1.0" con i seguenti collegamenti:

Figura 2
Fig. 2 - Collegamenti principali di Windows Azure SDK

Come anticipato in precedenza, in questo articolo andiamo ad utilizzare esclusivamente "Developer Fabric", ovvero l'emulazione della componente di elaborazione (Compute) di Azure; "Development Storage", come suggerisce il nome stesso, emula invece la componente di archiviazione (Storage), ovvero la disponibilità locale di blogs, tables e queues (vedi figura 1).

L'integrazione con l'ambiente di sviluppo è possibile tramite l'installazione di Windows Azure Tools per Visual Studio, ovvero le estensioni per Visual Studio 2008/2010 per la creazione, la configurazione, ed il test di applicazioni e servizi per Azure; in questo articolo ci riferiamo alla versione Windows Azure Tools for Microsoft Visual Studio (November 2009), sebbene attualmente sia disponibile da pochi giorni l'aggiornamento February 2010 (peraltro non compatibile con Visual Studio 2010 Beta 2).

Microsoft mette anche a disposizione un Training Kit, ovvero un'ampia serie di risorse (laboratori guidati, presentazioni, video, demo, ecc. per un totale di oltre 120 MB); attualmente l'ultima versione disponibile è Windows Azure Platform Training Kit - December Update.

6 pagine in totale: 1 2 3 4 5 6
Contenuti dell'articolo

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti