Escolha 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 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.

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

Definições:

  • "Lift and shift" é uma estratégia de migração de uma carga de trabalho para a nuvem sem recriar o aplicativo ou fazer alterações de código. Também chamado de nova hospedagem. Para obter mais informações, confira 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. Você pode achar que o candidato inicial não é adequado para seu aplicativo ou carga de trabalho específica. 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 do Azure. Um serviço gerenciado que hospeda aplicativos Web, back-ends de aplicativo móvel, APIs RESTful ou processos empresariais automatizados.
  • Aplicativos do Azure Spring. Um serviço gerenciado projetado e otimizado para hospedar aplicativos Spring Boot.
  • AKS (Serviço de Kubernetes do Azure). Um serviço de Kubernetes gerenciado para executar aplicativos em contêineres.
  • Lote do Azure. Um serviço gerenciado para execução de aplicativos HPC (computação de alto desempenho) e paralelos em larga escala
  • Instâncias de Contêiner do Azure. A maneira mais rápida e simples para executar um contêiner no Azure, sem a necessidade de provisionar máquinas virtuais nem adotar um serviço de nível superior.
  • Azure Functions. Um serviço FaaS gerenciado.
  • Azure Service Fabric. Uma plataforma de sistemas distribuídos que pode ser executado em vários ambientes, incluindo o Azure ou no local.
  • Máquinas Virtuais do Azure. Implantar e gerenciar VMs dentro de uma rede virtual do Azure.
  • Aplicativos de Contêiner do Azure. Um serviço gerenciado criado no Kubernetes, que simplifica a implantação de aplicativos em contêineres em um ambiente sem servidor.
  • Red Hat OpenShift do Azure. Um cluster OpenShift totalmente gerenciado para executar contêineres em produção com o Kubernetes.

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. (Também há SaaS, software como serviço, que está fora do escopo deste artigo.) É útil entender as diferenças.

A IaaS (infraestrutura como serviço) permite que você provisione VMs individuais junto cm 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. Serviço de Aplicativo do Azure e Aplicativos de Contêiner do Azure são serviços de 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ê implanta seu código e o serviço o executa automaticamente. O Azure Functions é um serviço FaaS.

Observação

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á um espectro de IaaS para PaaS puro. Por exemplo, as VMs do Azure podem ser automaticamente dimensionadas usando conjuntos de dimensionamento de máquinas virtuais. Esse recurso de dimensionamento automático não é estritamente de PaaS, mas é do tipo de recurso de gerenciamento encontrado em serviços de PaaS.

Em geral, há uma compensação entre o controle e a facilidade de gerenciamento. O IaaS oferece mais controle, flexibilidade e portabilidade, mas você precisa provisionar, configurar e gerenciar as VMs e os componentes de rede que você criar. Os serviços de 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 Apps Service Fabric Funções do Azure Serviço de Kubernetes do Azure Instâncias de Contêiner Lote do Azure Aplicativos de Contêiner do Azure Red Hat OpenShift no 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 Contêineres Contêineres
Densidade Independente Vários aplicativos por instância por meio do plano 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 Sem servidor Vários contêineres por nó
Número mínimo de nós 1 2 1 2 5 3 Sem servidor 1 3 3 Sem nós dedicados 1 4 Sem servidor 6 8
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 Com Estado ou Sem Estado Com Estado ou Sem Estado
Hospedagem na Web Independente Interno Interno Independente Não aplicável Independente Independente No Independente Independente
Pode ser implantado para VNet dedicada? Com suporte Com suporte5 Com suporte Com suporte Com suporte 5 Com suporte Com suporte 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 Com 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. Confira Escolher o plano de serviço correto para o 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 um plano do Serviço de Aplicativo ou plano Premium do Azure Functions.
  8. 3 para nós mestres e 3 para nós de trabalho.

DevOps

Critérios Máquinas Virtuais Serviço de Aplicativo Azure Spring Apps Service Fabric Funções do Azure Serviço de Kubernetes do Azure Instâncias de Contêiner Lote do Azure Aplicativos de Contêiner do Azure Red Hat OpenShift no 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 runtime do contêiner local Minikube, outros
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 Independente Independente
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 Gerenciamento da revisão Atualização sem interrupção

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 Apps Service Fabric Funções do Azure Serviço de Kubernetes do Azure Instâncias de Contêiner Lote do Azure Aplicativos de Contêiner do Azure Red Hat OpenShift no 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 Regras de dimensionamento4 Dimensionamento automático do pod, dimensionamento automático do cluster
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 Integrado Azure Load Balancer ou Gateway de Aplicativo
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). 5 Ambientes por região, 20 aplicativos de Contêiner por ambiente, 30 Réplicas por aplicativo de contêiner 60 nós por cluster (limite padrão)

Observações

  1. Confira Dimensionamento automático de pods.
  2. Confira Dimensionar automaticamente um cluster para atender às demandas de aplicativo no AKS (Serviço de Kubernetes do Azure).
  3. Consulte Assinatura do Azure e limites de serviço, cotas e restrições.
  4. Confira Definir regras de colocação em escala em Aplicativos de Contêiner do Azure.

Disponibilidade

Critérios Máquinas Virtuais Serviço de Aplicativo Azure Spring Apps Service Fabric Funções do Azure Serviço de Kubernetes do Azure Instâncias de Contêiner Lote do Azure Aplicativos de Contêiner do Azure Red Hat OpenShift no Azure
Contrato de Nível de Serviço SLA para Máquinas Virtuais SLA para Serviço de Aplicativo SLA para Aplicativos do Azure Spring SLA para Service Fabric SLA para Functions SLA para AKS SLA para as Instâncias de Contêiner SLA para o Lote do Azure SLA para Aplicativos de Contêiner do Azure SLA para Red Hat OpenShift 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 Sem suporte Sem suporte

Para obter aprendizado guiado sobre Garantias de Serviço, examine Core Serviços de Nuvem – garantias de serviço e arquitetura 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 Aplicativos do App Spring Service Fabric Funções do Azure Serviço de Kubernetes do Azure Instâncias de Contêiner Lote do Azure Aplicativos de Contêiner do Azure Red Hat OpenShift no Azure
SSL Configurado na VM Com suporte Com suporte Com suporte Com suporte Controlador de entrada Usar contêiner sidecar Com suporte Controlador de entrada Com suporte
Custo Windows, Linux Preços do Serviço de Aplicativo Preços do Azure Spring Apps 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 Preços do Aplicativos de Contêiner do Azure Preços do Red Hat OpenShift no 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) Microsserviços, arquitetura orientada a eventos Microsserviços, arquitetura orientada a eventos

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 custo

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

Próximas etapas