UNIVERSAL APP IN TUTTE LE SALSE: PHONE, TABLET, PC, XBOX E IOT
Be02 portare la nostra applicazione su azure
1. 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
michele.aponte@dotnetcampania.org
http://dotnetcampania.org/blogs/michele
3. Template designed by
• Perchè Windows Azure?
• Il primo deploy
• Deploy del database
• Storage
• Caching
• Debugging e Troubleshooting
• Monitoraggio
agenda
4. 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
5. 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
6. 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.
8. 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.
10. 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
11. 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.
13. 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.
14. 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.
16. 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
17. 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!
18. 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
19. 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.
20. 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
michele.aponte@dotnetcampania.org
Grazie