20
Template designed by Portare la nostra applicazione web su Azure Template designed by Michele Aponte Presidente DotNetCampania - MVP ASP.NET/IIS CEO & Co-Founder Blexin Srls [email protected] http://dotnetcampania.org/blogs/michele

Be02 portare la nostra applicazione su azure

Embed Size (px)

Citation preview

Page 1: Be02   portare la nostra applicazione su azure

Template designed by

Portare la nostra applicazione web su Azure

Template designed by

Michele ApontePresidente DotNetCampania - MVP ASP.NET/IISCEO & Co-Founder Blexin [email protected]://dotnetcampania.org/blogs/michele

Page 2: Be02   portare la nostra applicazione su azure

Template designed by

brought to you by

Page 3: Be02   portare la nostra applicazione su azure

Template designed by

• Perchè Windows Azure?

• Il primo deploy

• Deploy del database

• Storage

• Caching

• Debugging e Troubleshooting

• Monitoraggio

agenda

Page 4: Be02   portare la nostra applicazione su azure

Template designed by

Perchè Windows Azure?

- Scalabilità

- Gestione dei picchi di carico dell’applicazione

- Costo a consumo

- Estrema semplicità di gestione dell’infrastruttura (anche per un DEV )

- Table e Queue storage

Page 5: Be02   portare la nostra applicazione su azure

Template designed by

Quanto codice dovrò modificare?

Dipende da come ho scritto l’applicazione, ovviamente:

-Principio di singola responsabilità

-Uso di design patterns

-Basso accoppiamento dei layer

-Parametrizzazione della configurazione

Page 6: Be02   portare la nostra applicazione su azure

Template designed by

Azure for Dummies:Azure Web Sites + Azure Sql Database

Nella maggior parte dei casi l’approccio più veloce è quello di usare Azure come hosting di spazio web e database.

Page 7: Be02   portare la nostra applicazione su azure

dem

o Primo deploy su Azure

Web Sites e Azure Sql

Database

Page 8: Be02   portare la nostra applicazione su azure

Template designed by

Azure Sql Database senza Entity Framework

Chiaramente il primo deploy è stato facilitato dall’uso di EF Code First, ma se avessimo avuto un classico DAL che «spara» query sul db?Possiamo utilizzare i Data Tools di Visual Studio, che ci permettono di gestire facilmente il deploy su Azure del nostro DB.

Page 9: Be02   portare la nostra applicazione su azure

dem

o Deploy del Database

su Sql Azure con i

Visual Studio Data

Tools

Page 10: Be02   portare la nostra applicazione su azure

Template designed by

Dove salviamo i dati dell’applicazione?

Per dare la possibilità alla piattaforma di far scalare la nostra applicazione tutte le risorse dovrebbero essere esterne al nostro Web Site.

Azure mette a disposizione diversi tipi di Storage, da scegliere in base alle esigenze di persistenza:

• Blob, tipicamente usati per i file dell’applicazione

• Table, tipicamente usate per le entità dell’applicazione

• Queue, tipicamente usate per l’elaborazione business «asincrona» di messaggi

Page 11: Be02   portare la nostra applicazione su azure

Template designed by

Blob Storage come File System

Per il salvataggio di file, ad esempio quelli caricati dall’utente, possiamo utilizzare un storage di tipo Blob: basta crearne uno, pubblico o privato, dal pannello di Azure e scrivere poche righe di codice.

Page 12: Be02   portare la nostra applicazione su azure

dem

o Uso del Blob Storage

per i file caricati dagli

utenti

Page 13: Be02   portare la nostra applicazione su azure

Template designed by

Migliorare le performance con il Caching

Ovviamente l’accesso ai dati ha un impatto sulle prestazioni non trascurabile e in un ambiente che deve scalare il caching distribuito gioca un ruolo fondamentale.

Azure mette a disposizione un servizio apposito per queste necessità, denominato Azure Cache Service: una in-memory cache distribuita facilmente scalabile e configurabile.

Page 14: Be02   portare la nostra applicazione su azure

Template designed by

Migliorare le performance con il Caching

La cache di Azure può essere usata facilmente anche per l’output cache di Asp.Net e come storage della sessione utente (più performate del database)

La gestione della sessione è un nodo cruciale nelle applicazioni che devono scalare, sia in termini di performance che di gestione: se potete rendete le vostre applicazioni stateless, ELIMINANDO l’uso della sessione.

Page 15: Be02   portare la nostra applicazione su azure

dem

o Uso della cache su

Azure

Page 16: Be02   portare la nostra applicazione su azure

Template designed by

Table Storage per le entità del dominio

Se i dati gestiti dalla nostra applicazione non traggono particolari vantaggi dal modello relazionale l’uso di uno storage come le Table di Azure ci può dare non pochi vantaggi in termini di velocità e scalabilità:

-Sql Azure ha il «limite» delle 1000 connessioni contemporanee

-Il modello relazione persiste le informazioni in una forma che è poco «vicina» all’uso che si fa di esse

-Saltare l’ORM di turno è sicuramente un vantaggio di termini prestazionali

Page 17: Be02   portare la nostra applicazione su azure

Template designed by

Table Storage per le entità del dominio

Usare le Table di Azure è abbastanza semplice:

-Creare dal pannello uno storage account

-Reimplementare lo strato di accesso ai dati

-Ritestare l’applicazione!

Page 18: Be02   portare la nostra applicazione su azure

Template designed by

Debugging & Troubleshooting

Che succede se ci sono anomalie sull’applicazione deployata che non si verificano in locale?

Anche in questo caso abbiamo un po’ di strumenti a disposizione:

-Web Server Logging

-Detailed Error Messages

-Failed Request Tracing

Page 19: Be02   portare la nostra applicazione su azure

Template designed by

Monitoraggio

Ovviamente prima di rilassarsi completamente è opportuna una fase di monitoraggio dell’applicazione che ci permetta di ottimizzare la configurazione e la scalabilità.Il pannello di amministrazione di Azure offre molti strumenti di monitoraggio, nonchè alcune funzionalità come l’autoscale e gli alerts.

Page 20: Be02   portare la nostra applicazione su azure

Template designed by

Grazie a tutti per la partecipazione

Riceverete il link per il download a slide e demo via email nei prossimi giorni

Per contattarmi

[email protected]

Grazie