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.
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
- 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.
- 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.
- Requer ASE (Ambiente de Serviço de Aplicativo).
- Use Conexões Híbridas do Serviço de Aplicativo do Azure.
- 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
- 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.
- 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
- Consulte pods de dimensionamento automático.
- Veja Dimensionar automaticamente um cluster para atender às demandas do aplicativo no AKS (Serviço de Kubernetes do Azure).
- 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
- Serviço de Aplicativo
- App Spring Cloud
- Serviço de Kubernetes do Azure
- Batch
- Instâncias de Contêiner
- Funções
- Service Fabric
- Máquina virtual – Windows
- Máquina virtual – LINUX
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
- Principais Serviços de Nuvem – 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.