Sviluppo e deployment gratuito di un sito web con Windows Azure Web Site

di , in Windows Azure,

Lo sviluppo con il .NET Framework gode di numerosi strumenti, i quali, dopo ormai dodici anni, sono diventati sempre più produttivi e di facile utilizzo. Visual Studio è sicuramente lo strumento principale che, nell'ambito dei siti internet, permette con ASP.NET di realizzare applicazioni performanti e al passo con i tempi. Con Visual Studio 2012 la fase di sviluppo è supportata attraverso IIS Express, che ci permette di avere un vero IIS e di poter testare e debuggare l'applicazione in un'ambiente del tutto simile a quello di produzione. Finito lo sviluppo, però, ogni sviluppatore si scontra con le difficoltà della messa in produzione, che varia in base all'ambiente di hosting. In genere abbiamo a disposizione un FTP con il quale possiamo semplicemente effettuare un deployment manuale, obbligandoci a sapere quali file caricare, rispettando la struttura originale.

A questo si aggiunge anche il deployment del database, che spesso accompagna l'applicazione, e anche in questo caso gli strumenti che ci possono essere dati sono molteplici: un'interfaccia web di amministrazione, accesso diretto con SQL Server Management Studio o addirittura accesso solo dal codice dell'applicazione web. Ad ogni modo il processo di deployment è manuale e per il primo avvio può non essere un grande problema. Le cose si complicano, però, quando dobbiamo effettuare modifiche e mantenimenti dell'applicazione, perché dobbiamo caricare ciò che è cambiato, intervenire sul web.config con le nuove impostazioni e aggiornare il database con il nuovo schema. Nella fase di deployment altre difficoltà possono venire da ambienti non congrui a quelli di sviluppo. Per esempio non disponiamo dell'ultima versione del .NET Framework o con regole di permission inutilmente restrittive. Eventuali modifiche alla configurazioni del sistema non sono probabilmente possibili o vanno richieste al supporto che impiegherà del tempo per soddisfare le nostre esigenze. Infine, il deployment coinvolge anche la scelta dell'hosting giusto, dei costi, della banda internet e dell'affidabilità delle macchine offerte.

Insomma la scelta dell'hosting/housing è sempre difficoltosa perché dobbiamo tenere in considerazione tutte queste variabili e dei problemi che potremmo incontrare. Fortunatamente vengono in aiuto i web site di Windows Azure che, con soluzioni gratuite e a pagamento, permettono di soddisfare ogni esigenza senza compromessi, risolvendo tutti i problemi menzionati in precedenza.

Cosa sono i web site?

I web site sono un servizio della piattaforma Windows Azure pensati per le applicazioni web. Sono spazi ospitati con IIS su macchine Windows Server 2008/2012, le quali lavorano sulla piattaforma di cloud computing di Microsoft: Windows Azure appunto. Questo significa che lo spazio a noi dedicato è virtualizzato e gode delle prestazioni, della scalabilità e dell'affidabilità della piattaforma. Sono molteplici i meccanismi che godiamo in trasparenza per rendere tutto questo realtà:

  • Backup automatici e periodici;
  • Ridondanza dei dati e geo replica automatica;
  • Gestione automatica in caso di guasto sulla macchina virtuale, sul server o sul rack, con fault tollerance automatica;
  • Load balancing delle macchine e scalabilità automatizzata.

Tutto questo è attivabile con pochi click e attraverso una gestione web che ci permette di creare, configurare e mantenere il sito. Oltre ad una serie di aspetti, che vedremo in seguito, che accontentano maggiormente le esigenze di noi programmatori, l'aspetto interessante, che distingue i Windows Azure web site, è sicuramente la scalabilità. Possiamo iniziare con una configurazione gratuita, utile per la fase di staging, ma spesso anche sufficiente per molte tipologie di applicazioni, e, qualora lo necessitiamo, alzare i limiti o riservarci delle macchine apposite. Nella figura seguente possiamo vedere, infatti, che la gestione web ci permette di scegliere la modalità tra free/shared/reserved. Per quest'ultima si aggiunge la possibilità di scegliere la dimensione della macchina, in termini di CPU e RAM.

Normalmente il nostro sito viene ospitato in un ambiente condiviso con altri, con application pool isolati e quindi in tutta sicurezza per quanto riguarda eventuali attacchi interni. La modalità free si distingue da quella shared solo per i limiti di banda, CPU e spazio su disco che ci vengono dati. Nella modalità reserved, invece, una o più macchine virtuali vengono dedicate solo per ospitare il nostro sito internet. Inoltre, con le modalità shared e reserved, possiamo cambiare l'indicatore del numero di istanze, ottenendo una replica automatica del sito su più macchine, le quali risponderanno in load balancing alle richieste degli utenti. Possiamo quindi adattarci alle esigenze e alle de/crescite del nostro sito internet, che spesso sono mal previste ad inizio progetto. Per una corretta previsione dei costi e conoscenza dei limiti, comunque, consigliamo di visionare il calcolatore, dove tutto viene mostrato e suddiviso in base alle nostre esigenze.

Oltre allo spazio web, Windows Azure web site mette a disposizione un database SQL Server o MySQL. Il primo è una versione speciale, di nome SQL Database, ospitata dalla piattaforma di cloud computing, la quale beneficia di clustering per garantire l'affidabilità, del partizionamento e federazione per gestire con efficienza database fino a 150GB. È un servizio che in realtà non è strettamente legato ai web site, ma può essere utilizzato separatamente anche con soluzioni on premise o congiuntamente ad altri servizi di Windows Azure. Il database MySQL, invece, è strettamente legato ai web site al quale possiamo connetterci dall'applicazione web, ma anche esternamente.

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

Commenti

Visualizza/aggiungi commenti

Sviluppo e deployment gratuito di un sito web con Windows Azure Web Site 1010 2
| Condividi su: Twitter, Facebook, LinkedIn, Google+

Per inserire un commento, devi avere un account.

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

Approfondimenti