Anatomia e sviluppo di una soluzione cloud per Windows Azure

In questo post, che immagino come l’inizio di una serie con lo scopo di aiutare a muovere i primi passi nell’utilizzo di Windows Azure e SQL Azure, vedremo in dettaglio come è fatto un cloud service e cosa è necessario per iniziare a sviluppare. Nei prossimi post approfondiremo la conoscenza delle varie caratteristiche della piattaforma Azure e realizzeremo dei piccoli  progetti che ne illustrano l’utilizzo.

Anatomia di un cloud service di Windows Azure

Un’applicazione progettata per essere eseguita su Windows Azure è composta da un insieme di componenti scalabili (roles) e dai file di configurazione XML che configurano e definiscono il servizio.
Attualmente Windows Azure supporta tre tipologie di roles:

  • Web Role
    Un web role è un role eseguito all’interno di IIS che permette la programmazione di web applications,  dei front-end web based e di servizi SOAP/WCF in modo semplice e immediato. La sua struttura deriva direttamente da quella di una normale web application .NET.
  • Worker Role
    E’ il role utile per la gestione di processi in background, asincroni, con lunghi tempi di esecuzione o con esecuzione intermittente. Può essere anche utilizzato per realizzare servizi applicativi che non richiedono una user interface. I worker role possono essere in ascolto su una coda o ospitare un servizio TCP. A differenza dei web role, i worker role non sono eseguiti nel contesto di IIS ma sono degli eseguibili autonomi.
  • VM Role
    Il VM Role è un tipo speciale di role. Non è un’applicazione da eseguire su una macchina virtuale, ma la macchina virtuale stessa. Permette la massima libertà nel controllo del suo funzionamento ed è una buona soluzione per l’esecuzione su Windows Azure di applicazioni legacy: basta creare un disco immagine VHD di un sistema Windows Server 2008 R2 per il deployment.

Le tre tipologie di role possono essere combinate liberamente all’interno di un cloud service. Ogni istanza dei role (in genere ce ne sono almeno due, per garantire lo SLA) viene eseguita utilizzando una macchina virtuale con potenza di calcolo e spazio di storage locale configurabile tra Extra Small, Small, Medium, Large ed Extra Large. Lo storage locale, utilizzabile per il processamento di file temporanei, è volatile. Per la memorizzazione di dati e files si utilizzano gli storage services o database SQL Azure.
Gli storage services di Windows Azure, che forniscono le funzionalità per la  memorizzazione di dati binari, testi e dati strutturati comprendono:

  • Blob service (dati binari e testi)
  • Queue service (code di messaggi)
  • Table service (storage strutturato non relazionale)
  • Windows Azure drives (volumi NTFS)

SQL Azure Database è la piattaforma database relazionale cloud-based basata sulla tecnologia SQL Server. Usando SQL Azure è possibile utilizzare database relazionali sul cloud con le caratteristiche di alta disponibilità, scalabilità e sicurezza offerte da un data center distribuito.

I role possono inoltre utilizzare le funzionalità esposte dalla Windows Azure AppFabric:

  • AppFabric Service Bus
    Un servizio che esegue il relay bidirezionale sicuro di messaggi tra qualsiasi web service, indipendentemente dalla tipologia di dispositivo, computer o server che lo ospita e dal fatto che si trovi dietro un firewall o che venga utilizzato un NAT.
  • AppFabric Access Control
    E’ un servizio interoperabile che fornisce soluzioni di autenticazione ed autorizzazione federata claim-based per qualunque risorsa, indipendentemente dalla tipologia di dispositivo, computer o server che lo ospita.

Nei prossimi post, dopo aver mosso i primi passi, avremo modo di vedere il funzionamento degli storage service, di SQL Azure e delle funzionalità dell’App Fabric con degli esempi concreti.

I tool di sviluppo

Per iniziare a sviluppare per Windows Azure non è necessario disporre di un account sulla piattaforma di Microsoft. E’ possibile realizzare un progetto e lanciarlo in un ambiente simulato di sviluppo (Development Fabric) che consente la messa a punto della soluzione senza dover incorrere in costi aggiuntivi.
I principali ambienti di sviluppo per Windows Azure, a secondo se si vuole sviluppare utilizzando il framework .NET, Java o PHP, sono Visual Studio ed Eclipse.

Requisiti per lo sviluppo sul framework .NET

Requisiti per lo sviluppo in Java e PHP:

Adesso che abbiamo predisposto la macchina di sviluppo, nel prossimo post realizzeremo il primo progetto.

Questa voce è stata pubblicata in Programmazione, Windows Azure Tutorial e contrassegnata con , , , , , , , , , , , , . Contrassegna il permalink.

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...