O slideshow foi denunciado.

Deploy & Run on Azure App Service

1

Compartilhar

Próximos SlideShares
Azure DocumentDb
Azure DocumentDb
Carregando em…3
×
1 de 40
1 de 40

Deploy & Run on Azure App Service

1

Compartilhar

Baixar para ler offline

Descrição

Sessione tenuta al Global Azure Bootcamp Pordenone 2017

Transcrição

  1. 1. Deploy & Run on Azure App Service Andrea Dottor
  2. 2. Hi! I’m Andrea Dottor www.dottor.net andrea@dottor.net @dottor
  3. 3. Sponsors
  4. 4. Global Sponsors
  5. 5. Twitter #GlobalAzure #Pordenone
  6. 6. Agenda • Perché il cloud • Andare nel cloud: a cosa stare attenti • Scelta macchina • Pubblicazione • Scalabilità
  7. 7. Pordenone, 22 aprile 2017#GlobalAzure #Pordenone Perché andare nel cloud • Riduzione dei costi • Disponibilità del servizio / SLA • Ma anche: • Abbattimento dei tempi di sviluppo • Uso di servizi di terze parti (notifiche, storage, CDN, …) • Machine Learning • Disponibilità "illimitata" di potenza di calcolo • ….
  8. 8. Pordenone, 22 aprile 2017#GlobalAzure #Pordenone
  9. 9. Pordenone, 22 aprile 2017#GlobalAzure #Pordenone Perché andare in Microsoft Azure • Il 90% delle società Fortune 500 si affida a Microsoft Cloud • Integrazione completa con Visual Studio • 38 Azure regions, molte più di ogni altro cloud provider
  10. 10. Portare in Azure un'applicazione esistente
  11. 11. Pordenone, 22 aprile 2017#GlobalAzure #Pordenone A cosa prestare attenzione (il 90% dei problemi) • L'applicazione deve poter scalare • L'applicazione deve poter scalare • L'applicazione deve poter scalare • L'applicazione deve poter scalare • L'applicazione deve poter scalare • L'applicazione deve poter scalare • Prestare attenzione a dove salviamo/carichiamo i file
  12. 12. Pordenone, 22 aprile 2017#GlobalAzure #Pordenone Errore/lezione n° 1: uso corretto della sessione • Portare la sessione su database o in un processo esterno • In Azure è possibile utilizzare Azure Redis Cache
  13. 13. Pordenone, 22 aprile 2017#GlobalAzure #Pordenone Redis • Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker. • Azure Redis Cache • BASIC: Servizio Cache Basic, ideale per sviluppo/test. (da ~€13,81/mese) • Single node. Multiple sizes up to 53 GB. • STANDARD: Cache per ambienti di produzione con replica master/slave. (~€34,51/mese) • Two-node Primary/Replica. Multiple sizes up to 53 GB. 99.9% SLA • PREMIUM: Progettato per la massima scalabilità e l'integrazione aziendale. (da ~€348,22/mese) • Two-node Primary/Replica with up to 10 shards. Multiple sizes from 6 GB to 530 GB. 99.9% SLA.
  14. 14. Pordenone, 22 aprile 2017#GlobalAzure #Pordenone Utilizzare Redis per salvare la Session in ASP.NET Core • Scaricare i packages: Microsoft.Extensions.Caching.Redis.Core e Microsoft.AspNetCore.Session
  15. 15. Pordenone, 22 aprile 2017#GlobalAzure #Pordenone Utilizzare Redis per salvare la Session in ASP.NET (non Core) • Package nuget Microsoft.Web.RedisSessionStateProvider <sessionState mode="Custom" customProvider="MySessionStateStore"> <providers> <add name="MySessionStateStore" type="Microsoft.Web.Redis.RedisSessionStateProvider" host="127.0.0.1" accessKey="" ssl="false"/> </providers> </sessionState>
  16. 16. Pordenone, 22 aprile 2017#GlobalAzure #Pordenone Errore/lezione n° 2: scrittura/upload di file in locale • Predisporre l'applicativo in modo da poter scrivere i file in una share di rete, oppure direttamente nel blob storage di Azure • Possibilità di creare un Files Storage e mapparlo come unità nella macchina
  17. 17. Pordenone, 22 aprile 2017#GlobalAzure #Pordenone Web Apps Migration Assistant https://www.movemetothecloud.net • Identifica possibili problematiche di pubblicazione/porting • Port Bindings • Authentication (la Basic Authentication non è supportata) • Global Assembly Cache (GAC) • IIS5 Compatibility Mode • Application Pools • COM Components • ISAPI Extensions • ...
  18. 18. Scelta della macchina Macchina Virtuale o App Service
  19. 19. Pordenone, 22 aprile 2017#GlobalAzure #Pordenone Scelta macchina
  20. 20. Pordenone, 22 aprile 2017#GlobalAzure #Pordenone • IOPS: La velocità effettiva del disco viene misurata in operazioni di input/output al secondo (IOPS) e MBps, dove il valore di MBps corrisponde a 10^6 byte al secondo. • Data disk: Un disco dati è un disco rigido virtuale utilizzabile per archiviare i dati delle applicazioni o altri dati che è necessario conservare. I dischi dati vengono registrati come unità SCSI ed etichettati con una lettera di propria scelta. Ciascun disco dati ha una capacità massima di 1023 GB.
  21. 21. Pordenone, 22 aprile 2017#GlobalAzure #Pordenone Prestazioni a confronto: Unità ACU • È stato creato il concetto di unità di calcolo di Azure (ACU, Azure Compute Unit) per mettere a punto un modo per confrontare le prestazioni di calcolo (CPU) degli SKU di Azure e identificare lo SKU in grado di soddisfare con più probabilità le esigenze di prestazioni. L'unità ACU adotta come standard una macchina virtuale Small (Standard_A1), a cui attribuisce il valore 100. Per tutte le altre SKU sarà quindi possibile valutare la maggiore velocità di elaborazione con cui sono in grado di eseguire un benchmark standard. Famiglia SKU ACU/Core ExtraSmall 50 Small-ExtraLarge 100 A5-7 100 Standard_A1-8v2 100 Standard_A2m-8mv2 100 A8-A11 225* D1-14 160 D1-15v2 210 - 250* G1-5 180 - 240* H 290 - 300*
  22. 22. Pordenone, 22 aprile 2017#GlobalAzure #Pordenone Tipologie e caratteristiche
  23. 23. Pordenone, 22 aprile 2017#GlobalAzure #Pordenone Scelta macchina/piano App Service
  24. 24. Pordenone, 22 aprile 2017#GlobalAzure #Pordenone Gratuito e Condiviso • I piani di servizio Gratuito e Condiviso (anteprima) sono ideali per provare la piattaforma e per scenari di sviluppo e test
  25. 25. Pordenone, 22 aprile 2017#GlobalAzure #Pordenone Piano di servizio Basic • Progettato per app con requisiti di traffico ridotti • Non si ha l'autoscaling • Non si ha il traffic-manager
  26. 26. Pordenone, 22 aprile 2017#GlobalAzure #Pordenone Piano di servizio Standard • Progettato per app Web, per dispositivi mobili e per le API negli ambienti di produzione. Il numero di app/domini che è possibile ospitare è illimitato.
  27. 27. Pordenone, 22 aprile 2017#GlobalAzure #Pordenone Piano di servizio Premium • Progettato per app di produzione, supporta un numero maggiore di istanze scalabili (fino a 50, o maggiore su richiesta)
  28. 28. Pordenone, 22 aprile 2017#GlobalAzure #Pordenone SLA – 99,95% • App Service • We guarantee that Apps running in a customer subscription will be available 99.95% of the time. No SLA is provided for Apps under either the Free or Shared tiers. • Cloud Services and Virtual Machines • For Cloud Services, we guarantee that when you deploy two or more role instances in different fault and upgrade domains, at least one role instance will have Role Instance Connectivity at least 99.95% of the time. • For all Virtual Machines that have two or more instances deployed in the same Availability Set, we guarantee you will have Virtual Machine Connectivity to at least one instance at least 99.95% of the time. • For any Single Instance Virtual Machine using premium storage for all disks, we guarantee you will have Virtual Machine Connectivity of at least 99.9%
  29. 29. DEMO
  30. 30. Pubblicazione
  31. 31. Pordenone, 22 aprile 2017#GlobalAzure #Pordenone Pubblicazione • Deploy manually by uploading files with FTP • Deploy by syncing with a cloud folder • OneDrive • Dropbox • Deploy continuously from a cloud-based source control service • Visual Studio Team Services • GitHub • BitBucket • Deploy from local Git • Deploy using an IDE
  32. 32. Pordenone, 22 aprile 2017#GlobalAzure #Pordenone Set up staging environments in Azure App Service • Solo per macchine Standard e Premium • Il numero di slot disponibili dipende dal tipo di macchina/piano • E' possibile eseguire in 1 click lo swap di due Deployment slots • E' possibile configurare l'Auto Swap per scenari DevOps
  33. 33. DEMO
  34. 34. Scalabilità
  35. 35. Pordenone, 22 aprile 2017#GlobalAzure #Pordenone Scalabilità verticale / Scale up • Possibilità di poter modificare la tipologia di macchina che ospita la nostra applicazione
  36. 36. Pordenone, 22 aprile 2017#GlobalAzure #Pordenone Scalabilità orizzontale / Scale out • Possibilità di aumentare o diminuire il numero di macchine che gestiscono le richieste verso la nostra applicazione • Si può specificare il numero minimo e massimo di macchine
  37. 37. Pordenone, 22 aprile 2017#GlobalAzure #Pordenone Configurazione Autoscale 1. Creare un profilo: • Always: Mantiene sempre le regole valide. • Recurrence: Scelta dei giorni della settimana • Fixed Date: Date fisse in cui applicare le regole. 2. Aggiungere una regola • Insieme delle condizioni per cui modificare il numero delle macchine in base a delle metriche (CPU usage, disk activity, or network activity)
  38. 38. DEMO
  39. 39. Thanks! Grazie! Q&A

