Scegliere un servizio di calcolo di Azure per l'applicazione

Azure offre una serie di modi per ospitare il codice dell'applicazione. Il termine calcolo fa riferimento al modello di hosting per le risorse di calcolo in cui viene eseguita l'applicazione. Il diagramma di flusso seguente consente di scegliere un servizio di calcolo per l'applicazione.

Se l'applicazione è costituita da più carichi di lavoro, valutare ogni carico di lavoro separatamente. Una soluzione completa può includere due o più servizi di calcolo.

Scegliere un servizio candidato

Usare il diagramma di flusso seguente per selezionare un servizio di calcolo candidato.

Albero delle decisioni per i servizi di calcolo di Azure

Definizioni:

  • Il "lift-and-shift" è una strategia per la migrazione di un carico di lavoro nel cloud senza riprogettare l'applicazione o apportare modifiche al codice. Viene definita anche rehosting. Per altre informazioni, vedere Centro migrazione e modernizzazione di Azure.
  • L'ottimizzazione per il cloud è una strategia per la migrazione al cloud tramite il refactoring di un'applicazione per sfruttare i vantaggi delle funzionalità native del cloud.

L'output di questo diagramma di flusso è un punto di partenza da considerare. Successivamente, eseguire una valutazione più dettagliata del servizio per verificare se soddisfa le proprie esigenze.

Questo articolo include diverse tabelle che possono essere utili per prendere queste decisioni di compromesso. In base a questa analisi, è possibile che il candidato iniziale non sia adatto per l'applicazione o il carico di lavoro specifico. In tal caso, espandere l'analisi per includere altri servizi di calcolo.

Nota

Per altre informazioni sulla revisione dei requisiti di calcolo per l'adozione del cloud, vedere Microsoft Cloud Adoption Framework per Azure.

Informazioni sulle funzionalità di base

Se non si ha familiarità con il servizio di Azure selezionato nel passaggio precedente, leggere la documentazione di panoramica per comprendere le nozioni di base del servizio.

  • Servizio app. Un servizio gestito per l'hosting di app Web, back-end di app per dispositivi mobili, API RESTful o processi aziendali automatizzati.
  • Azure Spring Cloud. Un servizio gestito progettato e ottimizzato per l'hosting Spring Boot app.
  • servizio Azure Kubernetes (AKS). Un servizio Kubernetes gestito per l'esecuzione di applicazioni in contenitori.
  • Batch. Un servizio gestito per l'esecuzione di applicazioni parallele e HPC (High Performance Computing) su larga scala
  • Istanze di Container. Il modo più rapido e semplice per eseguire un contenitore in Azure, senza dover effettuare il provisioning di macchine virtuali e senza dover adottare un servizio di livello superiore.
  • Funzioni. Un servizio FaaS gestito.
  • Service Fabric. Una piattaforma di sistemi distribuiti che può essere eseguita in molti ambienti, tra cui Azure o in locale.
  • Macchine virtuali. Distribuire e gestire macchine virtuali all'interno di una rete virtuale di Azure.

Comprendere i modelli di hosting

I servizi cloud, inclusi i servizi di Azure, rientrano in genere in tre categorie: IaaS, PaaS o FaaS. È disponibile anche SaaS, software come servizio, che non è in ambito per questo articolo. È utile comprendere le differenze.

IaaS (Infrastructure-as-a-Service) consente di effettuare il provisioning di singole macchine virtuali insieme ai componenti di rete e archiviazione associati. In seguito, si distribuiscono il software e le applicazioni desiderate sulle macchine virtuali. Questo modello è il più simile a un ambiente locale tradizionale, con la differenza che l'infrastruttura viene gestita da Microsoft. È comunque possibile gestire le singole macchine virtuali.

Il modello di piattaforma distribuita come servizio (PaaS, Platform-as-a-Service) offre un ambiente di hosting gestito, in cui è possibile distribuire l'applicazione senza bisogno di gestire le macchine virtuali o le risorse di rete. Servizio app di Azure è un servizio PaaS.

