Escolha um serviço de computação do Azure para seu aplicativoChoose an Azure compute service for your application

O Azure oferece várias maneiras de hospedar o código do seu aplicativo.Azure offers a number of ways to host your application code. O termo computação refere-se ao modelo de hospedagem para os recursos de computação em que seu aplicativo é executado.The term compute refers to the hosting model for the computing resources that your application runs on. O fluxograma a seguir o ajudará a escolher um serviço de computação para o aplicativo.The following flowchart will help you to choose a compute service for your application.

Se o aplicativo tem várias cargas de trabalho, avalie cada carga de trabalho separadamente.If your application consists of multiple workloads, evaluate each workload separately. Uma solução completa pode incorporar dois ou mais serviços de computação.A complete solution may incorporate two or more compute services.

Escolher um serviço candidatoChoose a candidate service

Use o fluxograma a seguir para selecionar um serviço de computação candidato.Use the following flowchart to select a candidate compute service.

Árvore de decisão para serviços de computação do Azure

Definições:Definitions:

  • "Computar e deslocar" é uma estratégia para migrar uma carga de trabalho para a nuvem sem reformular o aplicativo ou fazer alterações de código."Lift and shift" is a strategy for migrating a workload to the cloud without redesigning the application or making code changes. Também chamado de nova hospedagem.Also called rehosting. Para obter mais informações, consulte a Central de migrações do Azure.For more information, see Azure migration center.
  • Nuvem otimizada é uma estratégia de migração para a nuvem por meio da refatoração de um aplicativo para aproveitar os recursos e funcionalidades de nuvem nativos.Cloud optimized is a strategy for migrating to the cloud by refactoring an application to take advantage of cloud-native features and capabilities.

A saída deste fluxograma é um ponto de partida para a consideração.The output from this flowchart is a starting point for consideration. Em seguida, execute uma avaliação mais detalhada do serviço para ver se ele atende às suas necessidades.Next, perform a more detailed evaluation of the service to see if it meets your needs.

Entender os recursos básicosUnderstand the basic features

Se você não estiver familiarizado com o serviço do Azure selecionado na etapa anterior, leia a documentação de visão geral para entender os conceitos básicos do serviço.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.

  • Serviço de aplicativo.App Service. Um serviço gerenciado para hospedar aplicativos Web, back-ends de aplicativo móvel, APIs RESTful ou processos de negócios automatizados.A managed service for hosting web apps, mobile app back ends, RESTful APIs, or automated business processes.
  • AKs ( serviço kubernetes do Azure ).Azure Kubernetes Service (AKS). Um serviço gerenciado kubernetes para executar aplicativos em contêineres.A managed Kubernetes service for running containerized applications.
  • Lote.Batch. Um serviço gerenciado para executar aplicativos paralelos de grande escala e de HPC (computação de alto desempenho)A managed service for running large-scale parallel and high-performance computing (HPC) applications
  • Instâncias de contêiner.Container Instances. A maneira mais rápida e simples de executar um contêiner no Azure, sem precisar provisionar máquinas virtuais e sem precisar adotar um serviço de nível superior.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.
  • Funçõesdo.Functions. Um serviço FaaS gerenciado.A managed FaaS service.
  • Service Fabric.Service Fabric. Uma plataforma de sistemas distribuídos que pode ser executada em vários ambientes, incluindo o Azure ou local.A distributed systems platform that can run in many environments, including Azure or on premises.
  • Máquinas virtuais.Virtual machines. Implante e gerencie VMs dentro de uma rede virtual do Azure.Deploy and manage VMs inside an Azure virtual network.

Entender os modelos de hospedagemUnderstand the hosting models

Os serviços de nuvem, incluindo os serviços do Azure, geralmente se enquadram em três categorias: IaaS, PaaS ou FaaS.Cloud services, including Azure services, generally fall into three categories: IaaS, PaaS, or FaaS. (Também existe o SaaS, software como serviço, que está fora do escopo deste artigo.) É útil entender as diferenças.(There is also SaaS, software-as-a-service, which is out of scope for this article.) It's useful to understand the differences.

A Infraestrutura como serviço (IaaS) permite que você provisione VMs individuais junto com os componentes de armazenamento e rede associados.Infrastructure-as-a-Service (IaaS) lets you provision individual VMs along with the associated networking and storage components. Depois implante os software e aplicativos que desejar nas VMs.Then you deploy whatever software and applications you want onto those VMs. Esse modelo é o mais próximo a um ambiente local tradicional, com a exceção de que a Microsoft gerencia a infraestrutura.This model is the closest to a traditional on-premises environment, except that Microsoft manages the infrastructure. Você ainda gerencia as VMs individuais.You still manage the individual VMs.