Notas do Editor

  • https://docs.microsoft.com/en-us/azure/architecture/checklist/scalability
  • https://azure.microsoft.com/en-us/services/cache/
  • https://docs.microsoft.com/en-us/aspnet/core/performance/caching/distributed#using-a-redis-distributed-cache
  • https://docs.microsoft.com/en-us/azure/redis-cache/cache-aspnet-session-state-provider https://docs.microsoft.com/en-us/azure/redis-cache/cache-aspnet-output-cache-provider
  • https://docs.microsoft.com/en-us/azure/storage/storage-dotnet-how-to-use-files
  • https://azure.microsoft.com/it-it/pricing/details/virtual-machines/windows/
    https://azure.microsoft.com/it-it/pricing/details/virtual-machines/series/
  • https://blogs.technet.microsoft.com/andrewc/2016/09/09/understanding-azure-virtual-machine-iops-throughput-and-disk-latency/
  • https://blogs.msdn.microsoft.com/azureedu/2016/12/14/changing-vm-sizes-in-azure/
  • https://docs.microsoft.com/it-it/azure/cloud-services/cloud-services-how-to-scale
  • Descrição

    Sessione tenuta al Global Azure Bootcamp Pordenone 2017

    Transcrição

    1. 1. Deploy & Run on Azure App Service Andrea Dottor
    2. 2. Hi! I’m Andrea Dottor www.dottor.net andrea@dottor.net @dottor
    3. 3. Sponsors
    4. 4. Global Sponsors
    5. 5. Twitter #GlobalAzure #Pordenone
    6. 6. Agenda • Perché il cloud • Andare nel cloud: a cosa stare attenti • Scelta macchina • Pubblicazione • Scalabilità
    7. 7. Pordenone, 22 aprile 2017#GlobalAzure #Pordenone Perché andare nel cloud • Riduzione dei costi • Disponibilità del servizio / SLA • Ma anche: • Abbattimento dei tempi di sviluppo • Uso di servizi di terze parti (notifiche, storage, CDN, …) • Machine Learning • Disponibilità "illimitata" di potenza di calcolo • ….
    8. 8. Pordenone, 22 aprile 2017#GlobalAzure #Pordenone
    9. 9. Pordenone, 22 aprile 2017#GlobalAzure #Pordenone Perché andare in Microsoft Azure • Il 90% delle società Fortune 500 si affida a Microsoft Cloud • Integrazione completa con Visual Studio • 38 Azure regions, molte più di ogni altro cloud provider
    10. 10. Portare in Azure un'applicazione esistente
    11. 11. Pordenone, 22 aprile 2017#GlobalAzure #Pordenone A cosa prestare attenzione (il 90% dei problemi) • L'applicazione deve poter scalare • L'applicazione deve poter scalare • L'applicazione deve poter scalare • L'applicazione deve poter scalare • L'applicazione deve poter scalare • L'applicazione deve poter scalare • Prestare attenzione a dove salviamo/carichiamo i file
    12. 12. Pordenone, 22 aprile 2017#GlobalAzure #Pordenone Errore/lezione n° 1: uso corretto della sessione • Portare la sessione su database o in un processo esterno • In Azure è possibile utilizzare Azure Redis Cache
    13. 13. Pordenone, 22 aprile 2017#GlobalAzure #Pordenone Redis • Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker. • Azure Redis Cache • BASIC: Servizio Cache Basic, ideale per sviluppo/test. (da ~€13,81/mese) • Single node. Multiple sizes up to 53 GB. • STANDARD: Cache per ambienti di produzione con replica master/slave. (~€34,51/mese) • Two-node Primary/Replica. Multiple sizes up to 53 GB. 99.9% SLA • PREMIUM: Progettato per la massima scalabilità e l'integrazione aziendale. (da ~€348,22/mese) • Two-node Primary/Replica with up to 10 shards. Multiple sizes from 6 GB to 530 GB. 99.9% SLA.
    14. 14. Pordenone, 22 aprile 2017#GlobalAzure #Pordenone Utilizzare Redis per salvare la Session in ASP.NET Core • Scaricare i packages: Microsoft.Extensions.Caching.Redis.Core e Microsoft.AspNetCore.Session
    15. 15. Pordenone, 22 aprile 2017#GlobalAzure #Pordenone Utilizzare Redis per salvare la Session in ASP.NET (non Core) • Package nuget Microsoft.Web.RedisSessionStateProvider <sessionState mode="Custom" customProvider="MySessionStateStore"> <providers> <add name="MySessionStateStore" type="Microsoft.Web.Redis.RedisSessionStateProvider" host="127.0.0.1" accessKey="" ssl="false"/> </providers> </sessionState>
    16. 16. Pordenone, 22 aprile 2017#GlobalAzure #Pordenone Errore/lezione n° 2: scrittura/upload di file in locale • Predisporre l'applicativo in modo da poter scrivere i file in una share di rete, oppure direttamente nel blob storage di Azure • Possibilità di creare un Files Storage e mapparlo come unità nella macchina
    17. 17. Pordenone, 22 aprile 2017#GlobalAzure #Pordenone Web Apps Migration Assistant https://www.movemetothecloud.net • Identifica possibili problematiche di pubblicazione/porting • Port Bindings • Authentication (la Basic Authentication non è supportata) • Global Assembly Cache (GAC) • IIS5 Compatibility Mode • Application Pools • COM Components • ISAPI Extensions • ...
    18. 18. Scelta della macchina Macchina Virtuale o App Service
    19. 19. Pordenone, 22 aprile 2017#GlobalAzure #Pordenone Scelta macchina
    20. 20. Pordenone, 22 aprile 2017#GlobalAzure #Pordenone • IOPS: La velocità effettiva del disco viene misurata in operazioni di input/output al secondo (IOPS) e MBps, dove il valore di MBps corrisponde a 10^6 byte al secondo. • Data disk: Un disco dati è un disco rigido virtuale utilizzabile per archiviare i dati delle applicazioni o altri dati che è necessario conservare. I dischi dati vengono registrati come unità SCSI ed etichettati con una lettera di propria scelta. Ciascun disco dati ha una capacità massima di 1023 GB.
    21. 21. Pordenone, 22 aprile 2017#GlobalAzure #Pordenone Prestazioni a confronto: Unità ACU • È stato creato il concetto di unità di calcolo di Azure (ACU, Azure Compute Unit) per mettere a punto un modo per confrontare le prestazioni di calcolo (CPU) degli SKU di Azure e identificare lo SKU in grado di soddisfare con più probabilità le esigenze di prestazioni. L'unità ACU adotta come standard una macchina virtuale Small (Standard_A1), a cui attribuisce il valore 100. Per tutte le altre SKU sarà quindi possibile valutare la maggiore velocità di elaborazione con cui sono in grado di eseguire un benchmark standard. Famiglia SKU ACU/Core ExtraSmall 50 Small-ExtraLarge 100 A5-7 100 Standard_A1-8v2 100 Standard_A2m-8mv2 100 A8-A11 225* D1-14 160 D1-15v2 210 - 250* G1-5 180 - 240* H 290 - 300*
    22. 22. Pordenone, 22 aprile 2017#GlobalAzure #Pordenone Tipologie e caratteristiche
    23. 23. Pordenone, 22 aprile 2017#GlobalAzure #Pordenone Scelta macchina/piano App Service
    24. 24. Pordenone, 22 aprile 2017#GlobalAzure #Pordenone Gratuito e Condiviso • I piani di servizio Gratuito e Condiviso (anteprima) sono ideali per provare la piattaforma e per scenari di sviluppo e test
    25. 25. Pordenone, 22 aprile 2017#GlobalAzure #Pordenone Piano di servizio Basic • Progettato per app con requisiti di traffico ridotti • Non si ha l'autoscaling • Non si ha il traffic-manager
    26. 26. Pordenone, 22 aprile 2017#GlobalAzure #Pordenone Piano di servizio Standard • Progettato per app Web, per dispositivi mobili e per le API negli ambienti di produzione. Il numero di app/domini che è possibile ospitare è illimitato.
    27. 27. Pordenone, 22 aprile 2017#GlobalAzure #Pordenone Piano di servizio Premium • Progettato per app di produzione, supporta un numero maggiore di istanze scalabili (fino a 50, o maggiore su richiesta)
    28. 28. Pordenone, 22 aprile 2017#GlobalAzure #Pordenone SLA – 99,95% • App Service • We guarantee that Apps running in a customer subscription will be available 99.95% of the time. No SLA is provided for Apps under either the Free or Shared tiers. • Cloud Services and Virtual Machines • For Cloud Services, we guarantee that when you deploy two or more role instances in different fault and upgrade domains, at least one role instance will have Role Instance Connectivity at least 99.95% of the time. • For all Virtual Machines that have two or more instances deployed in the same Availability Set, we guarantee you will have Virtual Machine Connectivity to at least one instance at least 99.95% of the time. • For any Single Instance Virtual Machine using premium storage for all disks, we guarantee you will have Virtual Machine Connectivity of at least 99.9%
    29. 29. DEMO
    30. 30. Pubblicazione
    31. 31. Pordenone, 22 aprile 2017#GlobalAzure #Pordenone Pubblicazione • Deploy manually by uploading files with FTP • Deploy by syncing with a cloud folder • OneDrive • Dropbox • Deploy continuously from a cloud-based source control service • Visual Studio Team Services • GitHub • BitBucket • Deploy from local Git • Deploy using an IDE
    32. 32. Pordenone, 22 aprile 2017#GlobalAzure #Pordenone Set up staging environments in Azure App Service • Solo per macchine Standard e Premium • Il numero di slot disponibili dipende dal tipo di macchina/piano • E' possibile eseguire in 1 click lo swap di due Deployment slots • E' possibile configurare l'Auto Swap per scenari DevOps
    33. 33. DEMO
    34. 34. Scalabilità
    35. 35. Pordenone, 22 aprile 2017#GlobalAzure #Pordenone Scalabilità verticale / Scale up • Possibilità di poter modificare la tipologia di macchina che ospita la nostra applicazione
    36. 36. Pordenone, 22 aprile 2017#GlobalAzure #Pordenone Scalabilità orizzontale / Scale out • Possibilità di aumentare o diminuire il numero di macchine che gestiscono le richieste verso la nostra applicazione • Si può specificare il numero minimo e massimo di macchine
    37. 37. Pordenone, 22 aprile 2017#GlobalAzure #Pordenone Configurazione Autoscale 1. Creare un profilo: • Always: Mantiene sempre le regole valide. • Recurrence: Scelta dei giorni della settimana • Fixed Date: Date fisse in cui applicare le regole. 2. Aggiungere una regola • Insieme delle condizioni per cui modificare il numero delle macchine in base a delle metriche (CPU usage, disk activity, or network activity)
    38. 38. DEMO
    39. 39. Thanks! Grazie! Q&A

    Notas do Editor

  • https://docs.microsoft.com/en-us/azure/architecture/checklist/scalability
  • https://azure.microsoft.com/en-us/services/cache/
  • https://docs.microsoft.com/en-us/aspnet/core/performance/caching/distributed#using-a-redis-distributed-cache
  • https://docs.microsoft.com/en-us/azure/redis-cache/cache-aspnet-session-state-provider https://docs.microsoft.com/en-us/azure/redis-cache/cache-aspnet-output-cache-provider
  • https://docs.microsoft.com/en-us/azure/storage/storage-dotnet-how-to-use-files
  • https://azure.microsoft.com/it-it/pricing/details/virtual-machines/windows/
    https://azure.microsoft.com/it-it/pricing/details/virtual-machines/series/
  • https://blogs.technet.microsoft.com/andrewc/2016/09/09/understanding-azure-virtual-machine-iops-throughput-and-disk-latency/
  • https://blogs.msdn.microsoft.com/azureedu/2016/12/14/changing-vm-sizes-in-azure/
  • https://docs.microsoft.com/it-it/azure/cloud-services/cloud-services-how-to-scale
  • Mais Conteúdo rRelacionado

    Audiolivros relacionados

    Gratuito durante 30 dias do Scribd

    Ver tudo

    ×