Il modello di funzioni distribuite come servizio (FaaS, Functions-as-a-Service) si spinge ancora oltre rispetto all'eliminazione della necessità di gestire l'ambiente di hosting. In un modello FaaS è sufficiente distribuire il codice e il servizio lo esegue automaticamente. Funzioni di Azure è un servizio FaaS.

Nota

Funzioni di Azure è un'offerta di calcolo serverless di Azure. Per informazioni sul confronto tra questo servizio e altre offerte serverless di Azure, ad esempio App per la logica che fornisce flussi di lavoro serverless, è possibile leggere Scegliere i servizi di integrazione e automazione più efficienti in Azure.

Da IaaS al PaaS puro esiste una gamma di possibilità. Ad esempio, le macchine virtuali di Azure possono eseguire la scalabilità automatica usando i set di scalabilità di macchine virtuali. Questa funzionalità di scalabilità automatica non è esclusivamente PaaS, ma è il tipo di funzionalità di gestione disponibile nei servizi PaaS.

In generale, esiste un compromesso tra controllo e facilità di gestione. IaaS offre il massimo controllo, flessibilità e portabilità, ma è necessario effettuare il provisioning, configurare e gestire le macchine virtuali e i componenti di rete creati. I servizi FaaS gestiscono automaticamente quasi tutti gli aspetti dell'esecuzione di un'applicazione. I servizi PaaS sono in una posizione di mezzo.

Criteri Macchine virtuali Servizio app Azure Spring Cloud Service Fabric Funzioni di Azure Servizio Azure Kubernetes Istanze di contenitore Azure Batch
Composizione dell'applicazione Agnostico Applicazioni, contenitori Applicazioni, microservizi Servizi, eseguibili guest, contenitori Funzioni Contenitori Contenitori Processi pianificati
Densità Agnostico Più app per istanza tramite piani di servizio app Più app per istanza del servizio Più servizi per VM Senza server 1 Più contenitori per nodo Nessuna istanza dedicata Più app per VM
Numero minimo di nodi 1 2 1 2 5 3 Senza server 1 3 3 Nessun nodo dedicato 1 4
Gestione dello stato Senza stato o con stato Senza stato Senza stato Senza stato o con stato Senza stato Senza stato o con stato Senza stato Senza stato
Hosting Web Agnostico Integrato Integrato Agnostico Non applicabile Agnostico Agnostico No
Può essere distribuito in una rete virtuale dedicata? Supportato Supportato5 Supportato Supportato Supportato5 Supportato Supportato Supportato
Connettività ibrida Supportato Supportato6 Supportato Supportato Supportato7 Supportato Non supportato Supportato

Note

  1. Se si usa il piano a consumo. Se si usa il piano di servizio app, le funzioni vengono eseguite nelle macchine virtuali allocate per il piano di servizio app. Vedere Scegliere il piano di servizio corretto per Funzioni di Azure.
  2. Contratto di servizio con disponibilità superiore con due o più istanze.
  3. Consigliato per ambienti di produzione.
  4. Possibile riduzione fino a zero dopo il completamento del processo.
  5. Richiede Ambiente del servizio app.
  6. Usare le connessioni ibride del servizio app di Azure.
  7. Richiede il piano di servizio app Funzioni di Azure Premium piano .

DevOps

Criteri Macchine virtuali Servizio app Azure Spring Cloud Service Fabric Funzioni di Azure Servizio Azure Kubernetes Istanze di contenitore Azure Batch
Debug locale Agnostico IIS Express, altri1 Visual Studio Code, Intellij, Eclipse Cluster a nodi locali Visual Studio o interfaccia della riga di comando di Funzioni di Azure Minikube, altri Runtime del contenitore locale Non supportato
Modello di programmazione Agnostico Applicazioni Web e API, processi Web per attività in background Spring Boot, Steeltoe Eseguibile guest, modello del servizio, modello Actor, contenitori Funzioni con trigger Agnostico Agnostico Applicazione della riga di comando
Aggiornamento dell'applicazione Nessun supporto integrato Slot di distribuzione Aggiornamento in sequenza, distribuzione blu-verde Aggiornamento in sequenza (per servizio) Slot di distribuzione Aggiornamento in sequenza Non applicabile

