Escolher um serviço de computação do Azure

Serviço de Aplicativo
Serviço de Kubernetes

O Azure oferece várias maneiras de hospedar o código do seu aplicativo. O termo computação refere-se ao modelo de hospedagem para os recursos de computação em que seu aplicativo é executado. O fluxograma a seguir o ajudará a escolher um serviço de computação para o aplicativo.

Se o aplicativo tem várias cargas de trabalho, avalie cada carga de trabalho separadamente. Uma solução completa pode incorporar dois ou mais serviços de computação.

Escolher um serviço candidato

Use o fluxograma a seguir para selecionar um serviço de computação candidato.

Decision tree for Azure compute services

Definições:

  • "Lift and shift" é uma estratégia para migrar uma carga de trabalho para a nuvem sem reprojetar o aplicativo ou fazer alterações de código. Também chamado de rehosting. Para obter mais informações, consulte o Centro de migração e modernização do Azure.
  • 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.

A saída desse fluxograma é um ponto de partida a ser considerado. Em seguida, execute uma avaliação mais detalhada do serviço para ver se ele atende às suas necessidades.

Este artigo inclui várias tabelas que podem ajudá-lo a tomar essas decisões de compensação. Com base nessa análise, você pode descobrir que o candidato inicial não é adequado para seu aplicativo ou carga de trabalho específico. Nesse caso, expanda sua análise para incluir outros serviços de computação.

Entender os recursos básicos

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 as noções básicas do serviço.

  • Serviço de Aplicativo. Um serviço gerenciado que hospeda aplicativos Web, back-ends de aplicativo móvel, APIs RESTful ou processos empresariais automatizados.
  • Azure Spring Cloud. Um serviço gerenciado projetado e otimizado para hospedar aplicativos Spring Boot.
  • Serviço de Kubernetes do Azure (AKS). Um serviço de Kubernetes gerenciado para executar aplicativos em contêineres.
  • Lote. Um serviço gerenciado para executar aplicativos HPC (computação paralela e de alto desempenho) em larga escala
  • Instâncias de Contêiner. 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.
  • Funções. Um serviço faas gerenciado.
  • Service Fabric. Uma plataforma de sistemas distribuídos que pode ser executada em muitos ambientes, incluindo o Azure ou local.
  • Máquinas virtuais. Implantar e gerenciar VMs dentro de uma rede virtual do Azure.

Entender os modelos de hospedagem

Os serviços de nuvem, incluindo os serviços do Azure, geralmente se enquadram em três categorias: IaaS, PaaS ou FaaS. (Há também SaaS, software como serviço, que está fora do escopo deste artigo.) É útil entender as diferenças.

A IaaS (infraestrutura como serviço) permite provisionar VMs individuais junto com os componentes de rede e armazenamento associados. Depois implante os software e aplicativos que desejar nas VMs. Esse modelo é o mais próximo a um ambiente local tradicional, com a exceção de que a Microsoft gerencia a infraestrutura. Você ainda gerencia as VMs individuais.

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. O Serviço de Aplicativo do Azure é PaaS.

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. Em um modelo FaaS, você simplesmente implanta seu código e o serviço o executa automaticamente. O Azure Functions é um serviço FaaS.

Observação

Azure Functions é uma oferta de computação sem servidor do Azure. Você pode ler Escolher os serviços de integração e automação corretos no Azure para saber como esse serviço se compara com outras ofertas sem servidor do Azure, como aplicativos lógicos que fornecem fluxos de trabalho sem servidor.

Há uma variedade de IaaS para PaaS puro. Por exemplo, as VMs do Azure podem dimensionar automaticamente usando conjuntos de dimensionamento de máquinas virtuais. Esse recurso de dimensionamento automático não é estritamente PaaS, mas é o tipo de recurso de gerenciamento encontrado nos serviços de PaaS.

Em geral, há uma compensação entre o controle e a facilidade de gerenciamento. O IaaS oferece o maior controle, flexibilidade e portabilidade, mas você precisa provisionar, configurar e gerenciar as VMs e os componentes de rede criados. Os serviços do FaaS gerenciam automaticamente quase todos os aspectos da execução de um aplicativo. Os serviços de PaaS ficam em algum lugar no meio.

Critérios Máquinas Virtuais Serviço de Aplicativo Azure Spring Cloud Service Fabric Funções do Azure Serviço de Kubernetes do Azure Instâncias de Contêiner Lote do Azure
Composição do aplicativo Independente Aplicativos, contêineres Aplicativos, microsserviços Serviços, executáveis do convidado, contêineres Funções Contêineres Contêineres Trabalhos agendados
Densidade Independente Vários aplicativos por instância via planos do serviço de aplicativo Vários aplicativos por instância de serviço Vários serviços por VM Sem servidor 1 Vários contêineres por nó Sem instâncias dedicadas Vários aplicativos por VM
Número mínimo de nós 1 2 1 2 5 3 Sem servidor 1 3 3 Sem nós dedicados 1 4
Gerenciamento de estado Com Estado ou Sem Estado Sem estado Sem estado Com estado ou sem estado Sem estado Com Estado ou Sem Estado Sem estado Sem estado
Hospedagem na Web Independente Interno Interno Independente Não aplicável Independente Independente Não
Pode ser implantado para VNet dedicada? Com suporte Com suporte5 Com suporte Com suporte Com suporte 5 Com suporte Com suporte Com suporte
Conectividade híbrida Com suporte Com suporte 6 Com suporte Com suporte Com suporte 7 Com suporte Sem suporte Com suporte

