IIl necessario per sviluppare su Windows Azure
Per sviluppare applicazioni per Windows Azure abbiamo bisogno di configurare l’ambiente di sviluppo locale. È quindi necessario avere installato sulla propria macchina di sviluppo le seguenti applicazioni e tool:
In particolare, il Windows Azure Software Developer Kit (SDK) è indispensabile per lo sviluppo di soluzioni cloud per Windows Azure. Vengono infatti installati i seguenti tool:
- il Compute Emulator, per la simulazione dell’ambiente di esecuzione delle applicazioni nel cloud;
- lo Storage Emulator, per la simulazione dei servizi di storage.
In questo articolo diamo un primo sguardo all’ambiente di sviluppo e alle procedure necessarie per la sua preparazione.
Il Compute Emulator
Tra i tool di sviluppo installati dall’SDK abbiamo il Compute Emulator. Precedentemente conosciuto come Developer Fabric, il Compute Emulator è un tool che consente di ottenere in locale un ambiente di simulazione dell’infrastruttura di Windows Azure Hosted Services, distribuendo anche i servizi su più istanze applicative e creando di conseguenza veri e propri cluster.
Avere un ambiente di simulazione locale dell’infrastruttura reale significa poter eseguire test, di qualsiasi genere, in maniera immediata. Significa anche poter fare il debug del codice in esecuzione verificando i problemi che realmente si potranno presentare in una soluzione architetturale distribuita come quella fornita dal Cloud Computing.
Il Compute Emulator consente di avere in esecuzione uno o più nodi della nostra applicazione, di controllare lo stato dei singoli nodi, di creare situazioni di crollo dei nodi e conseguentemente di verificare le “reazioni” della nostra applicazione.
Differenze tra il Compute Emulator e il Windows Azure Compute Service
L’ambiente di sviluppo riprodotto dal Compute Emulator non rappresenta la copia esatta dell’ambiente di cloud e non è quindi in grado di supportare tutti gli scenari previsti.
Proviamo di seguito a riassumere alcune delle importanti differenze tra il Compute Emulator e il Windows Azure Compute Service:
- è possibile far eseguire l’attach del debugger al Compute Emulator, cosa impossibile in Windows Azure;
- un’applicazione in esecuzione nell’ambiente del Compute Emulator ha accesso alle risorse locali come il file system. Questa opportunità non è disponibile in Windows Azure, almeno non del tutto, per le caratteristiche insite in un ambiente virtualizzato come il cloud;
- le informazioni di log vengono visualizzate direttamente in una console di output durante l’esecuzione di un web o di un worker role. In Windows Azure, invece, è necessario accedere alle Windows Azure Diagnostics API;
- un’altra differenza sostanziale riguarda i privilegi di esecuzione di un’applicazione. In locale le applicazioni vengono eseguite con l’account amministratore, mentre nel cloud i privilegi assegnati sono meno elevati e simili a quelli di un account standard;
- aumentare o diminuire il numero delle istanze in esecuzione contemporaneamente comporta la ridistribuzione dell’applicazione. In Windows Azure è possibile modificare, invece, il file di configurazione anche durante l’esecuzione;
- il comportamento del load balancing non è completamente simulato; bisogna prestare molta attenzione all’utilizzo del metodo SetBusy e al suo relativo comportamento.
Le differenze sono in alcuni casi sostanziali. Ma è abbastanza chiaro che l’esecuzione di un’infrastruttura che nasce concettualmente per essere distribuita in un ambiente di simulazione locale non può in alcun modo essere realistica al 100%.
L’utilizzo del Compute Emulator, però, è necessario. Senza di esso lo sviluppo per Azure sarebbe oltremodo difficoltoso, pressoché impossibile. La conoscenza di queste differenze aiuta sicuramente a non considerare come attendibili i test locali, ma a valutare attentamente l’applicazione, con i Web Roles e i Worker Roles coinvolti, nella sua fase naturale di Staging.
Preparazione del Compute Emulator
La preparazione dell’ambiente per l’esecuzione del Compute Emulator è abbastanza semplice e non necessita di particolari configurazioni. È sufficiente installare il Windows Azure SDK, installare IIS 7.x e infine abilitare ASP.NET.
|