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 em que seu aplicativo é executado. Este artigo ajuda a escolher um serviço de computação para seu aplicativo.
Escolher um serviço candidato
Use o fluxograma a seguir para selecionar um serviço de computação candidato.
Este diagrama refere-se a estas duas estratégias de migração:
- 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 hospedagem novamente. 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 é o ponto de partida. Em seguida, avalie o serviço mais detalhadamente para ver se ele atende às suas necessidades.
Este artigo inclui várias tabelas que podem ajudá-lo a escolher um serviço. O candidato inicial do fluxograma pode ser inadequado para seu aplicativo ou carga de trabalho. Nesse caso, expanda sua análise para incluir outros serviços de computação.
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.
Entender os recursos básicos
Se você não estiver familiarizado com o serviço do Azure selecionado na seção anterior, consulte esta documentação de visão geral:
- Máquinas Virtuais do Azure. Um serviço em que você implanta e gerencia VMs (máquinas virtuais) dentro de uma rede virtual do Azure.
- 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.
- Azure Functions. Um serviço FaaS (função gerenciada como serviço).
- AKS (Serviço de Kubernetes do Azure). Um serviço de Kubernetes gerenciado para executar aplicativos em contêineres.
- 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.
- Instâncias de Contêiner do Azure. Esse serviço é uma maneira rápida e simples de executar um contêiner no Azure. Você não precisa provisionar máquinas virtuais nem adotar um serviço de nível superior.
- Red Hat OpenShift no Azure. Um cluster do OpenShift totalmente gerenciado para executar contêineres em produção com o Kubernetes.
- Azure Spring Apps. Um serviço gerenciado projetado e otimizado para hospedar aplicativos Spring Boot.
- Azure Service Fabric. Uma plataforma de sistemas distribuídos que pode ser executado em vários ambientes, incluindo o Azure ou no local.
- Lote do Azure. Um serviço gerenciado para execução de aplicativos HPC (computação de alto desempenho) e paralelos em larga escala.
Entender os modelos de hospedagem
Para modelos de hospedagem, os serviços de nuvem se enquadram em três categorias:
A IaaS (infraestrutura como serviço) permite provisionar máquinas virtuais junto com os componentes de rede e armazenamento associados. Em seguida, implante qualquer software e aplicativos desejados nessas máquinas virtuais. Esse modelo é o mais próximo de um ambiente local tradicional. Microsoft gerencia a infraestrutura. Você ainda gerencia as máquinas virtuais.
A PaaS (plataforma como serviço) fornece um ambiente de hospedagem gerenciado em que você pode implantar seu aplicativo sem a necessidade de gerenciar máquinas virtuais ou recursos de rede. Serviço de Aplicativo do Azure e Aplicativos de Contêiner do Azure são serviços de PaaS.
O FaaS (Functions-as-a-Service) permite implantar seu código no serviço, que o executa automaticamente. O Azure Functions é um serviço FaaS.
Observação
O Azure Functions é uma oferta de computação sem servidor do Azure. Para ver como esse serviço se compara com outras ofertas sem servidor do Azure, como aplicativos lógicos, que fornecem fluxos de trabalho sem servidor, consulte Escolher os serviços de integração e automação corretos no Azure.
Há um espectro de IaaS a PaaS pura. Por exemplo, as máquinas virtuais do Azure podem ser dimensionadas automaticamente usando conjuntos de dimensionamento de máquinas virtuais. Essa funcionalidade não é estritamente uma PaaS, mas é o tipo de recurso de gerenciamento encontrado no PaaS.
Há uma compensação entre o controle e a facilidade de gestão. A IaaS oferece mais controle, flexibilidade e portabilidade, mas você precisa provisionar, configurar e gerenciar as máquinas virtuais 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. PaaS cai em algum lugar no meio.
Serviço | Composição do aplicativo | Densidade | Número mínimo de nós | Gerenciamento de estado | Hospedagem na Web |
---|---|---|---|---|---|
Máquinas Virtuais do Azure | Independente | Independente | 1 2 | Com estado ou sem estado | Independente |
Serviço de Aplicativo do Azure | Aplicativos, contêineres | Vários aplicativos por instância usando o plano do serviço de aplicativo | 1 | Sem estado | Interno |
Azure Functions | Funções, contêineres | Sem servidor 1 | Sem servidor 1 | Sem estado ou com estado 6 | Não aplicável |
Serviço de Kubernetes do Azure | Contêineres | Vários contêineres por nó | 3 3 | Com estado ou sem estado | Independente |
Aplicativos de Contêiner do Azure | Contêineres | Sem servidor | Sem servidor | Com estado ou sem estado | Independente |
Instâncias de Contêiner do Azure | Contêineres | Sem instâncias dedicadas | Sem nós dedicados | Sem estado | Independente |
Red Hat OpenShift no Azure | Contêineres | Vários contêineres por nó | 6 5 | Com estado ou sem estado | Independente |
Azure Spring Apps | Aplicativos, microsserviços | Vários aplicativos por instância de serviço | 2 | Sem estado | Interno |
Azure Service Fabric | Serviços, executáveis do convidado, contêineres | Vários serviços por VM | 5 3 | Com estado ou sem estado | Independente |
Lote do Azure | Trabalhos agendados | Vários aplicativos por VM | 1 4 | Sem estado | No |
Observações
- Se você estiver usando um plano de consumo. Para um plano de Serviço de Aplicativo, as funções são executadas nas VMs alocadas para seu plano de Serviço de Aplicativo. Confira Escolher o plano de serviço correto para o Azure Functions.
- SLA superior com duas ou mais instâncias.
- Recomendado para ambientes de produção.
- Pode reduzir verticalmente até zero após o trabalho ser concluído.
- Três para nós primários e três para nós de trabalho.
- Ao usar Durable Functions.
Rede
Serviço | Integração de VNet | Conectividade híbrida |
---|---|---|
Máquinas Virtuais do Azure | Com suporte | Com suporte |
Serviço de Aplicativo do Azure | 1 com suporte | 2 com suporte |
Azure Functions | 1 com suporte | 3 com suporte |
Serviço de Kubernetes do Azure | Com suporte | Com suporte |
Aplicativos de Contêiner do Azure | Com suporte | Com suporte |
Instâncias de Contêiner do Azure | Com suporte | Com suporte |
Red Hat OpenShift no Azure | Com suporte | Com suporte |
Azure Spring Apps | Com suporte | Com suporte |
Azure Service Fabric | Com suporte | Com suporte |
Lote do Azure | Com suporte | Com suporte |
Observações
- Requer ASE (Ambiente de Serviço de Aplicativo).
- Use Conexões Híbridas do Serviço de Aplicativo do Azure.
- Requer um plano do Serviço de Aplicativo ou plano Premium do Azure Functions.
DevOps
Serviço | Depuração local | Modelo de programação | Atualização do aplicativo |
---|---|---|---|
Máquinas Virtuais do Azure | Independente | Independente | Não há suporte interno |
Serviço de Aplicativo do Azure | IIS Express, outros 1 | Aplicativos da Web e da API, Trabalhos da Web para tarefas em segundo plano | Slots de implantação |
Azure Functions | Visual Studio ou CLI do Azure Functions | Sem servidor, controlado por eventos | Slots de implantação |
Serviço de Kubernetes do Azure | Minikube, Docker, outros | Independente | Atualização sem interrupção |
Aplicativos de Contêiner do Azure | runtime do contêiner local | Independente | Gerenciamento da revisão |
Instâncias de Contêiner do Azure | runtime do contêiner local | Independente | Não aplicável |
Red Hat OpenShift no Azure | Minikube, Docker, outros | Independente | Atualização sem interrupção |
Azure Spring Apps | Visual Studio Code, Intellij, Eclipse | Spring Boot, Steeltoe | Atualização sem interrupção, implantação azul-verde |
Azure Service Fabric | Cluster de nó local | Executável convidado, modelo de Serviço, o modelo de Ator, Contêineres | Atualização sem interrupção (por serviço) |
Lote do Azure | Sem suporte | Aplicativo de linha de comando | Não aplicável |
Observações
- As opções incluem: IIS Express para ASP.NET ou node.js (iisnode), servidor Web PHP, Kit de Ferramentas do Azure para IntelliJ e Kit de Ferramentas do Azure para Eclipse. O Serviço de Aplicativo também dá suporte para depuração remota de aplicativo Web implantado.
Escalabilidade
Serviço | Dimensionamento automático | Balanceador de carga | Limite de escala3 |
---|---|---|---|
Máquinas Virtuais do Azure | conjuntos de escala de máquina virtual | Azure Load Balancer | Imagem da plataforma: 1000 nós por conjunto de dimensionamento, Imagem Personalizada: 600 nós por conjunto de dimensionamento |
Serviço de Aplicativo do Azure | Serviço interno | Integrado | 30 instâncias, 100 com Ambiente do Serviço de Aplicativo |
Azure Functions | Serviço interno | Integrado | 200 instâncias por aplicativo de Função |
Serviço de Kubernetes do Azure | Dimensionamento automático do pod1, dimensionamento automático do cluster2 | Azure Load Balancer ou Gateway de Aplicativo | 5.000 nós ao usar o SLA de tempo de atividade |
Aplicativos de Contêiner do Azure | Regras de dimensionamento4 | Integrado | 5 ambientes por região, 20 aplicativos de contêiner por ambiente, 30 réplicas por aplicativo de contêiner |
Instâncias de Contêiner do Azure | Sem suporte | Não há suporte interno | 20 grupos de contêineres por assinatura (limite padrão) |
Red Hat OpenShift no Azure | Dimensionamento automático de pod, dimensionamento automático de cluster | Azure Load Balancer ou Gateway de Aplicativo | 60 nós por cluster (limite padrão) |
Azure Spring Apps | Serviço interno | Integrado | 500 instâncias de aplicativo no Standard |
Azure Service Fabric | conjuntos de escala de máquina virtual | Azure Load Balancer | 100 nós por conjunto de dimensionamento de máquinas virtuais |
Lote do Azure | Não aplicável | Azure Load Balancer | Limite de 20 núcleos (limite padrão) |
Observações
- Confira Dimensionamento automático de pods.
- Confira Dimensionar automaticamente um cluster para atender às demandas de aplicativo no AKS (Serviço de Kubernetes do Azure).
- Consulte Assinatura do Azure e limites de serviço, cotas e restrições.
- Confira Definir regras de colocação em escala em Aplicativos de Contêiner do Azure.
Disponibilidade
Serviço | Contrato de Nível de Serviço | Failover de várias regiões |
---|---|---|
Máquinas Virtuais do Azure | SLA para Máquinas Virtuais | Gerenciador de Tráfego do Azure, Azure Front Door e Azure Load Balancer entre regiões |
Serviço de Aplicativo do Azure | SLA para Serviço de Aplicativo | Gerenciador de Tráfego do Azure e Azure Front Door |
Azure Functions | SLA para Functions | Gerenciador de Tráfego do Azure e Azure Front Door |
Serviço de Kubernetes do Azure | SLA para AKS | Gerenciador de Tráfego do Azure, Azure Front Door e Cluster de Várias Regiões |
Aplicativos de Contêiner do Azure | SLA para Aplicativos de Contêiner do Azure | Gerenciador de Tráfego do Azure e Azure Front Door |
Instâncias de Contêiner do Azure | SLA para as Instâncias de Contêiner | Gerenciador de Tráfego do Azure e Azure Front Door |
Red Hat OpenShift no Azure | SLA para Red Hat OpenShift no Azure | Gerenciador de Tráfego do Azure e Azure Front Door |
Azure Spring Apps | SLA para Azure Spring Apps | Gerenciador de Tráfego do Azure, Azure Front Door e Cluster de Várias Regiões |
Azure Service Fabric | SLA para Service Fabric | Gerenciador de Tráfego do Azure, Azure Front Door e Azure Load Balancer entre regiões |
Lote do Azure | SLA para o Lote do Azure | Não aplicável |
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
Examine e entenda os controles de segurança disponíveis e a visibilidade de cada serviço:
- Máquina virtual do Windows do Azure
- Máquina virtual linux do Azure
- Serviço de Aplicativo do Azure
- Azure Functions
- Serviço de Kubernetes do Azure
- Instâncias de Contêiner do Azure
- Azure Spring Apps
- Azure Service Fabric
- Lote do Azure
Outros critérios
Considerar limites e custo
Junto com as tabelas de comparação anteriores, faça uma avaliação mais detalhada dos seguintes aspectos do serviço candidato:
Colaboradores
Esse artigo é mantido pela Microsoft. Ele foi originalmente escrito pelos colaboradores a seguir.
Autores principais:
- Ayobami Ayodeji | Gerente de Programas Sênior
- Jelle Druyts | Engenheiro de serviço principal
- Martin Gjoshevski | Engenheiro de Serviço Sênior
- Phil Huang | Arquiteto sênior de soluções de nuvem
- Julie Ng | Engenheiro de Serviço Sênior
- Paolo Salvatori | Engenheiro de serviço principal
Para ver perfis não públicos do LinkedIn, entre no LinkedIn.
Próximas etapas
- Serviços de Nuvem Principais – opções de computação do Azure. Este módulo do Microsoft Learn explora como os serviços de computação podem resolver necessidades comerciais comuns.