Partilhar via


Considerações sobre aplicativos para cargas de trabalho da Solução VMware do Azure

Este artigo discute a área de design da plataforma de aplicativos de uma carga de trabalho da Solução VMware do Azure. Esta área abrange as tarefas e responsabilidades específicas associadas à implantação, configuração e manutenção de aplicativos que você hospeda em um ambiente da Solução VMware do Azure. Um proprietário de aplicativo é responsável pelos aplicativos em um ambiente de solução VMware do Azure. Esse indivíduo ou equipe gerencia aspetos relacionados à implantação, configuração, monitoramento e manutenção dos aplicativos.

Os principais objetivos de um aplicativo bem arquitetado incluem:

  • Projetando à escala. Lide graciosamente com maiores demandas de usuários e transações simultâneas sem degradação ou interrupção do serviço.
  • Desempenho. Forneça tempos de resposta rápidos e de baixa latência e gerencie com eficiência a utilização de recursos.
  • Fiabilidade e resiliência. Projete padrões redundantes e tolerantes a falhas para ajudar a garantir que seu aplicativo permaneça responsivo e se recupere rapidamente de falhas.

Este artigo tem como objetivo fornecer aos desenvolvedores, arquitetos e proprietários de aplicativos práticas recomendadas específicas para a Solução VMware do Azure. Essas práticas podem ajudá-lo a criar aplicativos que permanecem robustos, seguros, escaláveis e passíveis de manutenção durante todo o seu ciclo de vida.

Design para escalabilidade e distribuição eficiente de recursos

Impacto: Fiabilidade, Desempenho, Eficiência, Segurança

Esta seção aborda a alocação e utilização efetivas de recursos de computação em máquinas virtuais (VMs) e cargas de trabalho na nuvem privada da Solução VMware do Azure. Esses recursos podem incluir CPU, memória, armazenamento e recursos de rede. Esta seção também explora a implementação de técnicas de dimensionamento responsivo. Você pode usar essas técnicas para adaptar dinamicamente o provisionamento de recursos para acomodar flutuações na demanda. O objetivo principal é alcançar a utilização ideal de recursos, mitigando a subutilização e o provisionamento excessivo que podem resultar em ineficiências e despesas aumentadas.

Usar domínios de falha

Os domínios de falha na Solução VMware do Azure representam agrupamentos lógicos de recursos dentro de um cluster estendido. Esses recursos compartilham um domínio de falha física comum. Os domínios de falha ajudam a melhorar a disponibilidade em vários cenários de falha. A organização de recursos em domínios de falha ajuda a garantir que os componentes críticos de um aplicativo sejam distribuídos por vários domínios de falha.

Ao colocar VMs e outros recursos em domínios de falha separados, a equipe do aplicativo ajuda a garantir que um aplicativo permaneça disponível durante uma falha de datacenter ou infraestrutura. Por exemplo, você pode separar VMs em domínios de falha espalhados por datacenters distribuídos geograficamente. Em seguida, seu aplicativo pode permanecer operacional se um datacenter apresentar uma falha completa.

As equipas de aplicações devem considerar a definição de regras de afinidade e antiafinidade de VM-VM baseadas em domínios de falha. VM-VM regras de afinidade colocam VMs críticas no mesmo domínio de falha para garantir que elas não estejam espalhadas por vários datacenters. As regras de antiafinidade impedem que VMs relacionadas sejam colocadas juntas dentro do mesmo domínio de falha. Essa prática ajuda a garantir redundância.

Usar políticas de antiafinidade VM-VM em aplicativos de três camadas

No Azure VMware Solution, um caso de uso para políticas de antiafinidade entre VMs envolve um aplicativo de três camadas. O objetivo é melhorar a alta disponibilidade, a tolerância a falhas e a resiliência de cada camada de aplicativo. Para atingir esse objetivo, você pode usar políticas antiafinidade para distribuir as camadas entre diferentes hosts na nuvem privada da Solução VMware do Azure.

Para implementar esse caso de uso, crie uma arquitetura distribuída e tolerante a falhas usando VM-VM políticas antiafinidade em três camadas. Essa configuração melhora a disponibilidade de todo o aplicativo e ajuda a garantir que a falha de um único host não interrompa toda a camada ou todo o aplicativo.

