Choisir un service de calcul Azure pour votre applicationChoose an Azure compute service for your application

Azure offre de nombreuses manières d’héberger votre code d’application.Azure offers a number of ways to host your application code. Le terme calcul fait référence au modèle d’hébergement des ressources de calcul utilisées par votre application.The term compute refers to the hosting model for the computing resources that your application runs on. L’organigramme suivant vous aidera à choisir un service de calcul pour votre application.The following flowchart will help you to choose a compute service for your application.

Si votre application comprend plusieurs charges de travail, évaluez-les séparément.If your application consists of multiple workloads, evaluate each workload separately. Une solution complète peut incorporer deux services de calcul ou plus.A complete solution may incorporate two or more compute services.

Choisir un service candidatChoose a candidate service

Utilisez l’organigramme suivant pour sélectionner un service de calcul candidat.Use the following flowchart to select a candidate compute service.

Arbre de décision des services de calcul Azure

Définitions :Definitions:

  • « lift-and-shift » qualifie une stratégie de migration de charge de travail vers le cloud sans reconception de l’application ou modification de code."Lift and shift" is a strategy for migrating a workload to the cloud without redesigning the application or making code changes. Elle est également appelée ré-hébergement.Also called rehosting. Pour plus d’informations, consultez Centre de migration Azure.For more information, see Azure migration center.
  • Optimisé pour le cloud est une stratégie visant à migrer vers le cloud par la refactorisation d’une application, pour tirer parti des fonctionnalités cloud natives.Cloud optimized is a strategy for migrating to the cloud by refactoring an application to take advantage of cloud-native features and capabilities.

Le résultat de cet organigramme est un point de départ à prendre en considération.The output from this flowchart is a starting point for consideration. Ensuite, effectuez une évaluation plus détaillée du service pour voir s’il répond à vos besoins.Next, perform a more detailed evaluation of the service to see if it meets your needs.

Cet article comprend plusieurs tableaux susceptibles de vous aider à prendre ces décisions.This article includes several tables which may help you to make these tradeoff decisions. Sur la base de cette analyse, il se peut que vous constatiez que le candidat initial n’est pas adapté à votre application ou charge de travail particulière.Based on this analysis, you may find that the initial candidate isn't suitable for your particular application or workload. Dans ce cas, élargissez votre analyse pour inclure d’autres services de calcul.In that case, expand your analysis to include other compute services.

Comprendre les fonctionnalités de baseUnderstand the basic features

Si vous n’êtes pas familiarisé avec le service Azure sélectionné à l’étape précédente, consultez la documentation de présentation pour comprendre les principes de base du service.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.

  • App Service.App Service. Service géré pour l’hébergement d’applications web, de serveurs principaux d’applications mobiles, d’API RESTful ou de processus métier automatisés.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). Service Kubernetes géré pour l’exécution d’applications en conteneur.A managed Kubernetes service for running containerized applications.
  • Batch.Batch. Service géré qui permet d’exécuter des applications de calcul haute performance (HPC) et parallèles à grande échelle.A managed service for running large-scale parallel and high-performance computing (HPC) applications
  • Container Instances.Container Instances. Façon la plus simple et rapide d’exécuter un conteneur dans Azure, sans devoir approvisionner des machines virtuelles ou adopter un service de niveau supérieur.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.
  • Fonctions.Functions. Service FaaS géré.A managed FaaS service.
  • Service Fabric.Service Fabric. Plateforme de systèmes distribués qui peut s’exécuter dans de nombreux environnements, dont Azure ou localement.A distributed systems platform that can run in many environments, including Azure or on premises.
  • Machines virtuelles.Virtual machines. Déployez et gérez des machines virtuelles à l’intérieur d’un réseau virtuel Azure.Deploy and manage VMs inside an Azure virtual network.

Comprendre les modèles d’hébergementUnderstand the hosting models

Les services Cloud, y compris les services Azure, appartiennent généralement à trois catégories : IaaS, PaaS ou FaaS.Cloud services, including Azure services, generally fall into three categories: IaaS, PaaS, or FaaS. (Il existe également la catégorie SaaS, software as a service, qui sort du cadre de cet article.) Il est utile de comprendre les différences.(There is also SaaS, software-as-a-service, which is out of scope for this article.) It's useful to understand the differences.

