Considerações sobre aplicativos para cargas de trabalho de Solução VMware no Azure
Este artigo discute a área de design da plataforma de aplicativos de uma carga de trabalho Solução VMware no Azure. Essa área aborda as tarefas e responsabilidades específicas associadas à implantação, configuração e manutenção de aplicativos hospedados em um ambiente Solução VMware no Azure. Um proprietário do aplicativo é responsável pelos aplicativos em um ambiente Solução VMware no Azure. Esse indivíduo ou equipe gerencia aspectos relacionados à implantação, configuração, monitoramento e manutenção dos aplicativos.
Os principais objetivos de um aplicativo bem projetado incluem:
- Projetando para escala. Lidar normalmente com demandas de usuários mais altas 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.
- Confiabilidade e resiliência. Crie 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 Solução VMware no Azure. Essas práticas podem ajudá-lo a criar aplicativos que permanecem robustos, seguros, escalonáveis e mantêveis durante todo o ciclo de vida.
Design para escalabilidade e distribuição eficiente de recursos
Impacto: Confiabilidade, Eficiência de desempenho, Segurança
Esta seção aborda a alocação e a utilização efetivas de recursos de computação em VMs (máquinas virtuais) e cargas de trabalho dentro da nuvem privada Solução VMware no Azure. Esses recursos podem incluir recursos de CPU, memória, armazenamento e 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 superprovisionamento que podem resultar em ineficiências e despesas escalonadas.
Usar domínios de falha
Os domínios de falha no Solução VMware no Azure representam agrupamentos lógicos de recursos em 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. Organizar recursos em domínios de falha ajuda a garantir que componentes críticos de um aplicativo sejam distribuídos entre vários domínios de falha.
Ao colocar VMs e outros recursos em domínios de falha separados, a equipe de aplicativos 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 que são distribuídos entre datacenters distribuídos geograficamente. Em seguida, seu aplicativo poderá permanecer operacional se um datacenter apresentar uma falha completa.
As equipes de aplicativos devem considerar definir a afinidade VM-VM e as regras antiafinidade baseadas em domínios de falha. As regras de afinidade VM-VM colocam VMs críticas no mesmo domínio de falha para garantir que elas não sejam distribuídas entre vários datacenters. As regras antiafinidade impedem que VMs relacionadas sejam colocadas juntas no mesmo domínio de falha. Essa prática ajuda a garantir a redundância.
Usar políticas antiafinidade de VM-VM em aplicativos de três camadas
Em Solução VMware no Azure, um caso de uso para políticas antiafinidade de VM-VM envolve um aplicativo de três camadas. A meta é aprimorar a alta disponibilidade, a tolerância a falhas e a resiliência de cada camada de aplicativo. Para atingir essa meta, você pode usar políticas antiafinidade para distribuir as camadas entre diferentes hosts na nuvem privada Solução VMware no Azure.
Para implementar esse caso de uso, crie uma arquitetura distribuída e tolerante a falhas usando políticas antiafinidade de VM-VM 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 o aplicativo inteiro.
Por exemplo, na camada da Web de front-end que atende às solicitações do usuário, você pode aplicar políticas antiafinidade de VM-VM para distribuir os servidores Web entre 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 reforçar a resiliência de dados dentro da camada de banco de dados.
Recomendações
- Crie mapas que mostram interdependências de VM, comunicação e padrões de uso para garantir que a proximidade seja um requisito.
- Determine se a afinidade VM-VM da política de posicionamento ajuda a atender às métricas de desempenho ou aos SLAs (contratos de nível de serviço).
- Projete para alta disponibilidade implementando políticas antiafinidade de VM-VM de posicionamento para proteger contra falhas de host e distribuir seu aplicativo entre vários hosts.
- Para evitar o excesso de provisionamento, distribua sua carga de trabalho entre VMs pequenas em vez de algumas VMs grandes.
- Monitore, examine e ajuste regularmente as políticas de afinidade para identificar possíveis contenções de recursos. Adapte essas políticas ao longo do tempo conforme necessário.
Usar políticas de afinidade de host de VM para isolamento de desempenho
Algumas cargas de trabalho que executam VMs em diferentes camadas de aplicativo têm um desempenho melhor quando são colocadas. Esse caso de uso geralmente ocorre quando os aplicativos exigem:
- Isolamento de desempenho para cargas de trabalho de computação com uso intensivo de recursos e alto desempenho.
- Conformidade com contratos 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 Windows ou o licenciamento de 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 estejam restritas a hosts específicos ou a um subconjunto de hosts dentro do cluster.
- Uma configuração de rede simplificada que coloca as 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 colocação de camadas de aplicativo, você poderá optar por políticas de afinidade de host de VM para garantir que as camadas sejam implantadas no mesmo host e na mesma zona de disponibilidade.
Observação
A equipe de plataforma é responsável por configurar o posicionamento da VM, as regras de afinidade de host e o pool de recursos. Mas a equipe de aplicativos 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 possíveis desafios, como desequilíbrios de recursos e distribuição desigual de 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 ponto único de falha em um desastre. Considere replicar sua configuração em várias zonas de disponibilidade para aprimorar a resiliência do datacenter durante uma falha.
Recomendações
- Planeje cuidadosamente como você usa políticas de afinidade VM-host da política de posicionamento. Considere soluções alternativas quando 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 e o desempenho de recursos para identificar quaisquer desequilíbrios ou problemas.
- Opte por uma estratégia de posicionamento de VM balanceada 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 as configurações de afinidade VM-host da política de posicionamento para garantir que elas se alinhem com os requisitos específicos do aplicativo e que elas não afetem negativamente o desempenho geral e a resiliência.
Distribuir o tráfego usando um balanceador de carga de rede ou aplicativo
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 de recursos eficiente.
- Maior disponibilidade do aplicativo.
- Desempenho ideal do aplicativo.
O balanceamento de carga atende a esses critérios, mantendo a flexibilidade para o dimensionamento e o gerenciamento da carga de trabalho.
Depois de implantar aplicativos em VMs, considere usar uma ferramenta de balanceamento de carga, como Gateway de Aplicativo do Azure para criar pools de back-end. Gateway de Aplicativo é 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 um ponto de entrada para o tráfego da Web, Gateway de Aplicativo 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 do aplicativo Web.
Depois que os recursos em seus pools de back-end estiverem disponíveis, crie ouvintes para especificar portas e regras de roteamento para solicitações de entrada. Em seguida, você pode criar investigações 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 imposta para toda a comunicação entre o aplicativo e os navegadores dos usuários. Essa criptografia ajuda a proteger os dados de sessão contra interceptações e ataques man-in-the-middle. Se o aplicativo exigir a terminação TLS/SSL, configure o certificado TLS/SSL necessário no Gateway de Aplicativo para descarregar o processamento TLS/SSL de suas VMs de 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 Automação do Azure para atualizar e renovar certificados.
Gerenciar APIs
O Azure Gerenciamento de API ajuda você a publicar com segurança pontos de extremidade de API implantados internamente e externamente. Um exemplo de ponto de extremidade é uma API de back-end que está em uma nuvem privada Solução VMware no Azure atrás de um balanceador de carga ou Gateway de Aplicativo. Gerenciamento de API ajuda você a gerenciar os métodos e comportamentos de sua API, como aplicando políticas de segurança para impor a autenticação e a autorização. Gerenciamento de API também pode rotear solicitações de API para seus serviços de back-end por meio de Gateway de Aplicativo.
No diagrama a seguir, o tráfego dos consumidores viaja para um ponto de extremidade público Gerenciamento de API. Em seguida, o tráfego é encaminhado para APIs de back-end executadas em Solução VMware no Azure.
Recomendações
- Para aprimorar a segurança e o desempenho de seus aplicativos Solução VMware no Azure, use Gateway de Aplicativo com Solução VMware no Azure back-ends para distribuir o tráfego para os pontos de extremidade do aplicativo.
- Verifique se há conectividade entre os segmentos de back-end que hospedam Solução VMware no Azure e a sub-rede que contém Gateway de Aplicativo ou o balanceador de carga.
- Configurar a integridade prova monitorar a integridade de suas instâncias de back-end.
- Descarregue a terminação TLS/SSL para Gateway de Aplicativo para reduzir a sobrecarga de processamento nas VMs de back-end.
- Armazene com segurança chaves TLS/SSL em cofres.
- Simplifique os processos automatizando tarefas como atualizações de certificado e renovações.
Otimizar clusters estendidos para fortalecer a continuidade dos negócios e a preparação para a recuperação de desastres
Impacto: Confiabilidade
Os clusters estendidos fornecem aos clusters VMware recursos de alta disponibilidade e recuperação de desastre em vários datacenters distribuídos geograficamente.
A configuração a seguir dá suporte a arquiteturas ativas-ativas. A vSAN (rede de área de armazenamento virtual) abrange dois datacenters. Uma terceira zona de disponibilidade é mapeada para uma testemunha vSAN para servir como um quorum para cenários de cérebro dividido.
Distribuir o aplicativo entre várias zonas e regiões de disponibilidade ajuda a garantir a disponibilidade contínua durante falhas de datacenter. Implante as camadas de aplicativo 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 falha ao tolerar (FTT)
A capacidade utilizável total do aplicativo depende de várias variáveis. Os exemplos incluem a configuração RAID (matriz redundante de discos independentes), o valor do failures to tolerate
atributo e a falha em tolerar políticas (FTT) que controlam o número de falhas que seu 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 observar que valores FTT mais altos melhoram a resiliência dos dados, mas aumentam a sobrecarga de armazenamento.
Recomendações
- Implante seu aplicativo no armazenamento compartilhado para que os dados da VM permaneçam consistentes no cluster estendido. Ative a replicação síncrona.
- Configure domínios de falha para definir como os clusters estendidos devem responder em um cenário de falha.
- Implemente failover automático e failback para minimizar a intervenção manual durante eventos de failover 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 seu aplicativo depende de dados e bancos de dados com estado 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 do 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 e desempenho de dados.
- As VMs estão posicionadas para aproveitar os recursos de alta disponibilidade do cluster estendido em Solução VMware no Azure.
As políticas de exemplo podem envolver os seguintes fatores:
- A configuração vSAN. Use um VMware vSAN com um cluster estendido entre 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. Defina as configurações relacionadas ao desempenho para otimizar o IOPS e a 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 de 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 em um local secundário para proteção de dados extra.
Recomendações
- Defina políticas de armazenamento de dados no vSAN para especificar a redundância e o desempenho necessários para vários discos de 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 de datacenter.
- Entenda os requisitos de rede de cada aplicativo. Aplicativos executados entre zonas de disponibilidade podem incorrer em latência maior do que aplicativos com tráfego em uma zona de disponibilidade. Crie seu aplicativo para tolerar essa latência.
- Execute testes de desempenho em suas políticas de posicionamento para avaliar o impacto no aplicativo.
Próximas etapas
Agora que você examinou a plataforma de aplicativos, veja como estabelecer conectividade, criar perímetros para sua carga de trabalho e distribuir tráfego uniformemente para as cargas de trabalho do aplicativo.
Use a ferramenta de avaliação para avaliar suas opções de design.