A Plataforma como serviço (PaaS) fornece um ambiente de hospedagem gerenciado, no qual você pode implantar seu aplicativo sem a necessidade de gerenciar VMs ou recursos de rede.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 serviço é um serviço PaaS.Azure App Service is a PaaS service.

As Funções como serviço (FaaS) vão ainda mais além na remoção da necessidade de se preocupar sobre o ambiente de hospedagem.Functions-as-a-Service (FaaS) goes even further in removing the need to worry about the hosting environment. Em um modelo FaaS, você simplesmente implanta seu código e o serviço o executa automaticamente.In a FaaS model, you simply deploy your code and the service automatically runs it. As Azure Functions são um serviço FaaS.Azure Functions are a FaaS service.

Há uma variedade de IaaS para PaaS puro.There is a spectrum from IaaS to pure PaaS. Por exemplo, as VMs do Azure podem usar o dimensionamento automático usando conjuntos de dimensionamento de máquinas virtuais.For example, Azure VMs can autoscale by using virtual machine scale sets. Esse recurso de dimensionamento automático não é estritamente PaaS, mas é o tipo de recurso de gerenciamento encontrado nos serviços de PaaS.This automatic scaling capability isn't strictly PaaS, but it's the type of management feature found in PaaS services.

Em geral, há uma compensação entre o controle e a facilidade de gerenciamento.In general, there is a tradeoff between control and ease of management. A IaaS oferece o máximo de controle, flexibilidade e portabilidade, mas você precisa provisionar, configurar e gerenciar as VMs e os componentes de rede que você cria.IaaS gives the most control, flexibility, and portability, but you have to provision, configure and manage the VMs and network components you create. Os serviços FaaSs gerenciam automaticamente quase todos os aspectos da execução de um aplicativo.FaaS services automatically manage nearly all aspects of running an application. Os serviços de PaaS estão em algum lugar entre eles.PaaS services fall somewhere in between.

Considerar limites e custosConsider limits and cost

Em seguida, execute uma avaliação mais detalhada, examinando os seguintes aspectos do serviço:Next, perform a more detailed evaluation, looking at the following aspects of the service:

Com base nessa análise, você pode descobrir que o candidato inicial não é adequado para seu aplicativo ou carga de trabalho particular.Based on this analysis, you may find that the initial candidate isn't suitable for your particular application or workload. Nesse caso, expanda sua análise para incluir outros serviços de computação.In that case, expand your analysis to include other compute services.

As tabelas a seguir contêm pontos de comparação adicionais, que podem ser úteis ao escolher.The following tables contain additional comparison points, which may be useful when choosing.

Modelo de hospedagemHosting model

CritériosCriteria Máquinas VirtuaisVirtual Machines Serviço de AplicativoApp Service Service FabricService Fabric Funções do AzureAzure Functions Serviço de Kubernetes do AzureAzure Kubernetes Service Instâncias de ContêinerContainer Instances Lote do AzureAzure Batch
Composição de aplicativosApplication composition IndependenteAgnostic Aplicativos, contêineresApplications, containers Serviços, executáveis do convidado, contêineresServices, guest executables, containers FunçõesFunctions ContêineresContainers ContêineresContainers Trabalhos agendadosScheduled jobs
DensidadeDensity IndependenteAgnostic Vários aplicativos por instância via planos do serviço de aplicativoMultiple apps per instance via app service plans Vários serviços por VMMultiple services per VM Sem servidor 1Serverless 1 Vários contêineres por nóMultiple containers per node Sem instâncias dedicadasNo dedicated instances Vários aplicativos por VMMultiple apps per VM
Número mínimo de nósMinimum number of nodes 1 21 2 11 5 35 3 Sem servidor 1Serverless 1 3 33 3 Sem nós dedicadosNo dedicated nodes 1 41 4
Gerenciamento de estadoState management Com Estado ou Sem EstadoStateless or Stateful Sem estadoStateless Com estado ou sem estadoStateless or stateful Sem estadoStateless Com Estado ou Sem EstadoStateless or Stateful Sem estadoStateless Sem estadoStateless
Hospedagem na WebWeb hosting IndependenteAgnostic InternoBuilt in IndependenteAgnostic Não AplicávelNot applicable IndependenteAgnostic IndependenteAgnostic NãoNo
Pode ser implantado para VNet dedicada?Can be deployed to dedicated VNet? Com suporteSupported Com suporte5Supported5 Com suporteSupported Com suporte 5Supported 5 Com suporteSupported Com suporteSupported Com suporteSupported
Conectividade híbridaHybrid connectivity Com suporteSupported Com suporte 6Supported 6 Com suporteSupported Com suporte 7Supported 7 Com suporteSupported Sem suporteNot supported Com suporteSupported