Por exemplo, na camada front-end que lida com as solicitações dos utilizadores, pode aplicar políticas de antiafinidade VM-VM para distribuir os servidores web por diferentes hosts físicos. Essa abordagem ajuda a melhorar a alta disponibilidade e a tolerância a falhas. Da mesma forma, você pode usar medidas antiafinidade para ajudar a proteger os servidores de aplicativos na camada de negócios e para reforçar a resiliência de dados na camada de banco de dados.

Diagrama de arquitetura que mostra um aplicativo de três camadas segmentado usando políticas de afinidade VM-VM.

Recommendations
  • Crie mapas que mostrem interdependências, comunicação e padrões de uso de VM para garantir que a proximidade seja um requisito.
  • Determinar se a afinidade da política de posicionamento VM-VM ajuda a atender às métricas de desempenho e aos SLAs (contratos de nível de serviço).
  • Projete para alta disponibilidade implementando políticas de posicionamento VM-VM antiafinidade para proteger contra falhas de host e distribuir seu aplicativo em vários hosts.
  • Para evitar o provisionamento excessivo, distribua sua carga de trabalho entre VMs pequenas em vez de algumas VMs grandes.
  • Monitore, revise e ajuste regularmente as políticas de afinidade para identificar possíveis contenções de recursos. Adaptar estas políticas ao longo do tempo, conforme necessário.

Usar políticas de afinidade VM-host para isolamento de desempenho

Algumas cargas de trabalho que executam VMs em diferentes níveis de aplicações têm melhor desempenho quando são co-localizadas. Esse caso de uso geralmente ocorre quando os aplicativos exigem:

  • Isolamento de desempenho para cargas de trabalho de computação de alto desempenho e com uso intensivo de recursos.
  • Cumprimento dos acordos de licenciamento. Por exemplo, as especificações do sistema podem exigir um mapeamento que associe uma VM a um conjunto específico de núcleos para manter a conformidade com o licenciamento do Windows ou do SQL Server.
  • Conformidade regulatória e integridade de dados para garantir que as VMs que pertencem a domínios de segurança ou classificações de dados específicos sejam confinadas a hosts específicos ou a um subconjunto de hosts dentro do cluster.
  • Uma configuração de rede simplificada que coloca VMs no mesmo host. Nesse caso, a configuração de rede entre camadas é simplificada. As camadas compartilham a mesma conectividade de rede e não exigem saltos de rede extras.

Se for essencial manter a colocalização das camadas de aplicativo, você pode optar por políticas de afinidade VM-host para garantir que as camadas sejam implantadas no mesmo host e na mesma zona de disponibilidade.

Diagrama de arquitetura que mostra um aplicativo de três camadas segmentado usando políticas de afinidade VM-host.

Observação

A equipe da plataforma é responsável por configurar o posicionamento da VM, as regras de afinidade do host e o pool de recursos. Mas a equipe do aplicativo deve entender os requisitos de desempenho de cada aplicativo para garantir que as necessidades do aplicativo sejam atendidas.

As equipes de aplicativos devem avaliar de forma abrangente o posicionamento da VM e se envolver em um planejamento meticuloso. O posicionamento da VM pode apresentar desafios potenciais, como desequilíbrios de recursos e distribuição desigual da carga de trabalho. Essas situações podem levar a efeitos adversos no desempenho e na otimização de recursos. Além disso, colocar todas as cargas de trabalho em uma zona de disponibilidade pode criar um único ponto de falha em um desastre. Considere replicar sua configuração em várias zonas de disponibilidade para melhorar a resiliência do datacenter durante uma falha.

Recommendations
  • Planeie cuidadosamente como utiliza as políticas de afinidade VM-host nas políticas de colocação. Considere soluções alternativas sempre que possível, como balanceamento de carga, pools de recursos no VMware vSphere, bancos de dados distribuídos, conteinerização e zonas de disponibilidade.
  • Monitore regularmente a utilização de recursos e o desempenho para identificar quaisquer desequilíbrios ou problemas.
  • Opte por uma estratégia de posicionamento de VM equilibrada e flexível. Essa abordagem ajuda a maximizar a utilização de recursos, mantendo a alta disponibilidade e garantindo a conformidade com os requisitos de licenciamento.
  • Teste e valide a política de posicionamento das suas configurações de afinidade VM-host para garantir que estejam alinhadas com os requisitos específicos da sua aplicação e que não afetem negativamente o desempenho geral e a resiliência.

