SlideShare una empresa de Scribd logo
1 de 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
michele.aponte@dotnetcampania.org
http://dotnetcampania.org/blogs/michele
Template designed by
brought to you by
Template designed by
• Perchè Windows Azure?
• Il primo deploy
• Deploy del database
• Storage
• Caching
• Debugging e Troubleshooting
• Monitoraggio
agenda
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
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
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.
demo
Primo deploy su Azure
Web Sites e Azure Sql
Database
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.
demo
Deploy del Database su Sql
Azure con i Visual Studio
Data Tools
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
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.
demo
Uso del Blob Storage per i
file caricati dagli utenti
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.
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.
demo
Uso della cache 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
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! 
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
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.
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

Más contenido relacionado

La actualidad más candente

2015.01.09 - Principi del Cloud Computing e migrazione delle applicazioni mod...
2015.01.09 - Principi del Cloud Computing e migrazione delle applicazioni mod...2015.01.09 - Principi del Cloud Computing e migrazione delle applicazioni mod...
2015.01.09 - Principi del Cloud Computing e migrazione delle applicazioni mod...Marco Parenzan
 
SQL Azure - The Basics
SQL Azure - The BasicsSQL Azure - The Basics
SQL Azure - The BasicsDavide Mauri
 
Cloud Computing reale: Live Demo, dimostrazione pratica delle possibilità di ...
Cloud Computing reale: Live Demo, dimostrazione pratica delle possibilità di ...Cloud Computing reale: Live Demo, dimostrazione pratica delle possibilità di ...
Cloud Computing reale: Live Demo, dimostrazione pratica delle possibilità di ...festival ICT 2016
 
Azure PaaS databases
Azure PaaS databasesAzure PaaS databases
Azure PaaS databasesGianluca Hotz
 
Come utilizzare AWS Database Migration Service per migrare SQL Server ad Amaz...
Come utilizzare AWS Database Migration Service per migrare SQL Server ad Amaz...Come utilizzare AWS Database Migration Service per migrare SQL Server ad Amaz...
Come utilizzare AWS Database Migration Service per migrare SQL Server ad Amaz...Gianluca Hotz
 
Azure PaaS databases
Azure PaaS databasesAzure PaaS databases
Azure PaaS databasesGianluca Hotz
 

La actualidad más candente (7)

2015.01.09 - Principi del Cloud Computing e migrazione delle applicazioni mod...
2015.01.09 - Principi del Cloud Computing e migrazione delle applicazioni mod...2015.01.09 - Principi del Cloud Computing e migrazione delle applicazioni mod...
2015.01.09 - Principi del Cloud Computing e migrazione delle applicazioni mod...
 
Azure sql database
Azure sql databaseAzure sql database
Azure sql database
 
SQL Azure - The Basics
SQL Azure - The BasicsSQL Azure - The Basics
SQL Azure - The Basics
 
Cloud Computing reale: Live Demo, dimostrazione pratica delle possibilità di ...
Cloud Computing reale: Live Demo, dimostrazione pratica delle possibilità di ...Cloud Computing reale: Live Demo, dimostrazione pratica delle possibilità di ...
Cloud Computing reale: Live Demo, dimostrazione pratica delle possibilità di ...
 
Azure PaaS databases
Azure PaaS databasesAzure PaaS databases
Azure PaaS databases
 
Come utilizzare AWS Database Migration Service per migrare SQL Server ad Amaz...
Come utilizzare AWS Database Migration Service per migrare SQL Server ad Amaz...Come utilizzare AWS Database Migration Service per migrare SQL Server ad Amaz...
Come utilizzare AWS Database Migration Service per migrare SQL Server ad Amaz...
 
Azure PaaS databases
Azure PaaS databasesAzure PaaS databases
Azure PaaS databases
 

Destacado

Тематические уроки
Тематические урокиТематические уроки
Тематические урокиruster_c
 
Исполнение бюджета Почтовского сельского поселения за 2013 год
Исполнение бюджета Почтовского сельского поселения за 2013 годИсполнение бюджета Почтовского сельского поселения за 2013 год
Исполнение бюджета Почтовского сельского поселения за 2013 годАлексей Арешев
 