Note

  1. Le opzioni includono IIS Express per ASP.NET o node.js (iisnode); Server Web PHP; Azure Toolkit for IntelliJ, Azure Toolkit for Eclipse. Il servizio app supporta anche il debug remoto dell'app Web distribuita.
  2. Vedere Provider, aree, versioni API e schemi di Resource Manager.

Scalabilità

Criteri Macchine virtuali Servizio app Azure Spring Cloud Service Fabric Funzioni di Azure Servizio Azure Kubernetes Istanze di contenitore Azure Batch
Scalabilità automatica set di scalabilità di macchine virtuali Servizio integrato Servizio integrato set di scalabilità di macchine virtuali Servizio integrato Ridimensionamento automatico dei pod 1, ridimensionamento automatico del cluster 2 Non supportato N/A
Bilanciamento del carico Azure Load Balancer Integrato Integrato Azure Load Balancer Integrato Azure Load Balancer o gateway applicazione Nessun supporto integrato Azure Load Balancer
Limite discalabilità 3 Immagine della piattaforma: 1000 nodi per set di scalabilità, immagine personalizzata: 600 nodi per set di scalabilità 30 istanze, 100 con ambiente del servizio app 500 istanze di app in Standard 100 nodi per set di scalabilità 200 istanze per ogni app per le funzioni 100 nodi per cluster (limite predefinito) 20 gruppi di contenitori per sottoscrizione (limite predefinito) 20 core (limite predefinito)

Note

  1. Vedere Ridimensionare automaticamente i pod.
  2. Vedere Ridimensionare automaticamente un cluster per soddisfare le richieste dell'applicazione servizio Azure Kubernetes (AKS).
  3. Vedere Sottoscrizione di Azure e limiti, quote e vincoli dei servizi.

Disponibilità

Criteri Macchine virtuali Servizio app Azure Spring Cloud Service Fabric Funzioni di Azure Servizio Azure Kubernetes Istanze di contenitore Azure Batch
Contratto di servizio Contratto di servizio per Macchine virtuali Contratto di servizio per Servizio app Contratto di servizio per Azure Spring Cloud Contratto di servizio per Service Fabric Contratto di servizio per Funzioni Contratto di servizio per il servizio Azure Kubernetes Contratto di servizio per Istanze di Container Contratto di servizio per Azure Batch
Failover in più aree Gestione traffico Gestione traffico Gestione traffico, cluster in più aree Frontdoor di Azure Gestione traffico Non supportato Non supportato

Per informazioni guidate sulle garanzie del servizio, vedere Servizi cloud di base - Architettura di Azure e garanzie dei servizi.

Sicurezza

Esaminare e comprendere i controlli di sicurezza e la visibilità disponibili per ogni servizio

Altri criteri

Criteri Macchine virtuali Servizio app App Spring Cloud Service Fabric Funzioni di Azure Servizio Azure Kubernetes Istanze di contenitore Azure Batch
SSL Configurato in VM Supportato Supportato Supportato Supportato Controller di ingresso Usare il contenitore sidecar Supportato
Cost Windows, Linux Prezzi di Servizio app Azure Spring Cloud prezzi Prezzi di Service Fabric Funzioni di Azure prezzi Prezzi del servizio Azure Kubernetes Prezzi di Istanze di Container Prezzi di Azure Batch
Stili di architettura adatti Livello N, Big Compute (HPC) Web-Queue-Worker, a più livelli Spring Boot, Microservizi Microservizi, Architettura guidata dagli eventi Microservizi, Architettura guidata dagli eventi Microservizi, Architettura guidata dagli eventi Microservizi, automazione delle attività, processi batch Big Compute (HPC)

L'output di questo diagramma di flusso è un punto di partenza da considerare. Successivamente, eseguire una valutazione più dettagliata del servizio per verificare se soddisfa le proprie esigenze.

Prendere in considerazione i limiti e i costi

Eseguire una valutazione più dettagliata esaminando gli aspetti seguenti del servizio:

Passaggi successivi