Scegliere un servizio di calcolo di Azure

Servizio app
Servizio Kubernetes

Azure offre molti 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ò incorporare 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:

  • "Lift and shift" è una strategia per la migrazione di un carico di lavoro al cloud senza riprogettare l'applicazione o apportare modifiche al codice. Chiamato 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 per eventuali considerazioni. Successivamente, eseguire una valutazione più dettagliata del servizio per verificare se soddisfa le proprie esigenze.

Questo articolo include diverse tabelle che consentono di prendere queste decisioni di compromesso. È 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.

Comprendere le 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 di Azure. Un servizio gestito per l'hosting di app Web, back-end di app per dispositivi mobili, API REST o processi aziendali automatizzati.
  • App Spring di Azure. Un servizio gestito progettato e ottimizzato per l'hosting di app Spring Boot.
  • servizio Azure Kubernetes (Servizio Azure Kubernetes). Servizio Kubernetes gestito per l'esecuzione di applicazioni in contenitori.
  • Azure Batch. Servizio gestito per l'esecuzione di applicazioni di calcolo parallele e ad alte prestazioni (HPC) su larga scala
  • Istanze di Azure Container. Il modo più veloce 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 di Azure. Servizio FaaS gestito.
  • Azure Service Fabric. Una piattaforma di sistemi distribuiti che può essere eseguita in molti ambienti, tra cui Azure o locale.
  • Macchine virtuali di Azure. Distribuire e gestire macchine virtuali all'interno di una rete virtuale di Azure.
  • App Azure Container. Un servizio gestito basato su Kubernetes, che semplifica la distribuzione di applicazioni in contenitori in un ambiente serverless.
  • Azure Red Hat OpenShift. Un cluster OpenShift completamente gestito per l'esecuzione di contenitori in produzione con Kubernetes.

Comprendere i modelli di hosting

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

Infrastructure-as-a-Service (IaaS) 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 e App Azure Container sono servizi 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 si distribuisce 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. È possibile leggere Scegliere i servizi di integrazione e automazione corretti in Azure per conoscere il modo in cui questo servizio viene confrontato con altre offerte serverless di Azure, ad esempio App per la logica che fornisce flussi di lavoro serverless.

C'è uno spettro da IaaS a PaaS puro. Ad esempio, le macchine virtuali di Azure possono ridimensionare automaticamente usando i set di scalabilità di macchine virtuali. Questa funzionalità di scalabilità automatica non è strettamente PaaS, ma è il tipo di funzionalità di gestione disponibile nei servizi PaaS.

In generale, c'è un compromesso tra il controllo e la facilità di gestione. IaaS offre il controllo, la flessibilità e la 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 rientrano da qualche parte tra.

Criteri Macchine virtuali Servizio app Azure Spring Apps Service Fabric Funzioni di Azure Servizio Azure Kubernetes Istanze di contenitore Azure Batch App contenitore di Azure Azure Red Hat OpenShift
Composizione dell'applicazione Agnostico Applicazioni, contenitori Applicazioni, microservizi Servizi, eseguibili guest, contenitori Funzioni Contenitori Contenitori Processi pianificati Contenitori Contenitori
Densità Agnostico Più app per istanza tramite il piano di servizio app Più app per ogni istanza del servizio Più servizi per VM Senza server 1 Più contenitori per nodo Nessuna istanza dedicata Più app per VM Senza server Più contenitori per nodo
Numero minimo di nodi 1 2 1 2 5 3 Senza server 1 3 3 Nessun nodo dedicato 1 4 Senza server 6 8
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 Senza stato o con stato Senza stato o con stato
Hosting Web Agnostico Integrato Integrato Agnostico Non applicabile Agnostico Agnostico No Agnostico Agnostico
Può essere distribuito in una rete virtuale dedicata? Supportato Supportato5 Supportato Supportato Supportato5 Supportato Supportato Supportato Supportato Supportato
Connettività ibrida Supportato Supportato6 Supportato Supportato Supportato7 Supportato Non supportato Supportato Supportato Supportato