L’infrastructure as a service (IaaS) vous permet de configurer des machines virtuelles individuelles avec les composants de mise en réseau et de stockage associés.Infrastructure-as-a-Service (IaaS) lets you provision individual VMs along with the associated networking and storage components. Ensuite, vous déployez les logiciels et les applications dont vous souhaitez disposer sur ces machines virtuelles.Then you deploy whatever software and applications you want onto those VMs. Ce modèle est le plus proche d’un environnement local traditionnel, à ceci près que l’infrastructure est gérée par Microsoft.This model is the closest to a traditional on-premises environment, except that Microsoft manages the infrastructure. Vous continuez de gérer les différentes machines virtuelles.You still manage the individual VMs.

La fonctionnalité platform as a Service (PaaS) offre un environnement d’hébergement géré, dans lequel vous pouvez déployer votre application sans avoir à gérer de machines virtuelles ni de ressources réseau.Platform-as-a-Service (PaaS) provides a managed hosting environment, where you can deploy your application without needing to manage VMs or networking resources. Azure App Service est un service PaaS.Azure App Service is a PaaS service.

La fonctionnalité Functions as a Service (FaaS) se révèle encore plus complète en vous évitant d’avoir à vous soucier de l’environnement d’hébergement.Functions-as-a-Service (FaaS) goes even further in removing the need to worry about the hosting environment. Dans un modèle FaaS, vous déployez simplement votre code et le service l’exécute automatiquement.In a FaaS model, you simply deploy your code and the service automatically runs it. Azure Functions est un exemple de service FaaS.Azure Functions is a FaaS service.

Notes

Azure Functions est une offre de calcul Azure serverless.Azure Functions is an Azure serverless compute offering. Vous pouvez lire l’article Choisir les services d’intégration et d’automatisation appropriés dans Azure pour avoir une comparaison de ce service avec d’autres offres Azure serverless, par exemple Logic Apps qui fournit des workflows serverless.You may read Choose the right integration and automation services in Azure to know how this service compares with other Azure serverless offerings, such as Logic Apps which provides serverless workflows.

Il existe toute une gamme de services entre IaaS et le modèle PaaS pur.There is a spectrum from IaaS to pure PaaS. Par exemple, des machines virtuelles Azure peuvent se mettre à l’échelle automatiquement à l’aide de groupes de machines virtuelles identiques.For example, Azure VMs can autoscale by using virtual machine scale sets. Cette fonctionnalité de mise à l’échelle automatique n’est pas strictement PaaS, mais il s’agit du type de fonctionnalité de gestion que l’on trouve dans des services PaaS.This automatic scaling capability isn't strictly PaaS, but it's the type of management feature found in PaaS services.

En général, il existe un compromis entre le contrôle et la facilité de gestion.In general, there is a tradeoff between control and ease of management. IaaS offre un maximum de contrôle, de flexibilité et de portabilité, mais vous devez approvisionner, configurer et gérer les machines virtuelles et les composants réseau que vous créez.IaaS gives the most control, flexibility, and portability, but you have to provision, configure and manage the VMs and network components you create. Les services FaaS gèrent automatiquement presque tous les aspects de l’exécution d’une application.FaaS services automatically manage nearly all aspects of running an application. Les services PaaS se situent entre les deux.PaaS services fall somewhere in between.

CritèresCriteria Virtual MachinesVirtual Machines App ServiceApp Service Service FabricService Fabric Azure FunctionsAzure Functions Azure Kubernetes ServiceAzure Kubernetes Service Container InstancesContainer Instances Azure BatchAzure Batch
Composition de l’applicationApplication composition Sans dépendanceAgnostic Applications, conteneursApplications, containers Services, exécutables invités, conteneursServices, guest executables, containers FonctionsFunctions ContainersContainers ContainersContainers Scheduled jobsScheduled jobs
DensitéDensity Sans dépendanceAgnostic Plusieurs applications par instance via des plans App ServiceMultiple apps per instance via app service plans Plusieurs services par machine virtuelleMultiple services per VM Serverless 1Serverless 1 Plusieurs conteneurs par nœudMultiple containers per node Aucune instance dédiéeNo dedicated instances Plusieurs applications par machine virtuelleMultiple apps per VM
Nombre minimal de nœudsMinimum number of nodes 1 21 2 11 5 35 3 Serverless 1Serverless 1 3 33 3 Aucun nœud dédiéNo dedicated nodes 1 41 4
Gestion de l'étatState management Sans état ou avec étatStateless or Stateful Sans étatStateless Sans état ou avec étatStateless or stateful Sans étatStateless Sans état ou avec étatStateless or Stateful Sans étatStateless Sans étatStateless
Hébergement webWeb hosting Sans dépendanceAgnostic IntégréBuilt in Sans dépendanceAgnostic Non applicableNot applicable Sans dépendanceAgnostic Sans dépendanceAgnostic NonNo
Peut être déployé vers le réseau virtuel dédié ?Can be deployed to dedicated VNet? Prise en chargeSupported Pris en charge5Supported5 Prise en chargeSupported Pris en charge 5Supported 5 Pris en chargeSupported Pris en chargeSupported Prise en chargeSupported
Connectivité hybrideHybrid connectivity Prise en chargeSupported Pris en charge 6Supported 6 Prise en chargeSupported Pris en charge 7Supported 7 Prise en chargeSupported Non pris en chargeNot supported Prise en chargeSupported

