Umbraco è attualmente uno dei più interessanti progetti di CMS open source in ambito .NET. Nato nel 2000 in Danimarca ha raggiunto la versione 4.7, è rilasciato sotto licenza MIT e si può installare sia in modalità full trust, sia medium trust (buona notizia per chi usa gli shared hosting).
In questo articolo però vedremo come effettuare il setup di questa applicazione su Windows Azure, per iniziare ad esaminare alcuni scenari di utilizzo dell'ambiente Cloud di Microsoft. Lo faremo riprendendo l'esempio presente sul blog di Mario Fontana.
Lo stack su cui gira Umbraco è il classico IIS + MS SQL Server + ASP.NET, anche se nella prossima release 5, tutto il framework sarà riscritto per ASP.NET MVC. Vedremo che in ogni caso il deployment in ambiente Cloud rimane agevole.
Perché utilizzare un CMS su Windows Azure?
Per rispondere a questa domanda basta pensare alla scalabilità necessaria ai sistemi di pubblicazione di contenuti. Ad esempio, se realizziamo un magazine di elettronica di consumo, questo avrà picchi di accesso legati a fattori stagionali oppure a lanci di nuovi prodotti.
In ogni caso la nostra applicazione dovrà avere tutta potenza necessaria a gestire queste evenutalità: in pratica siamo nel caso ideale di applicazione Cloud, che aumenta potenza (e anche costo) solo quando è necessario, evitando tutti i problemi legati al sovradimensionamento dei server.
Ottenere una subscription per i test
Una volta convinti della nostra scelta possiamo cominciare a collezionare gli ingredienti della nostra ricetta: per prima cosa, se non l'abbiamo già, ci serve una subscription, che ci consenta di testare la nostra applicazione su Windows Azure.
Gli utenti registrati a MSDN hanno già a disposizione l'accesso a Azure. Per chi fosse alle prime armi e volesse iniziare, Mario Fontana suggerisce 7 medodi per ottenere una subscription Azure gratuita.
I tool
Mentre aspettiamo che ci venga attivata la subscription controlliamo di avere tutti gli strumenti nella nostra cassetta degli attrezzi. Ci serviranno:
- Visual Studio 2010 e .NET 4.0
- Windows Azure SDK e Visual Studio Tools for Windows Azure 1.4 (o superiore)
- SQL Express 2008 R2 (con SQL Server Management Studio)
- Windows Azure Accelerator for Umbraco
L'acceleratore di Umbraco per Windows Azure
Ottenuta la nostra subscription iniziamo a vedere come cambia la configurazione di Umbraco, quando dal server di prova passiamo all'installazione su Windows Azure.
Tutto ciò che dobbiamo fare è sfruttare "l'acceleratore di Umbraco per il deployment su Windows Azure" (Windows Azure Accelerator for Umbraco).
Come si vede in figura, l'acceleratore serve a mantenere sincronizzate le istanze di Umbraco presenti tra i Servizi Ospitati (Hosted Services) e quella che teniamo in un Blob Storage. Questa sincronizzazione è bidirezionale, il ché significa mantenere lo stato della nostra applicazione coerente su tutte le instanze, in quanto una modifica si riverbera su tutte automaticamente.
In definitiva sarà l'acceleratore a prendersi carico della sincronizzazione di ogni nuovo "Web Site", noi dovremo solo caricarlo nell'Azure Storage. Una volta scaricato ed istallato l'acceleratore dovremo quindi:
- Creare un nuovo Account di Archiviazione (o Storage Account) per Umbraco
- Lanciare lo script di setup
- Effettuare il deployment dell'acceleratore su Azure
- Creare un server SQL Azure
- Configurare Umbraco nello script di setup
Inoltre, sfruttando la struttura Full IIS di Azure (dalla versione 1.3), potremmo anche ospitare più siti Web nello stesso Hosted Service.