Distribuir o tráfego usando um aplicativo ou balanceador de carga de rede

Além do uso de políticas de posicionamento, o balanceamento de carga também é um componente crítico dos aplicativos modernos para ajudar a garantir:

  • Distribuição eficiente de recursos.
  • Maior disponibilidade de aplicativos.
  • Desempenho ideal da aplicação.

O balanceamento de carga atende a esses critérios, mantendo a flexibilidade para dimensionamento e gerenciamento de carga de trabalho.

Depois de implantar aplicativos em VMs, considere usar uma ferramenta de balanceamento de carga, como o Gateway de Aplicativo do Azure, para criar pools de back-end. O Application Gateway é um balanceador de carga de tráfego da Web gerenciado e um serviço de entrega de aplicativos que pode gerenciar e otimizar o tráfego HTTP e HTTPS de entrada para aplicativos Web. Como ponto de entrada para o tráfego da Web, o Application Gateway oferece vários tipos de funcionalidade. Os exemplos incluem terminação TLS/SSL, roteamento baseado em URL, afinidade de sessão e recursos de firewall de aplicativos Web.

Diagrama de arquitetura que mostra como o tráfego flui de um navegador através do Application Gateway para pools de back-end.

Depois de os recursos nos seus pools de back-end estarem disponíveis, crie listeners para especificar portas e regras de roteamento para solicitações de entrada. Em seguida, você pode criar testes de integridade para monitorar a integridade de suas VMs e indicar quando remover recursos de back-end não íntegros da rotação.

Implementar terminação TLS/SSL e gerenciamento de certificados

A criptografia TLS/SSL precisa ser aplicada para toda a comunicação entre seu aplicativo e os navegadores dos usuários. Essa criptografia ajuda a proteger os dados da sessão contra escutas e ataques man-in-the-middle. Se seu aplicativo exigir terminação TLS/SSL, configure o certificado TLS/SSL necessário no Application Gateway para descarregar o processamento TLS/SSL de suas VMs back-end.

Depois de gerar certificados TLS/SSL, coloque-os em um serviço como o Azure Key Vault que ajuda você a armazená-los e acessá-los com segurança. Use o PowerShell, a CLI do Azure ou ferramentas como a Automação do Azure para atualizar e renovar certificados.

Gerir APIs

A Gestão de API do Azure ajuda-lhe a publicar com segurança endpoints de API implantados interna e externamente. Um exemplo de ponto de extremidade é uma API de back-end que está em uma nuvem privada da Solução VMware do Azure atrás de um balanceador de carga ou Application Gateway. O Gerenciamento de API ajuda você a gerenciar os métodos e comportamentos de sua API, por exemplo, aplicando políticas de segurança para impor autenticação e autorização. O Gerenciamento de API também pode rotear solicitações de API para seus serviços de back-end por meio do Application Gateway.

No diagrama a seguir, o tráfego dos consumidores é direcionado para um ponto final público da Gestão de API. Em seguida, o tráfego é encaminhado para APIs back-end executadas na Solução VMware do Azure.

Diagrama de arquitetura de um datacenter da Solução VMware do Azure conectado a um hub central. O hub hospeda o Application Gateway e o Gerenciamento de API.

Recommendations
  • Para melhorar a segurança e o desempenho de seus aplicativos da Solução VMware do Azure, use o Application Gateway com back-ends da Solução VMware do Azure para distribuir o tráfego para os pontos de extremidade do aplicativo.
  • Verifique se há conectividade entre os segmentos back-end que hospedam a Solução VMware do Azure e a sub-rede que contém o Application Gateway ou o balanceador de carga.
  • Configure testes de integridade para monitorar a integridade de suas instâncias de back-end.
  • Descarregue a terminação TLS/SSL para o Application Gateway para reduzir a sobrecarga de processamento nas VMs back-end.
  • Armazene chaves TLS/SSL com segurança em cofres.
  • Simplifique os processos automatizando tarefas como atualizações e renovações de certificados.

Otimize clusters estendidos para fortalecer a continuidade de negócios e a preparação para recuperação de desastres

Impacto: Fiabilidade