ObservaçõesNotes

  1. Se estiver usando o plano de consumo. Se estiver usando o plano do serviço de aplicativo, as funções são executadas nas VMs alocadas para seu plano do serviço de aplicativo. Consulte escolher o plano de serviço correto para 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 superior com duas ou mais instâncias.Higher SLA with two or more instances.
  3. Recomendado para ambientes de produção.Recommended for production environments.
  4. Pode reduzir verticalmente até zero após o trabalho ser concluído.Can scale down to zero after job completes.
  5. Requer ASE (Ambiente de Serviço de Aplicativo).Requires App Service Environment (ASE).
  6. Use Conexões Híbridas do Serviço de Aplicativo do Azure.Use Azure App Service Hybrid Connections.
  7. Requer o Plano do Serviço de Aplicativo.Requires App Service plan.

DevOpsDevOps

CritériosCriteria Máquinas VirtuaisVirtual Machines Serviço de AplicativoApp Service Service FabricService Fabric Funções do AzureAzure Functions Serviço de Kubernetes do AzureAzure Kubernetes Service Instâncias de ContêinerContainer Instances Lote do AzureAzure Batch
Depuração localLocal debugging IndependenteAgnostic IIS Express, outros 1IIS Express, others 1 Cluster de nó localLocal node cluster Visual Studio ou CLI do Azure FunctionsVisual Studio or Azure Functions CLI Minikube, outrosMinikube, others runtime do contêiner localLocal container runtime Sem suporteNot supported
Modelo de programaçãoProgramming model IndependenteAgnostic Aplicativos da Web e da API, Trabalhos da Web para tarefas em segundo planoWeb and API applications, WebJobs for background tasks Executável convidado, modelo de Serviço, o modelo de Ator, ContêineresGuest executable, Service model, Actor model, Containers Funções com gatilhosFunctions with triggers IndependenteAgnostic IndependenteAgnostic Aplicativo de linha de comandoCommand line application
Atualização do aplicativoApplication update Não há suporte internoNo built-in support Slots de implantaçãoDeployment slots Atualização sem interrupção (por serviço)Rolling upgrade (per service) Slots de implantaçãoDeployment slots Atualização sem interrupçãoRolling update Não AplicávelNot applicable

ObservaçõesNotes

  1. As opções incluem IIS Express para ASP.NET ou node.js (iisnode); Servidor Web PHP; Azure Toolkit for IntelliJ, Azure Toolkit for Eclipse. O serviço de aplicativo também dá suporte à depuração remota de aplicativo Web implantado.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. Consulte Provedores, regiões, versões de API e esquemas do Resource Manager.See Resource Manager providers, regions, API versions and schemas.

EscalabilidadeScalability

CritériosCriteria Máquinas VirtuaisVirtual Machines Serviço de AplicativoApp Service Service FabricService Fabric Funções do AzureAzure Functions Serviço de Kubernetes do AzureAzure Kubernetes Service Instâncias de ContêinerContainer Instances Lote do AzureAzure Batch
Dimensionamento automáticoAutoscaling conjuntos de escala de máquina virtualVirtual machine scale sets Serviço internoBuilt-in service conjuntos de escala de máquina virtualVirtual machine scale sets Serviço internoBuilt-in service Dimensionamento automático de Pod 1 , dimensionamento automático do cluster 2Pod auto-scaling1, cluster auto-scaling2 Sem suporteNot supported N/DN/A
Balanceador de cargaLoad balancer Azure Load BalancerAzure Load Balancer IntegradoIntegrated Azure Load BalancerAzure Load Balancer IntegradoIntegrated Azure Load Balancer ou gateway de aplicativoAzure Load Balancer or Application Gateway Não há suporte internoNo built-in support Azure Load BalancerAzure Load Balancer
Limite de escala3Scale limit3 Imagem da plataforma: 1000 nós por conjunto de dimensionamento, imagem personalizada: 600 nós por conjunto de dimensionamentoPlatform image: 1000 nodes per scale set, Custom image: 600 nodes per scale set 20 instâncias, 100 com Ambiente do Serviço de Aplicativo20 instances, 100 with App Service Environment 100 nós por conjunto de dimensionamento100 nodes per scale set 200 instâncias por aplicativo de Função200 instances per Function app 100 nós por cluster (limite padrão)100 nodes per cluster (default limit) 20 grupos de contêiner por assinatura (limite padrão).20 container groups per subscription (default limit). Limite de 20 núcleos (limite padrão).20 core limit (default limit).