El otoño
El otoñoEl otoño
El otoñoAjimvi
 
3 3雲兒的旅行
3 3雲兒的旅行3 3雲兒的旅行
3 3雲兒的旅行anniet_1214
 
capacitacion de trabajo p.t.m.
capacitacion de trabajo p.t.m.capacitacion de trabajo p.t.m.
capacitacion de trabajo p.t.m.Christian2782
 
3 5彩虹變變變
3 5彩虹變變變3 5彩虹變變變
3 5彩虹變變變anniet_1214
 
1 5公主歷險記
1 5公主歷險記1 5公主歷險記
1 5公主歷險記anniet_1214
 
Presentación trabajo tics
Presentación trabajo ticsPresentación trabajo tics
Presentación trabajo ticsalonsocr23
 
Pruebas y evidencias de la evolución biológicas
Pruebas y evidencias de la evolución biológicasPruebas y evidencias de la evolución biológicas
Pruebas y evidencias de la evolución biológicasLuis Angel
 
Email signature in Gmail,outlook
Email signature in Gmail,outlookEmail signature in Gmail,outlook
Email signature in Gmail,outlookEra Wibowo
 

Destacado (20)

Тематические уроки
Тематические урокиТематические уроки
Тематические уроки
 
Исполнение бюджета Почтовского сельского поселения за 2013 год
Исполнение бюджета Почтовского сельского поселения за 2013 годИсполнение бюджета Почтовского сельского поселения за 2013 год
Исполнение бюджета Почтовского сельского поселения за 2013 год
 
El otoño
El otoñoEl otoño
El otoño
 
Bode
BodeBode
Bode
 
Grupo 5
Grupo 5Grupo 5
Grupo 5
 
3 3雲兒的旅行
3 3雲兒的旅行3 3雲兒的旅行
3 3雲兒的旅行
 
Huelga03
Huelga03Huelga03
Huelga03
 
3 2繪聲繪影
3 2繪聲繪影3 2繪聲繪影
3 2繪聲繪影
 
capacitacion de trabajo p.t.m.
capacitacion de trabajo p.t.m.capacitacion de trabajo p.t.m.
capacitacion de trabajo p.t.m.
 
El bullyng
El bullyngEl bullyng
El bullyng
 
3 5彩虹變變變
3 5彩虹變變變3 5彩虹變變變
3 5彩虹變變變
 
Los chats
Los chats Los chats
Los chats
 
1 5公主歷險記
1 5公主歷險記1 5公主歷險記
1 5公主歷險記
 
Presentación trabajo tics
Presentación trabajo ticsPresentación trabajo tics
Presentación trabajo tics
 
Inf pps
Inf ppsInf pps
Inf pps
 
Oper equipo computo (1)
Oper equipo computo (1)Oper equipo computo (1)
Oper equipo computo (1)
 
Pruebas y evidencias de la evolución biológicas
Pruebas y evidencias de la evolución biológicasPruebas y evidencias de la evolución biológicas
Pruebas y evidencias de la evolución biológicas
 
คู่มือการใช้ IOS 7 : Iphone user guide
คู่มือการใช้ IOS 7 : Iphone user guideคู่มือการใช้ IOS 7 : Iphone user guide
คู่มือการใช้ IOS 7 : Iphone user guide
 
Email signature in Gmail,outlook
Email signature in Gmail,outlookEmail signature in Gmail,outlook
Email signature in Gmail,outlook
 
1 2長大後
1 2長大後1 2長大後
1 2長大後
 

Similar a Be02 portare la nostra applicazione su azure

Windows azure - abbattere tempi e costi di sviluppo
Windows azure - abbattere tempi e costi di sviluppoWindows azure - abbattere tempi e costi di sviluppo
Windows azure - abbattere tempi e costi di sviluppoAndrea Dottor
 
Azure dayroma java, il lato oscuro del cloud
Azure dayroma   java, il lato oscuro del cloudAzure dayroma   java, il lato oscuro del cloud
Azure dayroma java, il lato oscuro del cloudRiccardo Zamana
 
