Scegliere un servizio di calcolo di Azure per l'applicazioneChoose an Azure compute service for your application

Azure offre una serie di modi per ospitare il codice dell'applicazione.Azure offers a number of ways to host your application code. Il termine calcolo fa riferimento al modello di hosting per le risorse di calcolo in cui viene eseguita l'applicazione.The term compute refers to the hosting model for the computing resources that your application runs on. Il diagramma di flusso seguente consente di scegliere un servizio di calcolo per l'applicazione.The following flowchart will help you to choose a compute service for your application.

Se l'applicazione è costituita da più carichi di lavoro, valutare ogni carico di lavoro separatamente.If your application consists of multiple workloads, evaluate each workload separately. Una soluzione completa può includere due o più servizi di calcolo.A complete solution may incorporate two or more compute services.

Scegliere un servizio candidatoChoose a candidate service

Usare il diagramma di flusso seguente per selezionare un servizio di calcolo candidato.Use the following flowchart to select a candidate compute service.

Albero delle decisioni per i servizi di calcolo di Azure

Definizioni:Definitions:

  • "Lift-and-Shift" è una strategia per la migrazione di un carico di lavoro nel cloud senza riprogettare l'applicazione o apportare modifiche al codice."Lift and shift" is a strategy for migrating a workload to the cloud without redesigning the application or making code changes. Viene definita anche rehosting.Also called rehosting. Per altre informazioni, vedere il Centro migrazione di Azure.For more information, see Azure migration center.
  • 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.Cloud optimized is a strategy for migrating to the cloud by refactoring an application to take advantage of cloud-native features and capabilities.

L'output di questo diagramma di flusso è un punto di partenza da considerare.The output from this flowchart is a starting point for consideration. Eseguire quindi una valutazione più dettagliata del servizio per verificare se soddisfi le proprie esigenze.Next, perform a more detailed evaluation of the service to see if it meets your needs.

Questo articolo include diverse tabelle che possono essere utili per prendere decisioni di compromesso.This article includes several tables which may help you to make these tradeoff decisions. In base a questa analisi, è possibile notare che il candidato iniziale non è adatto per l'applicazione o il carico di lavoro specifico.Based on this analysis, you may find that the initial candidate isn't suitable for your particular application or workload. In tal caso, espandere l'analisi per includere altri servizi di calcolo.In that case, expand your analysis to include other compute services.

Informazioni sulle funzionalità di baseUnderstand the basic features

Se non si ha familiarità con il servizio di Azure selezionato nel passaggio precedente, vedere la documentazione di panoramica per informazioni sulle nozioni di base del servizio.If you're not familiar with the Azure service selected in the previous step, read the overview documentation to understand the basics of the service.

  • Servizio app.App Service. Un servizio gestito per l'hosting di app Web, back-end di app per dispositivi mobili, API RESTful o processi aziendali automatizzati.A managed service for hosting web apps, mobile app back ends, RESTful APIs, or automated business processes.
  • Azure Kubernetes Service (AKS).Azure Kubernetes Service (AKS). Un servizio Kubernetes gestito per l'esecuzione di applicazioni in contenitori.A managed Kubernetes service for running containerized applications.
  • Batch.Batch. Un servizio gestito per l'esecuzione di applicazioni parallele e HPC (High Performance Computing) su larga scalaA managed service for running large-scale parallel and high-performance computing (HPC) applications
  • Istanze di contenitore.Container Instances. Il modo più semplice e rapido per eseguire un contenitore in Azure, senza dover effettuare il provisioning di macchine virtuali e senza dover adottare un servizio di livello superiore.The fastest and simplest way to run a container in Azure, without having to provision any virtual machines and without having to adopt a higher-level service.
  • Funzioni.Functions. Un servizio FaaS gestito.A managed FaaS service.
  • Service Fabric.Service Fabric. Piattaforma di sistemi distribuiti che può essere eseguita in molti ambienti, tra cui Azure o in locale.A distributed systems platform that can run in many environments, including Azure or on premises.
  • Macchine virtuali.Virtual machines. Distribuire e gestire le macchine virtuali all'interno di una rete virtuale di Azure.Deploy and manage VMs inside an Azure virtual network.

Informazioni sui modelli di hostingUnderstand the hosting models