ObservaçõesNotes

  1. Confira autoescala pods.See Autoscale pods.
  2. Consulte dimensionar automaticamente um cluster para atender às demandas de aplicativos no serviço de kubernetes do Azure (AKs).See Automatically scale a cluster to meet application demands on Azure Kubernetes Service (AKS).
  3. Confira assinatura do Azure e limites de serviço, cotas e restrições.See Azure subscription and service limits, quotas, and constraints.

DisponibilidadeAvailability

CritériosCriteria Máquinas VirtuaisVirtual Machines Serviço de AplicativoApp Service Service FabricService Fabric Funções do AzureAzure Functions Serviço de Kubernetes do AzureAzure Kubernetes Service Instâncias de ContêinerContainer Instances Lote do AzureAzure Batch
Contrato de Nível de ServiçoSLA SLA para Máquinas VirtuaisSLA for Virtual Machines SLA para Serviço de AplicativoSLA for App Service SLA para Service FabricSLA for Service Fabric SLA para FunctionsSLA for Functions SLA para AKSSLA for AKS SLA para as Instâncias de ContêinerSLA for Container Instances SLA para o Lote do AzureSLA for Azure Batch
Failover de várias regiõesMulti region failover Gerenciador de tráfegoTraffic manager Gerenciador de tráfegoTraffic manager Gerenciador de tráfego, Cluster de Várias RegiõesTraffic manager, Multi-Region Cluster Azure Front DoorAzure Front Door Gerenciador de tráfegoTraffic manager Sem suporteNot supported Sem suporteNot Supported

Para aprendizado guiado sobre garantias de serviço, examine os principais serviços de nuvem-garantias de arquitetura e serviço do Azure.For guided learning on Service Guarantees, review Core Cloud Services - Azure architecture and service guarantees.

Outros critériosOther criteria

CritériosCriteria Máquinas VirtuaisVirtual Machines Serviço de AplicativoApp Service Service FabricService Fabric Funções do AzureAzure Functions Serviço de Kubernetes do AzureAzure Kubernetes Service Instâncias de ContêinerContainer Instances Lote do AzureAzure Batch
SSLSSL Configurado na VMConfigured in VM Com suporteSupported Com suporteSupported Com suporteSupported Controlador de entradaIngress controller Usar contêiner sidecarUse sidecar container Com suporteSupported
CustoCost Windows, LinuxWindows, Linux Preços do Serviço de AplicativoApp Service pricing Preços do Service FabricService Fabric pricing Preços de Azure FunctionsAzure Functions pricing Preços do AKSAKS pricing Preço das Instâncias de ContêinerContainer Instances pricing Preço do Lote do AzureAzure Batch pricing
Estilos de arquitetura adequadosSuitable architecture styles N camadas, Big compute (HPC)N-Tier, Big compute (HPC) Trabalhado de Fila da Web, N CamadasWeb-Queue-Worker, N-Tier Microsserviços, arquitetura orientada a eventosMicroservices, Event-driven architecture Microsserviços, arquitetura orientada a eventosMicroservices, Event-driven architecture Microsserviços, arquitetura orientada a eventosMicroservices, Event-driven architecture Microsserviços, automação de tarefas, trabalhos em lotesMicroservices, task automation, batch jobs Big compute (HPC)Big compute (HPC)

A saída deste fluxograma é um ponto de partida para a consideração.The output from this flowchart is a starting point for consideration. Em seguida, execute uma avaliação mais detalhada do serviço para ver se ele atende às suas necessidades.Next, perform a more detailed evaluation of the service to see if it meets your needs.

Entender os recursos básicosUnderstand the basic features

Se você não estiver familiarizado com o serviço do Azure selecionado na etapa anterior, leia um dos seguintes artigos de visão geral:If you're not familiar with the Azure service selected in the previous step, read one of the following overview articles:

Considerar limites e custosConsider limits and cost

Em seguida, execute uma avaliação mais detalhada, examinando os seguintes aspectos do serviço:Next, perform a more detailed evaluation, looking at the following aspects of the service:

Com base nessa análise, você pode descobrir que o candidato inicial não é adequado para seu aplicativo ou carga de trabalho particular.Based on this analysis, you may find that the initial candidate isn't suitable for your particular application or workload. Nesse caso, expanda sua análise para incluir outros serviços de computação.In that case, expand your analysis to include other compute services.

Próximas etapasNext steps