NotesNotes

  1. Avec utilisation d’un plan de consommation. Si vous utilisez un plan App Service, les fonctions sont exécutées sur les machines virtuelles allouées dans le cadre de votre plan App Service. Voir Choisir le plan de service approprié pour Azure Functions.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. SLA supérieur avec deux instances ou plus.Higher SLA with two or more instances.
  3. Recommandé pour les environnements de production.Recommended for production environments.
  4. Peut revenir au point d’origine une fois la tâche terminée.Can scale down to zero after job completes.
  5. Nécessite un environnement App Service Environment (ASE).Requires App Service Environment (ASE).
  6. Utiliser les connexions hybrides d’Azure App Service.Use Azure App Service Hybrid Connections.
  7. Nécessite un plan App Service ou un plan Premium Azure Functions.Requires App Service plan or Azure Functions Premium plan.

DevOpsDevOps

CritèresCriteria Virtual MachinesVirtual Machines App ServiceApp Service Service FabricService Fabric Azure FunctionsAzure Functions Azure Kubernetes ServiceAzure Kubernetes Service Container InstancesContainer Instances Azure BatchAzure Batch
Débogage localLocal debugging Sans dépendanceAgnostic IIS Express, autres 1IIS Express, others 1 Cluster de nœuds localLocal node cluster CLI Visual Studio ou Azure FunctionsVisual Studio or Azure Functions CLI Minikube, autresMinikube, others Runtime de conteneurs localLocal container runtime Non pris en chargeNot supported
Modèle de programmationProgramming model Sans dépendanceAgnostic Applications web et API, WebJobs pour les tâches en arrière-planWeb and API applications, WebJobs for background tasks Invité exécutable, modèle de service, modèle d’acteur, conteneursGuest executable, Service model, Actor model, Containers Fonctions avec déclencheursFunctions with triggers Sans dépendanceAgnostic Sans dépendanceAgnostic Application de ligne de commandeCommand line application
Mise à jour d’applicationApplication update Aucune prise en charge intégréeNo built-in support Emplacements de déploiementDeployment slots Mise à niveau propagée (par service)Rolling upgrade (per service) Emplacements de déploiementDeployment slots Mise à jour propagéeRolling update Non applicableNot applicable

NotesNotes

  1. Les options incluent IIS Express pour ASP.NET ou node.js (iisnode) ; le serveur web PHP ; le kit de ressources Azure pour IntelliJ et le kit de ressources Azure pour Eclipse. App Service prend également en charge le débogage à distance de l’application web déployée.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. Voir Fournisseurs, régions, schémas et versions d’API du Gestionnaire des ressources.See Resource Manager providers, regions, API versions and schemas.

ExtensibilitéScalability

CritèresCriteria Virtual MachinesVirtual Machines App ServiceApp Service Service FabricService Fabric Azure FunctionsAzure Functions Azure Kubernetes ServiceAzure Kubernetes Service Container InstancesContainer Instances Azure BatchAzure Batch
Mise à l’échelle automatiqueAutoscaling Groupes identiques de machines virtuellesVirtual machine scale sets Service intégréBuilt-in service Groupes identiques de machines virtuellesVirtual machine scale sets Service intégréBuilt-in service Mise à l’échelle automatique de pod1, mise à l’échelle automatique de cluster2Pod auto-scaling1, cluster auto-scaling2 Non pris en chargeNot supported N/AN/A
Équilibrage de chargeLoad balancer Azure Load BalancerAzure Load Balancer IntégréIntegrated Azure Load BalancerAzure Load Balancer IntégréIntegrated Azure Load Balancer ou Application GatewayAzure Load Balancer or Application Gateway Aucune prise en charge intégréeNo built-in support Azure Load BalancerAzure Load Balancer
Limite d’échelle3Scale limit3 Image de plateforme : 1 000 nœuds par groupe identique, image personnalisée : 600 nœuds par groupe identiquePlatform image: 1000 nodes per scale set, Custom image: 600 nodes per scale set 20 instances, 100 avec App Service Environment20 instances, 100 with App Service Environment 100 nœuds par groupe identique100 nodes per scale set 200 instances par application de fonction200 instances per Function app 100 nœuds par cluster (limite par défaut)100 nodes per cluster (default limit) 20 groupes de conteneurs par abonnement (limite par défaut).20 container groups per subscription (default limit). Limite de 20 cœurs (limite par défaut).20 core limit (default limit).