Viaggio attraverso il cloud - Consigli e best practices per iniziare con il c...
Viaggio attraverso il cloud - Consigli e best practices per iniziare con il c...Viaggio attraverso il cloud - Consigli e best practices per iniziare con il c...
Viaggio attraverso il cloud - Consigli e best practices per iniziare con il c...Amazon Web Services
 
Cert03 70-486 developing asp.net mvc 4 web applications
Cert03   70-486 developing asp.net mvc 4 web applicationsCert03   70-486 developing asp.net mvc 4 web applications
Cert03 70-486 developing asp.net mvc 4 web applicationsDotNetCampus
 
2011.06.30 scenari applicativi per il cloud computing
2011.06.30   scenari applicativi per il cloud computing2011.06.30   scenari applicativi per il cloud computing
2011.06.30 scenari applicativi per il cloud computingMarco Parenzan
 
Blazor: are we ready for the launch?
Blazor: are we ready for the launch?Blazor: are we ready for the launch?
Blazor: are we ready for the launch?Andrea Agnoletto
 
Digital 1nn0vation saturday pn 2019 - Azure Machine Learning Service
Digital 1nn0vation saturday pn 2019 - Azure Machine Learning ServiceDigital 1nn0vation saturday pn 2019 - Azure Machine Learning Service
Digital 1nn0vation saturday pn 2019 - Azure Machine Learning ServiceMarco Zamana
 
Multi Cloud essentials
Multi Cloud essentialsMulti Cloud essentials
Multi Cloud essentialsantimo musone
 
Database project alla riscossa
Database project alla riscossaDatabase project alla riscossa
Database project alla riscossaGian Maria Ricci
 
Sviluppare Azure Web Apps
Sviluppare Azure Web AppsSviluppare Azure Web Apps
Sviluppare Azure Web AppsAndrea Dottor
 
Fe02 ria con breeze e knockout
Fe02   ria con breeze e knockoutFe02   ria con breeze e knockout
Fe02 ria con breeze e knockoutDotNetCampus
 
PHP Serverless in ambiente AWS
PHP Serverless in ambiente AWSPHP Serverless in ambiente AWS
PHP Serverless in ambiente AWSGianfranco Castro
 
Blazor ha vinto? Storie di casi reali
Blazor ha vinto? Storie di casi realiBlazor ha vinto? Storie di casi reali
Blazor ha vinto? Storie di casi realiAndrea Dottor
 
Alessandro Forte - ASP.Net 4.0
Alessandro Forte - ASP.Net 4.0Alessandro Forte - ASP.Net 4.0
Alessandro Forte - ASP.Net 4.0Alessandro Forte
 
Il Cloud Computing
Il Cloud ComputingIl Cloud Computing
Il Cloud Computingzambe92
 
Cosa c'è di nuovo in asp.net core 2 0
Cosa c'è di nuovo in asp.net core 2 0Cosa c'è di nuovo in asp.net core 2 0
Cosa c'è di nuovo in asp.net core 2 0Andrea Dottor
 
Power BI: Introduzione ai dataflow e alla preparazione dei dati self-service
Power BI: Introduzione ai dataflow e alla preparazione dei dati self-servicePower BI: Introduzione ai dataflow e alla preparazione dei dati self-service
Power BI: Introduzione ai dataflow e alla preparazione dei dati self-serviceMarco Pozzan
 
Slides webinar Abstract "Pregi e difetti dei principali CMS Open Source"
Slides webinar Abstract "Pregi e difetti dei principali CMS Open Source" Slides webinar Abstract "Pregi e difetti dei principali CMS Open Source"
Slides webinar Abstract "Pregi e difetti dei principali CMS Open Source" Abstract Technology Agency
 
2014.11.14 Implementare e mantenere un progetto Azure SQL Database
2014.11.14 Implementare e mantenere un progetto Azure SQL Database2014.11.14 Implementare e mantenere un progetto Azure SQL Database
2014.11.14 Implementare e mantenere un progetto Azure SQL DatabaseEmanuele Zanchettin
 

Similar a Be02 portare la nostra applicazione su azure (20)

Windows azure - abbattere tempi e costi di sviluppo
Windows azure - abbattere tempi e costi di sviluppoWindows azure - abbattere tempi e costi di sviluppo
Windows azure - abbattere tempi e costi di sviluppo
 