Note

  1. Se si usa un piano a consumo. Se si usa un 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 servizio app piano o piano Premium Funzioni di Azure.
  8. 3 per i nodi master e 3 per i nodi di lavoro.

DevOps

Criteri Macchine virtuali Servizio app Azure Spring Apps Service Fabric Funzioni di Azure Servizio Azure Kubernetes Istanze di contenitore Azure Batch App contenitore di Azure Azure Red Hat OpenShift
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 Runtime del contenitore locale Minikube, altri
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 Agnostico Agnostico
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 Gestione delle revisioni Aggiornamento in sequenza

Note

  1. Le opzioni disponibili includono IIS Express per ASP.NET o node.js (iisnode), server Web PHP, Azure Toolkit for IntelliJ, Azure Toolkit for Eclipse. 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 Apps Service Fabric Funzioni di Azure Servizio Azure Kubernetes Istanze di contenitore Azure Batch App contenitore di Azure Azure Red Hat OpenShift
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, ridimensionamentoautomatico del cluster 2 Non supportato N/D Regoledi ridimensionamento 4 Ridimensionamento automatico dei pod, ridimensionamento automatico del cluster
Bilanciamento del carico Azure Load Balancer Integrato Integrato Azure Load Balancer Integrato Azure Load Balancer o gateway applicazione Nessun supporto integrato Azure Load Balancer Integrato Azure Load Balancer o gateway applicazione
Limite di scalabilità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) 5 Ambienti per area, 20 app contenitore per ambiente, 30 repliche per app contenitore 60 nodi per cluster (limite predefinito)

Note

  1. Vedere Pod di scalabilità automatica.
  2. Vedere Ridimensionare automaticamente un cluster per soddisfare le esigenze dell'applicazione su servizio Azure Kubernetes (servizio Azure Kubernetes).
  3. Vedere Limiti di sottoscrizione e servizio di Azure, quote e vincoli.
  4. Vedere Impostare le regole di ridimensionamento in App Azure Container.

Disponibilità

Criteri Macchine virtuali Servizio app Azure Spring Apps Service Fabric Funzioni di Azure Servizio Azure Kubernetes Istanze di contenitore Azure Batch App contenitore di Azure Azure Red Hat OpenShift
Contratto di servizio Contratto di servizio per Macchine virtuali Contratto di servizio per Servizio app Contratto di servizio per Azure Spring Apps 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 Contratto di servizio per app Azure Container Contratto di servizio per Azure Red Hat OpenShift
Failover in più aree Gestione traffico Gestione traffico Gestione traffico, cluster in più aree Frontdoor di Azure Gestione traffico Non supportato Non supportato Non supportato Non supportato

Per l'apprendimento guidato sulle garanzie del servizio, vedere Core Servizi cloud - Architettura e servizi di Azure.

Sicurezza

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

Altri criteri

Criteri Macchine virtuali Servizio app App Spring Apps Service Fabric Funzioni di Azure Servizio Azure Kubernetes Istanze di contenitore Azure Batch App contenitore di Azure Azure Red Hat OpenShift
SSL Configurato in VM Supportato Supportato Supportato Supportato Controller di ingresso Usare il contenitore sidecar Supportato Controller di ingresso Supportato
Cost Windows, Linux Prezzi di Servizio app Prezzi di Azure Spring Apps Prezzi di Service Fabric prezzi Funzioni di Azure Prezzi del servizio Azure Kubernetes Prezzi di Istanze di Container Prezzi di Azure Batch Prezzi di App Azure Container Prezzi di Azure Red Hat OpenShift
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) Microservizi, Architettura guidata dagli eventi Microservizi, Architettura guidata dagli eventi

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

Considerare limiti e costi

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

Passaggi successivi