NotesNotes

  1. Consultez Mettre à l’échelle les pods automatiquement.See Autoscale pods.
  2. Consultez Mise à l’échelle automatique d’un cluster pour répondre aux demandes applicatives d’Azure Kubernetes Service (AKS).See Automatically scale a cluster to meet application demands on Azure Kubernetes Service (AKS).
  3. Consultez l’article Abonnement Azure et limites, quotas et contraintes de service.See Azure subscription and service limits, quotas, and constraints.

DisponibilitéAvailability

CritèresCriteria Virtual MachinesVirtual Machines App ServiceApp Service Service FabricService Fabric Azure FunctionsAzure Functions Azure Kubernetes ServiceAzure Kubernetes Service Container InstancesContainer Instances Azure BatchAzure Batch
Contrat SLASLA Contrat SLA pour les machines virtuellesSLA for Virtual Machines Contrat SLA pour App ServiceSLA for App Service Contrat SLA pour Service FabricSLA for Service Fabric Contrat SLA pour Azure FunctionsSLA for Functions SLA pour AKSSLA for AKS Contrat SLA pour Container InstancesSLA for Container Instances Contrat SLA pour Azure BatchSLA for Azure Batch
Basculement multirégionMulti region failover Traffic ManagerTraffic manager Traffic ManagerTraffic manager Traffic Manager, cluster multirégionTraffic manager, Multi-Region Cluster Azure Front DoorAzure Front Door Traffic ManagerTraffic manager Non pris en chargeNot supported Non pris en chargeNot Supported

Pour une formation guidée sur les garanties de service, consultez Services cloud principaux - Architecture Azure et garanties de service.For guided learning on Service Guarantees, review Core Cloud Services - Azure architecture and service guarantees.

SécuritéSecurity

Examinez et comprenez les contrôles de sécurité et la visibilité disponibles pour chaque serviceReview and understand the available security controls and visibility for each service

Autres critèresOther criteria

CritèresCriteria Virtual MachinesVirtual Machines App ServiceApp Service Service FabricService Fabric Azure FunctionsAzure Functions Azure Kubernetes ServiceAzure Kubernetes Service Container InstancesContainer Instances Azure BatchAzure Batch
SSLSSL Configuré au niveau de la machine virtuelleConfigured in VM Prise en chargeSupported Prise en chargeSupported Prise en chargeSupported Contrôleur d’entréeIngress controller Utilisez le conteneur side-carUse sidecar container Prise en chargeSupported
CoûtCost Windows, LinuxWindows, Linux Tarification d’App ServiceApp Service pricing Tarification de Service FabricService Fabric pricing Tarification d’Azure FunctionsAzure Functions pricing Tarification d’AKSAKS pricing Tarification Container InstancesContainer Instances pricing Tarification d’Azure BatchAzure Batch pricing
Styles d’architecture compatiblesSuitable architecture styles Multiniveau, Big Compute (HPC)N-Tier, Big compute (HPC) Web-File d’attente-Worker, MultiniveauWeb-Queue-Worker, N-Tier Microservices, architecture basée sur les événementsMicroservices, Event-driven architecture Microservices, architecture basée sur les événementsMicroservices, Event-driven architecture Microservices, architecture basée sur les événementsMicroservices, Event-driven architecture Microservices, automatisation des tâches, programmes de traitement par lotsMicroservices, task automation, batch jobs Big Compute (HPC)Big compute (HPC)

Le résultat de cet organigramme est un point de départ à prendre en considération.The output from this flowchart is a starting point for consideration. Ensuite, effectuez une évaluation plus détaillée du service pour voir s’il répond à vos besoins.Next, perform a more detailed evaluation of the service to see if it meets your needs.

Considérer les limites et les coûtsConsider limits and cost

Effectuez une évaluation plus détaillée, en examinant les aspects suivants du service :Perform a more detailed evaluation looking at the following aspects of the service:

Étapes suivantesNext steps