Azure dayroma java, il lato oscuro del cloud
Azure dayroma   java, il lato oscuro del cloudAzure dayroma   java, il lato oscuro del cloud
Azure dayroma java, il lato oscuro del cloud
 
Viaggio attraverso il cloud - Consigli e best practices per iniziare con il c...
Viaggio attraverso il cloud - Consigli e best practices per iniziare con il c...Viaggio attraverso il cloud - Consigli e best practices per iniziare con il c...
Viaggio attraverso il cloud - Consigli e best practices per iniziare con il c...
 
Cert03 70-486 developing asp.net mvc 4 web applications
Cert03   70-486 developing asp.net mvc 4 web applicationsCert03   70-486 developing asp.net mvc 4 web applications
Cert03 70-486 developing asp.net mvc 4 web applications
 
2011.06.30 scenari applicativi per il cloud computing
2011.06.30   scenari applicativi per il cloud computing2011.06.30   scenari applicativi per il cloud computing
2011.06.30 scenari applicativi per il cloud computing
 
Microsoft Azure
Microsoft AzureMicrosoft Azure
Microsoft Azure
 
Blazor: are we ready for the launch?
Blazor: are we ready for the launch?Blazor: are we ready for the launch?
Blazor: are we ready for the launch?
 
Digital 1nn0vation saturday pn 2019 - Azure Machine Learning Service
Digital 1nn0vation saturday pn 2019 - Azure Machine Learning ServiceDigital 1nn0vation saturday pn 2019 - Azure Machine Learning Service
Digital 1nn0vation saturday pn 2019 - Azure Machine Learning Service
 
Multi Cloud essentials
Multi Cloud essentialsMulti Cloud essentials
Multi Cloud essentials
 
Database project alla riscossa
Database project alla riscossaDatabase project alla riscossa
Database project alla riscossa
 
Sviluppare Azure Web Apps
Sviluppare Azure Web AppsSviluppare Azure Web Apps
Sviluppare Azure Web Apps
 
Fe02 ria con breeze e knockout
Fe02   ria con breeze e knockoutFe02   ria con breeze e knockout
Fe02 ria con breeze e knockout
 
PHP Serverless in ambiente AWS
PHP Serverless in ambiente AWSPHP Serverless in ambiente AWS
PHP Serverless in ambiente AWS
 
Blazor ha vinto? Storie di casi reali
Blazor ha vinto? Storie di casi realiBlazor ha vinto? Storie di casi reali
Blazor ha vinto? Storie di casi reali
 
Alessandro Forte - ASP.Net 4.0
Alessandro Forte - ASP.Net 4.0Alessandro Forte - ASP.Net 4.0
Alessandro Forte - ASP.Net 4.0
 
Il Cloud Computing
Il Cloud ComputingIl Cloud Computing
Il Cloud Computing
 
Cosa c'è di nuovo in asp.net core 2 0
Cosa c'è di nuovo in asp.net core 2 0Cosa c'è di nuovo in asp.net core 2 0
Cosa c'è di nuovo in asp.net core 2 0
 
Power BI: Introduzione ai dataflow e alla preparazione dei dati self-service
Power BI: Introduzione ai dataflow e alla preparazione dei dati self-servicePower BI: Introduzione ai dataflow e alla preparazione dei dati self-service
Power BI: Introduzione ai dataflow e alla preparazione dei dati self-service
 
Slides webinar Abstract "Pregi e difetti dei principali CMS Open Source"
Slides webinar Abstract "Pregi e difetti dei principali CMS Open Source" Slides webinar Abstract "Pregi e difetti dei principali CMS Open Source"
Slides webinar Abstract "Pregi e difetti dei principali CMS Open Source"
 
2014.11.14 Implementare e mantenere un progetto Azure SQL Database
2014.11.14 Implementare e mantenere un progetto Azure SQL Database2014.11.14 Implementare e mantenere un progetto Azure SQL Database
2014.11.14 Implementare e mantenere un progetto Azure SQL Database
 

Más de DotNetCampus