Observações

  1. Se estiver usando o plano de Consumo. Se estiver usando o plano de Serviço de Aplicativo, as funções serão executadas nas VMs alocadas ao seu plano de Serviço de Aplicativo. Consulte Escolher o plano de serviço correto para Azure Functions.
  2. SLA superior com duas ou mais instâncias.
  3. Recomendado para ambientes de produção.
  4. Pode reduzir verticalmente até zero após o trabalho ser concluído.
  5. Requer ASE (Ambiente de Serviço de Aplicativo).
  6. Use Conexões Híbridas do Serviço de Aplicativo do Azure.
  7. Requer Serviço de Aplicativo plano ou plano Azure Functions Premium.

DevOps

Critérios Máquinas Virtuais Serviço de Aplicativo Azure Spring Cloud Service Fabric Funções do Azure Serviço de Kubernetes do Azure Instâncias de Contêiner Lote do Azure
Depuração local Independente IIS Express, outros 1 Visual Studio Code, Intellij, Eclipse Cluster de nó local Visual Studio ou CLI do Azure Functions Minikube, outros runtime do contêiner local Sem suporte
Modelo de programação Independente Aplicativos da Web e da API, Trabalhos da Web para tarefas em segundo plano Spring Boot, Steeltoe Executável convidado, modelo de Serviço, o modelo de Ator, Contêineres Funções com gatilhos Independente Independente Aplicativo de linha de comando
Atualização do aplicativo Não há suporte interno Slots de implantação Atualização sem interrupção, implantação azul-verde Atualização sem interrupção (por serviço) Slots de implantação Atualização sem interrupção Não aplicável

Observações

  1. As opções incluem o IIS Express para ASP.NET ou node.js (iisnode); servidor Web PHP; Kit de Ferramentas do Azure para IntelliJ, Kit de Ferramentas do Azure para Eclipse. O Serviço de Aplicativo também dá suporte para depuração remota de aplicativo Web implantado.
  2. Consulte Provedores, regiões, versões de API e esquemas do Resource Manager.

Escalabilidade

Critérios Máquinas Virtuais Serviço de Aplicativo Azure Spring Cloud Service Fabric Funções do Azure Serviço de Kubernetes do Azure Instâncias de Contêiner Lote do Azure
Dimensionamento automático conjuntos de escala de máquina virtual Serviço interno Serviço interno conjuntos de escala de máquina virtual Serviço interno Dimensionamento automático do pod1, dimensionamento automático do cluster2 Sem suporte N/D
Balanceador de carga Azure Load Balancer Integrado Integrado Azure Load Balancer Integrado Azure Load Balancer ou Gateway de Aplicativo Não há suporte interno Azure Load Balancer
Limite de escala3 Imagem da plataforma: 1000 nós por conjunto de dimensionamento, imagem personalizada: 600 nós por conjunto de dimensionamento 30 instâncias, 100 com Ambiente do Serviço de Aplicativo 500 instâncias de aplicativo no Standard 100 nós por conjunto de dimensionamento 200 instâncias por aplicativo de Função 100 nós por cluster (limite padrão) 20 grupos de contêiner por assinatura (limite padrão). Limite de 20 núcleos (limite padrão).

Observações

  1. Consulte pods de dimensionamento automático.
  2. Veja Dimensionar automaticamente um cluster para atender às demandas do aplicativo no AKS (Serviço de Kubernetes do Azure).
  3. Consulte limites, cotas e restrições de serviço e assinatura do Azure.

Disponibilidade

Critérios Máquinas Virtuais Serviço de Aplicativo Azure Spring Cloud Service Fabric Funções do Azure Serviço de Kubernetes do Azure Instâncias de Contêiner Lote do Azure
Contrato de Nível de Serviço SLA para Máquinas Virtuais SLA para Serviço de Aplicativo SLA para Azure Spring Cloud SLA para Service Fabric SLA para Functions SLA para AKS SLA para as Instâncias de Contêiner SLA para o Lote do Azure
Failover de várias regiões Gerenciador de tráfego Gerenciador de tráfego Gerenciador de tráfego, Cluster de Várias Regiões Azure Front Door Gerenciador de tráfego Sem suporte Sem suporte

Para obter aprendizado guiado sobre garantias de serviço, examine as principais Serviços de Nuvem – garantias de arquitetura e serviço do Azure.

Segurança

Examinar e entender os controles de segurança disponíveis e a visibilidade de cada serviço

Outros critérios

Critérios Máquinas Virtuais Serviço de Aplicativo App Spring Cloud Service Fabric Funções do Azure Serviço de Kubernetes do Azure Instâncias de Contêiner Lote do Azure
SSL Configurado na VM Com suporte Com suporte Com suporte Com suporte Controlador de entrada Usar contêiner sidecar Com suporte
Cost Windows, Linux Preços do Serviço de Aplicativo Preços do Azure Spring Cloud Preços do Service Fabric Preços do Azure Functions Preços do AKS Preço das Instâncias de Contêiner Preço do Lote do Azure
Estilos de arquitetura adequados N camadas, Big compute (HPC) Trabalhado de Fila da Web, N Camadas Spring Boot, Microsserviços Microsserviços, arquitetura orientada a eventos Microsserviços, arquitetura orientada a eventos Microsserviços, arquitetura orientada a eventos Microsserviços, automação de tarefas, trabalhos em lotes Big compute (HPC)

A saída desse fluxograma é um ponto de partida a ser considerado. Em seguida, execute uma avaliação mais detalhada do serviço para ver se ele atende às suas necessidades.

Considerar limites e custos

Execute uma avaliação mais detalhada examinando os seguintes aspectos do serviço:

Próximas etapas