Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo discute a área de design da plataforma de aplicativos de uma carga de trabalho da 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 de Solução VMware no Azure. Um proprietário do aplicativo é responsável pelos aplicativos em um ambiente da 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 arquiteto incluem:
- Projetando para escalabilidade. Lidar de forma eficiente com demandas mais altas de usuários e transações concorrentes sem degradação de desempenho ou interrupção de 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 à 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 efetiva e a utilização de recursos de computação em VMs (máquinas virtuais) e cargas de trabalho na nuvem privada da 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 subutilização e superprovisionamento que podem resultar em ineficiências e despesas elevadas.
Usar domínios de falha
Domínios de falha na 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 em 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 um datacenter ou falha de infraestrutura. Por exemplo, você pode separar VMs em domínios de falha espalhados entre data centers geograficamente distribuídos. Em seguida, seu aplicativo poderá permanecer operacional se um datacenter apresentar uma falha completa.
As equipes de aplicação 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 sejam distribuídas entre vários datacenters. As regras anti-afinidade 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 de anti-afinidade VM-VM em aplicações de três camadas
Na Solução Azure VMware, um caso de uso para políticas anti-afinidade VM-VM envolve um aplicativo de três camadas. A meta é aprimorar a alta disponibilidade, tolerância a falhas e resiliência de cada camada de aplicativo. Para atingir essa meta, você pode usar políticas anti-afinidade para espalhar as camadas entre diferentes hosts na nuvem privada da Solução VMware no Azure.
Para implementar esse caso de uso, crie uma arquitetura distribuída e tolerante a falhas usando VM-VM políticas anti-afinidade 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 front-end que atende às solicitações do usuário, você pode aplicar VM-VM políticas anti-afinidade para espalhar os servidores Web entre hosts físicos diferentes. Essa abordagem ajuda a melhorar a alta disponibilidade e a tolerância a falhas. Da mesma forma, você pode usar medidas anti-afinidade 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.
Recommendations
- Crie mapas que mostram as interdependências, a comunicação e os padrões de uso da VM para garantir que a proximidade seja um requisito.
- Determine se a política de posicionamento de afinidade VM-VM ajuda a atender às métricas de desempenho ou a SLAs (acordos de nível de serviço).
- Projete para alta disponibilidade implementando políticas de anti-afinidade de posicionamento VM-VM para proteger contra falhas de host e distribuir seu aplicativo em 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 as políticas de afinidade VM-host para isolamento de desempenho
Algumas cargas de trabalho que executam VMs em diferentes camadas de aplicativo têm melhor desempenho quando são colocadas. 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.
- 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 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 específicos ou classificações de dados estejam restritas 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 colocação de camadas de aplicativo, você poderá optar por políticas de afinidade VM-host para garantir que as camadas sejam implantadas no mesmo host e dentro da 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 de carga de trabalho desigual. Essas situações podem levar a efeitos adversos sobre o desempenho e a 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 aprimorar a resiliência do datacenter durante uma falha.
Recommendations
- Planeje cuidadosamente como usar as políticas de afinidade VM-host no contexto 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, contêineres 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, garantindo que estejam alinhadas com os requisitos específicos do aplicativo e que não impactem negativamente o desempenho e a resiliência gerais.
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 eficiente de recursos.
- Aumento da 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 o Gateway de Aplicativo do Azure, para criar pools de back-end. O Gateway de Aplicativo é um balanceador de carga de tráfego 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, o 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 de aplicativo Web.
Depois que os recursos em seus pools de back-end estiverem disponíveis, crie listeners para especificar portas e regras de roteamento para solicitações de entrada. Em seguida, você pode criar sondas de saúde para monitorar a integridade das suas VMs e para indicar quando remover recursos de back-end não saudáveis da rotação.
Implementar o término do TLS/SSL e o 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 ataques de interceptação e de intermediário. Se seu 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 a Automação do Azure para atualizar e renovar certificados.
Gerenciar APIs
O Gerenciamento de API do Azure 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 da Solução Azure VMware por trás de um balanceador de carga ou Gateway de Aplicações. O Gerenciamento de API ajuda você a gerenciar os métodos e comportamentos de sua API, como 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 Gateway de Aplicativo.
No diagrama a seguir, o tráfego dos consumidores é direcionado para um ponto de extremidade público do API Management. Em seguida, o tráfego é encaminhado para APIs de back-end executadas na Solução VMware no Azure.
Recommendations
- Para aprimorar a segurança e o desempenho de seus aplicativos da Solução Azure VMware, use o Application Gateway com back-ends da Solução Azure VMware para distribuir o tráfego para os pontos de extremidade dos aplicativos.
- Verifique se há conectividade entre os segmentos de back-end que hospedam a Solução VMware no Azure e a sub-rede que contém o Gateway de Aplicativo ou o balanceador de carga.
- Configure sondas de integridade para monitorar a saúde das instâncias de back-end.
- Descarregue a terminação TLS/SSL para o Gateway de Aplicações para reduzir a sobrecarga de processamento nas VMs de back-end.
- Armazene com segurança as 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 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 as políticas de tolerância a falhas e falhas a tolerar (FTT)
A capacidade utilizável total do aplicativo depende de várias variáveis. Exemplos incluem sua matriz redundante de configuração RAID (discos independentes), o valor do atributo failures to tolerate e as políticas de falha de tolerância (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.
Recommendations
- 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 a sincronização de dados e as políticas de armazenamento
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 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 e desempenho de dados.
- As VMs estão posicionadas para aproveitar os recursos de alta disponibilidade do cluster estendido na Solução VMware no Azure.
As políticas de exemplo podem envolver os seguintes fatores:
- A configuração vSAN. Utilize um VMware vSAN com um cluster estendido entre zonas de disponibilidade.
- O número de falhas a serem toleradas. 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 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 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 dentro de 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 o tráfego uniformemente para as cargas de trabalho do aplicativo.
Use a ferramenta de avaliação para avaliar suas opções de design.