ARCHITETTURA DI UN'APPLICAZIONE SCALABILE
ARCHITETTURA DI UN'APPLICAZIONE SCALABILEARCHITETTURA DI UN'APPLICAZIONE SCALABILE
ARCHITETTURA DI UN'APPLICAZIONE SCALABILEDotNetCampus
 
MICROSOFT E IL MONDO IOT
MICROSOFT E IL MONDO IOTMICROSOFT E IL MONDO IOT
MICROSOFT E IL MONDO IOTDotNetCampus
 
70-485: ADVANCED OF DEVELOPING WINDOWS STORE APPS USING C#
70-485: ADVANCED OF DEVELOPING WINDOWS STORE APPS USING C#70-485: ADVANCED OF DEVELOPING WINDOWS STORE APPS USING C#
70-485: ADVANCED OF DEVELOPING WINDOWS STORE APPS USING C#DotNetCampus
 
70-534: ARCHITECTING MICROSOFT AZURE SOLUTIONS
70-534: ARCHITECTING MICROSOFT AZURE SOLUTIONS70-534: ARCHITECTING MICROSOFT AZURE SOLUTIONS
70-534: ARCHITECTING MICROSOFT AZURE SOLUTIONSDotNetCampus
 
70-483: PROGRAMMING IN C#
70-483: PROGRAMMING IN C#70-483: PROGRAMMING IN C#
70-483: PROGRAMMING IN C#DotNetCampus
 
DSTORIE DALLA TRINCEA: TEAM FOUNDATION SERVER IN CASI LIMITE E NON SOLO...
DSTORIE DALLA TRINCEA: TEAM FOUNDATION SERVER IN CASI LIMITE E NON SOLO...DSTORIE DALLA TRINCEA: TEAM FOUNDATION SERVER IN CASI LIMITE E NON SOLO...
DSTORIE DALLA TRINCEA: TEAM FOUNDATION SERVER IN CASI LIMITE E NON SOLO...DotNetCampus
 
TUTTO SU VISUAL STUDIO ALM 2015
TUTTO SU VISUAL STUDIO ALM 2015TUTTO SU VISUAL STUDIO ALM 2015
TUTTO SU VISUAL STUDIO ALM 2015DotNetCampus
 
CONTINUOUS INTEGRATION CON SQL SERVER
CONTINUOUS INTEGRATION CON SQL SERVERCONTINUOUS INTEGRATION CON SQL SERVER
CONTINUOUS INTEGRATION CON SQL SERVERDotNetCampus
 
PREDICT THE FUTURE , MACHINE LEARNING & BIG DATA
PREDICT THE FUTURE , MACHINE LEARNING & BIG DATAPREDICT THE FUTURE , MACHINE LEARNING & BIG DATA
PREDICT THE FUTURE , MACHINE LEARNING & BIG DATADotNetCampus
 
DESKTOP AND CLIENT VIRTUALIZATION: NEW WORKSTYLES WITH MICROSOFT VDI
DESKTOP AND CLIENT VIRTUALIZATION: NEW WORKSTYLES WITH MICROSOFT VDIDESKTOP AND CLIENT VIRTUALIZATION: NEW WORKSTYLES WITH MICROSOFT VDI
DESKTOP AND CLIENT VIRTUALIZATION: NEW WORKSTYLES WITH MICROSOFT VDIDotNetCampus
 
FROM ON-PREMISE TO THE HYBRID CLOUD WITH MICROSOFT AZURE
FROM ON-PREMISE TO THE HYBRID CLOUD WITH MICROSOFT AZUREFROM ON-PREMISE TO THE HYBRID CLOUD WITH MICROSOFT AZURE
FROM ON-PREMISE TO THE HYBRID CLOUD WITH MICROSOFT AZUREDotNetCampus
 
SHAREPOINT 2016 - WHAT'S NEW
SHAREPOINT 2016 - WHAT'S NEWSHAREPOINT 2016 - WHAT'S NEW
SHAREPOINT 2016 - WHAT'S NEWDotNetCampus
 
COSTRUISCI IL TUO DEVICE
COSTRUISCI IL TUO DEVICECOSTRUISCI IL TUO DEVICE
COSTRUISCI IL TUO DEVICEDotNetCampus
 