I servizi cloud, inclusi i servizi di Azure, in genere rientrano in tre categorie: IaaS, PaaS o FaaS.Cloud services, including Azure services, generally fall into three categories: IaaS, PaaS, or FaaS. (È disponibile anche SaaS, software-as-a-Service, che non rientra nell'ambito di questo articolo). È utile comprendere le differenze.(There is also SaaS, software-as-a-service, which is out of scope for this article.) It's useful to understand the differences.

Infrastruttura distribuita come servizio (IaaS) consente di eseguire il provisioning di singole macchine virtuali insieme ai componenti di rete e di archiviazione associati.Infrastructure-as-a-Service (IaaS) lets you provision individual VMs along with the associated networking and storage components. In seguito, si distribuiscono il software e le applicazioni desiderate sulle macchine virtuali.Then you deploy whatever software and applications you want onto those VMs. Questo modello è il più simile a un ambiente locale tradizionale, con la differenza che l'infrastruttura viene gestita da Microsoft.This model is the closest to a traditional on-premises environment, except that Microsoft manages the infrastructure. È comunque possibile gestire le singole macchine virtuali.You still manage the individual VMs.

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.Platform-as-a-Service (PaaS) provides a managed hosting environment, where you can deploy your application without needing to manage VMs or networking resources. App Azure servizio è un servizio PaaS.Azure App Service is a PaaS service.

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.Functions-as-a-Service (FaaS) goes even further in removing the need to worry about the hosting environment. In un modello FaaS è sufficiente distribuire il codice e il servizio lo esegue automaticamente.In a FaaS model, you simply deploy your code and the service automatically runs it. Funzioni di Azure è un servizio FaaS.Azure Functions are a FaaS service.

Da IaaS al PaaS puro esiste una gamma di possibilità.There is a spectrum from IaaS to pure PaaS. Ad esempio, le macchine virtuali di Azure possono essere ridimensionate automaticamente usando i set di scalabilità di macchine virtuali.For example, Azure VMs can autoscale by using virtual machine scale sets. Questa funzionalità di scalabilità automatica non è strettamente PaaS, ma è il tipo di funzionalità di gestione disponibile nei servizi di PaaS.This automatic scaling capability isn't strictly PaaS, but it's the type of management feature found in PaaS services.

In generale, esiste un compromesso tra il controllo e la facilità di gestione.In general, there is a tradeoff between control and ease of management. 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.IaaS gives the most control, flexibility, and portability, but you have to provision, configure and manage the VMs and network components you create. I servizi di FaaS gestiscono automaticamente quasi tutti gli aspetti dell'esecuzione di un'applicazione.FaaS services automatically manage nearly all aspects of running an application. I servizi PaaS rientrare in un punto qualsiasi.PaaS services fall somewhere in between.

CriteriCriteria Macchine virtualiVirtual Machines Servizio appApp Service Service FabricService Fabric Funzioni di AzureAzure Functions Servizio Azure KubernetesAzure Kubernetes Service Istanze di contenitoreContainer Instances Azure BatchAzure Batch
Composizione dell'applicazioneApplication composition AgnosticoAgnostic Applicazioni, contenitoriApplications, containers Servizi, eseguibili guest, contenitoriServices, guest executables, containers FunzioniFunctions ContenitoriContainers ContenitoriContainers Processi pianificatiScheduled jobs
DensitàDensity AgnosticoAgnostic Più app per istanza tramite piani di servizio appMultiple apps per instance via app service plans Più servizi per VMMultiple services per VM Senza server 1Serverless 1 Più contenitori per nodoMultiple containers per node Nessuna istanza dedicataNo dedicated instances Più app per VMMultiple apps per VM
Numero minimo di nodiMinimum number of nodes 1 21 2 11 5 35 3 Senza server 1Serverless 1 3 33 3 Nessun nodo dedicatoNo dedicated nodes 1 41 4
Gestione dello statoState management Senza stato o con statoStateless or Stateful Senza statoStateless Senza stato o con statoStateless or stateful Senza statoStateless Senza stato o con statoStateless or Stateful Senza statoStateless Senza statoStateless
Hosting WebWeb hosting AgnosticoAgnostic IntegratoBuilt in AgnosticoAgnostic Non applicabileNot applicable AgnosticoAgnostic AgnosticoAgnostic NoNo
Può essere distribuito in una rete virtuale dedicata?Can be deployed to dedicated VNet? SupportatoSupported Supportato5Supported5 SupportatoSupported Supportato5Supported 5 SupportatoSupported SupportatoSupported SupportatoSupported
Connettività ibridaHybrid connectivity SupportatoSupported Supportato6Supported 6 SupportatoSupported Supportato7Supported 7 SupportatoSupported Non supportateNot supported SupportatoSupported

NoteNotes

  1. Se si usa il piano a consumo. Se si usa il piano di servizio app, le funzioni vengono eseguite nelle VM allocate per il piano di servizio app. Vedere scegliere il piano di servizio corretto per funzioni di Azure.If using Consumption plan. If using App Service plan, functions run on the VMs allocated for your App Service plan. See Choose the correct service plan for Azure Functions.
  2. Contratto di servizio con disponibilità superiore con due o più istanze.Higher SLA with two or more instances.
  3. Consigliato per ambienti di produzione.Recommended for production environments.
  4. Possibile riduzione fino a zero dopo il completamento del processo.Can scale down to zero after job completes.
  5. Richiede Ambiente del servizio app.Requires App Service Environment (ASE).
  6. Usare le connessioni ibride del servizio app di Azure.Use Azure App Service Hybrid Connections.
  7. Richiede il piano di servizio app.Requires App Service plan.

DevOpsDevOps

CriteriCriteria Macchine virtualiVirtual Machines Servizio appApp Service Service FabricService Fabric Funzioni di AzureAzure Functions Servizio Azure KubernetesAzure Kubernetes Service Istanze di contenitoreContainer Instances Azure BatchAzure Batch
Debug localeLocal debugging AgnosticoAgnostic IIS Express, altri1IIS Express, others 1 Cluster a nodi localiLocal node cluster Visual Studio o interfaccia della riga di comando di Funzioni di AzureVisual Studio or Azure Functions CLI Minikube, altriMinikube, others Runtime del contenitore localeLocal container runtime Non supportateNot supported
Modello di programmazioneProgramming model AgnosticoAgnostic Applicazioni Web e API, processi Web per attività in backgroundWeb and API applications, WebJobs for background tasks Eseguibile guest, modello del servizio, modello Actor, contenitoriGuest executable, Service model, Actor model, Containers Funzioni con triggerFunctions with triggers AgnosticoAgnostic AgnosticoAgnostic Applicazione della riga di comandoCommand line application
Aggiornamento dell'applicazioneApplication update Nessun supporto integratoNo built-in support Slot di distribuzioneDeployment slots Aggiornamento in sequenza (per servizio)Rolling upgrade (per service) Slot di distribuzioneDeployment slots Aggiornamento in sequenzaRolling update Non applicabileNot applicable

NoteNotes

  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.Options include IIS Express for ASP.NET or node.js (iisnode); PHP web server; Azure Toolkit for IntelliJ, Azure Toolkit for Eclipse. App Service also supports remote debugging of deployed web app.
  2. Vedere Provider, aree, versioni API e schemi di Resource Manager.See Resource Manager providers, regions, API versions and schemas.

ScalabilitàScalability

CriteriCriteria Macchine virtualiVirtual Machines Servizio appApp Service Service FabricService Fabric Funzioni di AzureAzure Functions Servizio Azure KubernetesAzure Kubernetes Service Istanze di contenitoreContainer Instances Azure BatchAzure Batch
Scalabilità automaticaAutoscaling set di scalabilità di macchine virtualiVirtual machine scale sets Servizio integratoBuilt-in service set di scalabilità di macchine virtualiVirtual machine scale sets Servizio integratoBuilt-in service Scalabilità automatica di Pod 1 , scalabilità automatica del cluster 2Pod auto-scaling1, cluster auto-scaling2 Non supportateNot supported N/DN/A
Bilanciamento del caricoLoad balancer Azure Load BalancerAzure Load Balancer IntegratoIntegrated Azure Load BalancerAzure Load Balancer IntegratoIntegrated Azure Load Balancer o il gateway applicazioneAzure Load Balancer or Application Gateway Nessun supporto integratoNo built-in support Azure Load BalancerAzure Load Balancer
Limite di scala3Scale limit3 Immagine della piattaforma: 1000 nodi per set di scalabilità, immagine personalizzata: 600 nodi per set di scalabilitàPlatform image: 1000 nodes per scale set, Custom image: 600 nodes per scale set 20 istanze, 100 con l'ambiente del servizio app20 instances, 100 with App Service Environment 100 nodi per set di scalabilità100 nodes per scale set 200 istanze per ogni app per le funzioni200 instances per Function app 100 nodi per cluster (limite predefinito)100 nodes per cluster (default limit) 20 gruppi di contenitori per sottoscrizione (limite predefinito)20 container groups per subscription (default limit). 20 core (limite predefinito)20 core limit (default limit).

NoteNotes

  1. Vedere la pagina relativa ai pod di scalabilitàautomatica.See Autoscale pods.
  2. Vedere ridimensionare automaticamente un cluster per soddisfare le richieste dell'applicazione in Azure Kubernetes Service (AKS).See Automatically scale a cluster to meet application demands on Azure Kubernetes Service (AKS).
  3. Vedere sottoscrizione di Azure e limiti, quote e vincoli dei servizi.See Azure subscription and service limits, quotas, and constraints.

DisponibilitàAvailability

CriteriCriteria Macchine virtualiVirtual Machines Servizio appApp Service Service FabricService Fabric Funzioni di AzureAzure Functions Servizio Azure KubernetesAzure Kubernetes Service Istanze di contenitoreContainer Instances Azure BatchAzure Batch
Contratto di servizioSLA Contratto di servizio per Macchine virtualiSLA for Virtual Machines Contratto di servizio per Servizio appSLA for App Service Contratto di servizio per Service FabricSLA for Service Fabric Contratto di servizio per FunzioniSLA for Functions Contratto di servizio per il servizio Azure KubernetesSLA for AKS Contratto di servizio per Istanze di ContainerSLA for Container Instances Contratto di servizio per Azure BatchSLA for Azure Batch
Failover in più areeMulti region failover Gestione trafficoTraffic manager Gestione trafficoTraffic manager Gestione traffico, cluster in più areeTraffic manager, Multi-Region Cluster Frontdoor di AzureAzure Front Door Gestione trafficoTraffic manager Non supportateNot supported Non supportatoNot Supported

Per l'apprendimento guidato sulle garanzie di servizio, vedere servizi cloud di base-garanzie di architettura e servizio di Azure.For guided learning on Service Guarantees, review Core Cloud Services - Azure architecture and service guarantees.

Altri criteriOther criteria

CriteriCriteria Macchine virtualiVirtual Machines Servizio appApp Service Service FabricService Fabric Funzioni di AzureAzure Functions Servizio Azure KubernetesAzure Kubernetes Service Istanze di contenitoreContainer Instances Azure BatchAzure Batch
SSLSSL Configurato in VMConfigured in VM SupportatoSupported SupportatoSupported SupportatoSupported Controller di ingressoIngress controller Usare il contenitore sidecarUse sidecar container SupportatoSupported
CostiCost Windows, LinuxWindows, Linux Prezzi di Servizio appApp Service pricing Prezzi di Service FabricService Fabric pricing Prezzi di funzioni di AzureAzure Functions pricing Prezzi del servizio Azure KubernetesAKS pricing Prezzi di Istanze di ContainerContainer Instances pricing Prezzi di Azure BatchAzure Batch pricing
Stili di architettura adattiSuitable architecture styles Livello N, Big Compute (HPC)N-Tier, Big compute (HPC) Web-Queue-Worker, a più livelliWeb-Queue-Worker, N-Tier Microservizi, Architettura guidata dagli eventiMicroservices, Event-driven architecture Microservizi, Architettura guidata dagli eventiMicroservices, Event-driven architecture Microservizi, Architettura guidata dagli eventiMicroservices, Event-driven architecture Microservizi, automazione delle attività, processi batchMicroservices, task automation, batch jobs Big Compute (HPC)Big compute (HPC)

L'output di questo diagramma di flusso è un punto di partenza da considerare.The output from this flowchart is a starting point for consideration. Eseguire quindi una valutazione più dettagliata del servizio per verificare se soddisfi le proprie esigenze.Next, perform a more detailed evaluation of the service to see if it meets your needs.

Considerare i limiti e i costiConsider limits and cost

Eseguire una valutazione più dettagliata esaminando gli aspetti seguenti del servizio:Perform a more detailed evaluation looking at the following aspects of the service:

Passaggi successiviNext steps