Creazione di una Azure Web App Introduzione O ggi le aziende hanno sempre più la necessità di avere uno strumento per interagire con i propri clienti. La presenza sul web dell’azienda diventa sempre di più una parte critica del business. Per creare una soluzione di questo tipo è necessario collegare i sistemi aziendali già presenti con le web application, in modo da creare un servizio facile da deployare, flessibile, sicuro e altamente scalabile. Il servizio Web App di Azure consiste in una piattaforma completamente gestita che permette di creare, distribuire e scalare a livello enterprise le proprie web app in pochissimo tempo. Tutto ciò può essere fatto concentrandosi solamente sul codice dell’applicazione dal momento che Azure si occupa della parte di gestione e di configurazione dell’ambiente su cui questa girerà. 1 Creazione de una Azure web app 2Configurazione di un server SQL Database 3 Pubblicazione dell’applicazione da Visual Studio 4Configurazione delle scalabilità Funzionalità Per le Web App, Azure mette a disposizione diverse funzionalità: 4. Deployment Slots Permette di selezionare un template per web app in una lista in continuo aggiornamento. Si possono trovare framework preconfigurati con Wordpress, Joomla, Drupal, Umbraco e molti altri. Sono presenti due slot di distribuzione: staging e production. In questo modo, si può verificare il corretto comportamento del codice sviluppato in un ambiente di staging e una volta che si è soddisfatti si può passare reapidamente a un ambiente di produzione mediante un’operazione di swap, senza avere dei periodi di downtime. 2. Auto Scaling 5. Testing in Production Il servizio permette di scalare rapidamente per gestire il carico utente. È possibile configurare la scalabilità manualmente, automaticamente e schedulare questa configurazione su determinati periodi di tempo. Permette di eseguire test di carico della propria soluzione in produzione. 3. Continuous Integration Permette di eseguire uno script o un task in background sulla Virtual Machine su cui gira la web application. Questo task può essere eseguito continuamente o schedulato ed è facilmente scalabile su più VM. 1. Web Apps Gallery Grazie all’integrazione con tool come Visual Studio Online, GitHub o BitBucket si ha la possibilità di configurare il continuous deployment dei propri workflow, mantenendo sempre aggiornata la soluzione all’ultima versione distribuita. 6. Webjobs 1 Creazione de una Azure web app Seguire i seguenti passaggi per creare una nuova Web App su Azure: a. Accedere al portale di gestione con il proprio account b. Sulla barra dei comandi in fondo alla pagina scegliere New, quindi alla voce Compute scegliere Web App e poi Quick Create: - in URL, inserire il nome del website al quale ci si collegherà per utilizzare la web application; - in App Service Plan, selezionare il Service Plan che si desidera utilizzare per la Web App – la prima volta è possibile selezionare solo la voce Create New App Service Plan; - in Subscription, viene selezionata automaticamente la sottoscrizione Azure che si sta utilizzando; - la prima volta che si crea una Web App è presente la voce Region, selezionare l’area desiderata come in figura; - cliccare su Create Web App. Dopo che la Web App è stata creata lo status sarà running e pronta ad essere utilizzata; - cliccare sulla Web App creata per accedervi, e cliccare su Set up deployment from source control per impostare il metodo di dtribuzione della propria applicazione – se si vuole effettuare la pubblicazione direttamente da Visual Studio questa operazione non è necessaria. 2 Configurazione di un server SQL Database Se l’applicazione che vogliamo distribuire attraverso la Web App appena creata deve gestire dei dati è necessario andare a configurare un server SQL Database. SQL Database è la versione as a Service di Microsoft SQL Server offerta da Azure. È provvista di molte delle funzionalità di SQL Server, anche se ancora limitata, ma ha il vantaggio di essere una versione completamente gestita. Per creare il server seguire i seguenti passaggi: - Cliccare sul servizio SQL Database nella lista a sinistra sul portale di gestione, quindi selezionare la tab Server e poi selezionare Create a SQL Database Server; - Inserire le username e password per accedere come amministrato al server che si sta creando; - in Region selezionare il datacenter in cui il server verrà creato; - cliccare su Create; - una volta creato lo status sarà Ready, annotarsi il nome del server, che sarà necessario per inserire la stringa di connessione al server all’interno del file di configurazione dell’applicazione. 3 Pubblicazione dell’applicazione da Visual Studio È possibile pubblicare una propria applicazione già sviluppata all’interno dello spazio web che è stato reso disponibile da Azure con la creazione della Web App, oppure si può creare una nuova applicazione o ancora utilizzare uno dei template che sono messi a disposizione nella Gallery e personalizzarli in un secondo momento. In questa guida vi mostriamo come effettuare la pubblicazione tramite Visual Studio di una applicazione ASP.NET MVC che permette di inserire, visualizzare, editare ed eliminare dati relativi a un utente (per ulteriori informazioni sullo sviluppo dell’applicazione consultare la guida nella documentazione ufficiale). - Aprire la propria soluzione in Visual Studio; - Nel file Web.config è necessario inserire la stringa di connessione al server SQL Database per la gestione dei dati, modificando i placeholder: o nomedelserver = nome del server SQL Database creato precedentemente; o nomedellatabella = tabella che verrà utilizzata per memorizzare i dati; o username e password = che sono stati forniti al momento della creazione del server; <add name="PersonContext" connectionString="Data Source=tcp:[nomedelserver].database.windows.net;Initial Catalog=[nomedellatabella];Persist Security Info=True;User ID=[username];Password=[password]" providerName="System. Data.SqlClient" /> - una volta completato lo sviluppo della soluzione effettuare il build; - fare poi click con il tasto destro sul progetto e selezionare Publish; - selezionando Microsoft Azure Websites verrò richiesto di effettuare il sign in con le credenziali relative alla sottoscrizione Azure nella quale è stata creata la Web App; > 3 Pubblicazione dell’applicazione da Visual Studio - selezionare la Web App su cui si vuole distribuire la propria applicazione, come in figura – le informazioni relative alla connessione al server SQL database sono ottenute automaticamente dalla sottoscrizione Azure selezionata; - cliccare su Publish – sarà aperta una finestra del browser che mostra la home page della Web App. Dal portale di gestione di Azure, nel servizio SQL Database si possono andare a visualizzare le tabelle e i dati del database che l’applicazione ha generato selezionando la voce Manage nella barra delle opzioni in fondo alla pagina. 4 Configurazione delle scalabilità D al portale di gestione di Azure è possibile andare a configurare le impostazioni relative alla scalabilità della Web App che è stata creata. -Selezionare Web App dalla lista dei servizi di Azure e quindi scegliere quella creata al punto 1; -Selezionando la tab Scale è possibile accedere alla pagina di configurazione della scalabilità del servizio. L’app service plan pricing tier indica il livello di servizio della Web App. Per ulteriori informazioni si può consultare l’apposita pagina nella documentazione. La sezione capacity è invece relativa alla configurazione della scalabilità. È possibile scalare manualmente in verticale, ovvero modificare la dimensione della VM su cui gira la Web App. Si può impostare la scalabilità orizzontale della soluzione, sia manuale che automatica, ed è presente anche la possibilità di schedulare su determinati periodi del giorno, del mese e dell’anno. In particolare, si può monitorare l’utilizzo percentuale della CPU delle istanze su cui è in eseguzione la Web App e indicare a Azure di aumentare il numero delle istanze quando questa percentuale supera una determinata soglia. Allo stesso modo, quando l’utilizzo della CPU su una delle istanze che sono state accese scende sotto un certo livello, questa viene spenta. Per Approfondimenti: http://azure.microsoft.com/en-us/documentation/articles/app-service-web-overview/ http://azure.microsoft.com/en-us/pricing/details/websites/ http://www.microsoft.com/italy/azureboxes/index.html Microsoft Virtual Academy dove ci sono tutti i corsi tecnici online localizzati in lingua italiana e relativi allo sviluppo nel cloud: http://www.microsoftvirtualacademy.it/#sviluppo_per_il_cloud © 2015 Microsoft. Tutti i diritti riservati. Questa pubblicazione è puramente informativa. Tutti i marchi e i marchi registrati citati sono di proprietà delle rispettive società. Microsoft -Via Lombardia, 2/A 20068 Peschiera Borromeo (MI).