SVILUPPARE PER MICROSOFT BAND
SVILUPPARE PER MICROSOFT BANDSVILUPPARE PER MICROSOFT BAND
SVILUPPARE PER MICROSOFT BANDDotNetCampus
 
INTERFACCE GRAFICHE CON UNITY3D 4.6: IL GIOCO NON BASTA!
INTERFACCE GRAFICHE CON UNITY3D 4.6: IL GIOCO NON BASTA!INTERFACCE GRAFICHE CON UNITY3D 4.6: IL GIOCO NON BASTA!
INTERFACCE GRAFICHE CON UNITY3D 4.6: IL GIOCO NON BASTA!DotNetCampus
 
WINDOWS PHONE APPS IN C++
WINDOWS PHONE APPS IN C++WINDOWS PHONE APPS IN C++
WINDOWS PHONE APPS IN C++DotNetCampus
 
AZURE NOTIFICATION HUB
AZURE NOTIFICATION HUBAZURE NOTIFICATION HUB
AZURE NOTIFICATION HUBDotNetCampus
 
SFRUTTARE I MICROSOFT AZURE MOBILE SERVICES CON XAMARIN.FORMS
SFRUTTARE I MICROSOFT AZURE MOBILE SERVICES CON XAMARIN.FORMSSFRUTTARE I MICROSOFT AZURE MOBILE SERVICES CON XAMARIN.FORMS
SFRUTTARE I MICROSOFT AZURE MOBILE SERVICES CON XAMARIN.FORMSDotNetCampus
 
UNIVERSAL APP IN TUTTE LE SALSE: PHONE, TABLET, PC, XBOX E IOT
UNIVERSAL APP IN TUTTE LE SALSE: PHONE, TABLET, PC, XBOX E IOTUNIVERSAL APP IN TUTTE LE SALSE: PHONE, TABLET, PC, XBOX E IOT
UNIVERSAL APP IN TUTTE LE SALSE: PHONE, TABLET, PC, XBOX E IOTDotNetCampus
 

Más de DotNetCampus (20)

ARCHITETTURA DI UN'APPLICAZIONE SCALABILE
ARCHITETTURA DI UN'APPLICAZIONE SCALABILEARCHITETTURA DI UN'APPLICAZIONE SCALABILE
ARCHITETTURA DI UN'APPLICAZIONE SCALABILE
 
MICROSOFT E IL MONDO IOT
MICROSOFT E IL MONDO IOTMICROSOFT E IL MONDO IOT
MICROSOFT E IL MONDO IOT
 
70-485: ADVANCED OF DEVELOPING WINDOWS STORE APPS USING C#
70-485: ADVANCED OF DEVELOPING WINDOWS STORE APPS USING C#70-485: ADVANCED OF DEVELOPING WINDOWS STORE APPS USING C#
70-485: ADVANCED OF DEVELOPING WINDOWS STORE APPS USING C#
 
70-534: ARCHITECTING MICROSOFT AZURE SOLUTIONS
70-534: ARCHITECTING MICROSOFT AZURE SOLUTIONS70-534: ARCHITECTING MICROSOFT AZURE SOLUTIONS
70-534: ARCHITECTING MICROSOFT AZURE SOLUTIONS
 
70-483: PROGRAMMING IN C#
70-483: PROGRAMMING IN C#70-483: PROGRAMMING IN C#
70-483: PROGRAMMING IN C#
 
DSTORIE DALLA TRINCEA: TEAM FOUNDATION SERVER IN CASI LIMITE E NON SOLO...
DSTORIE DALLA TRINCEA: TEAM FOUNDATION SERVER IN CASI LIMITE E NON SOLO...DSTORIE DALLA TRINCEA: TEAM FOUNDATION SERVER IN CASI LIMITE E NON SOLO...
DSTORIE DALLA TRINCEA: TEAM FOUNDATION SERVER IN CASI LIMITE E NON SOLO...
 
TUTTO SU VISUAL STUDIO ALM 2015
TUTTO SU VISUAL STUDIO ALM 2015TUTTO SU VISUAL STUDIO ALM 2015
TUTTO SU VISUAL STUDIO ALM 2015
 