Os clusters estendidos fornecem aos clusters VMware recursos de alta disponibilidade e recuperação de desastres em vários datacenters distribuídos geograficamente.

A configuração a seguir oferece suporte a arquiteturas ativas-ativas. A rede de área de armazenamento virtual (vSAN) abrange dois datacenters. Uma terceira zona de disponibilidade é mapeada para uma testemunha vSAN para servir como quórum para cenários de cérebro dividido.

Diagrama de arquitetura que mostra um cluster estendido vSAN em duas zonas de disponibilidade. Uma terceira zona contém uma testemunha vSAN.

A distribuição do aplicativo em várias zonas e regiões de disponibilidade ajuda a garantir a disponibilidade contínua durante falhas no datacenter. Implante as camadas de aplicativos e as camadas de dados em ambos os datacenters e ative a replicação síncrona.

Configurar políticas de tolerância a falhas e não tolerância (FTT)

A capacidade total utilizável do seu aplicativo depende de várias variáveis. Os exemplos incluem a configuração RAID (redundant array of independent disks), o valor do atributo failures to tolerate e as políticas FTT (failure to tolerate) que controlam o número de falhas que o sistema de armazenamento pode tolerar. As equipes de aplicativos precisam determinar o nível de redundância necessário para o aplicativo. Também é importante notar que valores de ITF mais altos melhoram a resiliência dos dados, mas aumentam a sobrecarga de armazenamento.

Recommendations
  • Implante seu aplicativo no armazenamento compartilhado para que os dados da VM permaneçam consistentes em todo o cluster estendido. Ative a replicação síncrona.
  • Configure domínios de falha para definir como clusters estendidos devem responder em um cenário de falha.
  • Implemente comutação automática de falhas e reversão para minimizar a intervenção manual durante eventos de falha e recuperação.

Configurar políticas de sincronização e armazenamento de dados

Os métodos de sincronização de dados são importantes quando a sua aplicação depende de dados com estado e bases de dados para garantir a consistência e a disponibilidade durante um desastre. A sincronização de dados ajuda a fornecer alta disponibilidade e tolerância a falhas para VMs críticas que executam aplicativos.

Um proprietário de aplicativo pode definir uma política de armazenamento para ajudar a garantir que:

  • As VMs críticas que executam um aplicativo recebem o nível necessário de redundância de dados e desempenho.
  • As VMs estão posicionadas para aproveitar os recursos de alta disponibilidade do cluster estendido na Solução VMware do Azure.

Exemplos de políticas podem envolver os seguintes fatores:

  • A configuração do vSAN. Use um VMware vSAN com um cluster estendido em zonas de disponibilidade.
  • O número de falhas a tolerar. Defina a política para tolerar pelo menos uma ou mais falhas. Por exemplo, use um layout RAID-1.
  • Desempenho. Configure configurações relacionadas ao desempenho para otimizar IOPS e latência para VMs críticas.
  • Regras de afinidade. Configure regras de afinidade para ajudar a garantir que VMs ou grupos de VMs sejam colocados em hosts separados ou domínios de falha dentro do cluster estendido para maximizar a disponibilidade durante falhas no datacenter.
  • Backup e replicação. Especifique a integração com soluções de backup e replicação para garantir que os dados da VM sejam regularmente copiados e replicados para um local secundário para proteção de dados extra.
Recommendations
  • Defina políticas de armazenamento de dados no vSAN para especificar a redundância e o desempenho necessários para vários discos VM.
  • Configure aplicativos para serem executados em uma configuração ativa-ativa ou ativa-passiva para que os componentes críticos do aplicativo possam falhar durante falhas no datacenter.
  • Entenda os requisitos de rede de cada aplicativo. Os aplicativos executados em zonas de disponibilidade podem incorrer em latência maior do que os aplicativos com tráfego dentro de uma zona de disponibilidade. Projete seu aplicativo para tolerar essa latência.
  • Execute testes de desempenho em suas políticas de posicionamento para avaliar seu impacto em seu aplicativo.

Próximos passos

Agora que você examinou a plataforma de aplicativos, veja como estabelecer conectividade, criar perímetros para sua carga de trabalho e distribuir uniformemente o tráfego para suas cargas de trabalho de aplicativos.

Use a ferramenta de avaliação para avaliar suas escolhas de design.