CONTINUOUS INTEGRATION CON SQL SERVER
CONTINUOUS INTEGRATION CON SQL SERVERCONTINUOUS INTEGRATION CON SQL SERVER
CONTINUOUS INTEGRATION CON SQL SERVER
 
PREDICT THE FUTURE , MACHINE LEARNING & BIG DATA
PREDICT THE FUTURE , MACHINE LEARNING & BIG DATAPREDICT THE FUTURE , MACHINE LEARNING & BIG DATA
PREDICT THE FUTURE , MACHINE LEARNING & BIG DATA
 
DESKTOP AND CLIENT VIRTUALIZATION: NEW WORKSTYLES WITH MICROSOFT VDI
DESKTOP AND CLIENT VIRTUALIZATION: NEW WORKSTYLES WITH MICROSOFT VDIDESKTOP AND CLIENT VIRTUALIZATION: NEW WORKSTYLES WITH MICROSOFT VDI
DESKTOP AND CLIENT VIRTUALIZATION: NEW WORKSTYLES WITH MICROSOFT VDI
 
FROM ON-PREMISE TO THE HYBRID CLOUD WITH MICROSOFT AZURE
FROM ON-PREMISE TO THE HYBRID CLOUD WITH MICROSOFT AZUREFROM ON-PREMISE TO THE HYBRID CLOUD WITH MICROSOFT AZURE
FROM ON-PREMISE TO THE HYBRID CLOUD WITH MICROSOFT AZURE
 
SHAREPOINT 2016 - WHAT'S NEW
SHAREPOINT 2016 - WHAT'S NEWSHAREPOINT 2016 - WHAT'S NEW
SHAREPOINT 2016 - WHAT'S NEW
 
COSTRUISCI IL TUO DEVICE
COSTRUISCI IL TUO DEVICECOSTRUISCI IL TUO DEVICE
COSTRUISCI IL TUO DEVICE
 
SVILUPPARE PER MICROSOFT BAND
SVILUPPARE PER MICROSOFT BANDSVILUPPARE PER MICROSOFT BAND
SVILUPPARE PER MICROSOFT BAND
 
INTERFACCE GRAFICHE CON UNITY3D 4.6: IL GIOCO NON BASTA!
INTERFACCE GRAFICHE CON UNITY3D 4.6: IL GIOCO NON BASTA!INTERFACCE GRAFICHE CON UNITY3D 4.6: IL GIOCO NON BASTA!
INTERFACCE GRAFICHE CON UNITY3D 4.6: IL GIOCO NON BASTA!
 
WINDOWS PHONE APPS IN C++
WINDOWS PHONE APPS IN C++WINDOWS PHONE APPS IN C++
WINDOWS PHONE APPS IN C++
 
AZURE NOTIFICATION HUB
AZURE NOTIFICATION HUBAZURE NOTIFICATION HUB
AZURE NOTIFICATION HUB
 
SFRUTTARE I MICROSOFT AZURE MOBILE SERVICES CON XAMARIN.FORMS
SFRUTTARE I MICROSOFT AZURE MOBILE SERVICES CON XAMARIN.FORMSSFRUTTARE I MICROSOFT AZURE MOBILE SERVICES CON XAMARIN.FORMS
SFRUTTARE I MICROSOFT AZURE MOBILE SERVICES CON XAMARIN.FORMS
 
INTRO TO XAMARIN
INTRO TO XAMARININTRO TO XAMARIN
INTRO TO XAMARIN
 
UNIVERSAL APP IN TUTTE LE SALSE: PHONE, TABLET, PC, XBOX E IOT
UNIVERSAL APP IN TUTTE LE SALSE: PHONE, TABLET, PC, XBOX E IOTUNIVERSAL APP IN TUTTE LE SALSE: PHONE, TABLET, PC, XBOX E IOT
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.
  • 7. demo Primo deploy su Azure Web Sites e Azure Sql 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.
  • 9. demo Deploy del Database su Sql Azure con i Visual Studio Data Tools
  • 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.
  • 12. demo Uso del Blob Storage per i file caricati dagli utenti
  • 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