Considerações da aplicação para cargas de trabalho de Azure VMware Solution
Este artigo aborda a área de design da plataforma de aplicações de uma carga de trabalho Azure VMware Solution. Esta área abrange as tarefas e responsabilidades específicas associadas à implementação, configuração e manutenção de aplicações que aloja num ambiente Azure VMware Solution. Um proprietário da aplicação é responsável pelas aplicações num ambiente Azure VMware Solution. Este indivíduo ou equipa gere aspetos relacionados com a implementação, configuração, monitorização e manutenção das aplicações.
Os principais objetivos de uma aplicação bem arquitetada incluem:
- Estruturar para dimensionamento. Lidar corretamente com exigências e transações simultâneas de utilizadores mais elevadas sem degradação ou interrupção do serviço.
- Desempenho. Forneça tempos de resposta rápidos e de baixa latência e faça a gestão eficiente da utilização de recursos.
- Fiabilidade e resiliência. Crie padrões redundantes e tolerantes a falhas para ajudar a garantir que a sua aplicação permanece reativa e recupera rapidamente de falhas.
Este artigo tem como objetivo fornecer aos programadores, arquitetos e proprietários de aplicações melhores práticas específicas para Azure VMware Solution. Estas práticas podem ajudá-lo a criar aplicações que permanecem robustas, seguras, dimensionáveis e mantêveis ao longo do ciclo de vida.
Conceção para escalabilidade e distribuição eficiente de recursos
Impacto: Fiabilidade, Eficiência de desempenho, Segurança
Esta secção abrange a alocação e utilização eficazes de recursos de computação em máquinas virtuais (VMs) e cargas de trabalho na Azure VMware Solution cloud privada. Estes recursos podem incluir cpu, memória, armazenamento e recursos de rede. Esta secção também explora a implementação de técnicas de dimensionamento reativo. Pode utilizar estas técnicas para adaptar dinamicamente o aprovisionamento de recursos para acomodar flutuações na procura. O objetivo principal é alcançar a utilização ideal de recursos ao mitigar a subutilização e o sobreaprovisionamento que podem resultar em ineficiências e despesas escaladas.
Utilizar domínios de falha
Os domínios de falha no Azure VMware Solution representam agrupamentos lógicos de recursos num cluster disperso. Estes recursos partilham 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 os componentes críticos de uma aplicação são distribuídos por vários domínios de falha.
Ao colocar VMs e outros recursos em domínios de falha separados, a equipa da aplicação ajuda a garantir que uma aplicação permanece disponível durante uma falha do datacenter ou da infraestrutura. Por exemplo, pode separar as VMs em domínios de falha que estão distribuídos por datacenters distribuídos geograficamente. Em seguida, a sua aplicação pode permanecer operacional se um datacenter sofrer uma falha completa.
As equipas de aplicações devem considerar a definição de regras de afinidade VM-VM e anti-afinidade 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 não estão distribuídas por vários datacenters. As regras de antifinidade impedem que as VMs relacionadas sejam colocadas em conjunto no mesmo domínio de falha. Esta prática ajuda a garantir a redundância.
Utilizar políticas anti-afinidade VM-VM em aplicações de três camadas
No Azure VMware Solution, um caso de utilização para políticas anti-afinidade VM-VM envolve uma aplicação de três camadas. O objetivo é melhorar a elevada disponibilidade, tolerância a falhas e resiliência de cada camada de aplicação. Para atingir este objetivo, pode utilizar políticas anti-afinidade para distribuir as camadas por diferentes anfitriões na Azure VMware Solution cloud privada.
Para implementar este caso de utilização, crie uma arquitetura distribuída e tolerante a falhas com políticas de anti-afinidade VM-VM em três camadas. Esta configuração melhora a disponibilidade de toda a aplicação e ajuda a garantir que a falha de um único anfitrião não interrompe todo o escalão ou toda a aplicação.
Por exemplo, na camada Web de front-end que serve pedidos de utilizador, pode aplicar políticas anti-afinidade VM-VM para distribuir os servidores Web por diferentes anfitriões físicos. Esta abordagem ajuda a melhorar a elevada disponibilidade e a tolerância a falhas. Da mesma forma, pode utilizar medidas anti-afinidade para ajudar a salvaguardar os servidores de aplicações na camada empresarial e reforçar a resiliência dos dados na camada da base de dados.
Recomendações
- Crie mapas que mostrem padrões de interdependência, comunicação e utilização da VM para garantir que a proximidade é um requisito.
- Determine se a afinidade de política de colocação VM-VM ajuda a cumprir métricas de desempenho ou contratos de nível de serviço (SLAs).
- Crie para elevada disponibilidade ao implementar políticas anti-afinidade VM-VM de colocação para proteger contra falhas do anfitrião e distribuir a aplicação por vários anfitriões.
- Para evitar o sobreaprovisionamento, distribua a carga de trabalho por VMs pequenas em vez de algumas VMs grandes.
- Monitorize, reveja e ajuste regularmente as políticas de afinidade para identificar uma potencial contenção de recursos. Adapte estas políticas ao longo do tempo, conforme necessário.
Utilizar políticas de afinidade VM-anfitrião para isolamento de desempenho
Algumas cargas de trabalho que executam VMs em diferentes camadas de aplicação têm um melhor desempenho quando estão colocalizadas. Este caso de utilização ocorre frequentemente quando as aplicações exigem:
- Isolamento de desempenho para cargas de trabalho de computação de elevado desempenho e com utilização intensiva de recursos.
- Conformidade com contratos de licenciamento. Por exemplo, as especificações do sistema podem exigir um mapeamento que associa uma VM a um conjunto específico de núcleos para manter a conformidade com o Windows ou SQL Server licenciamento.
- Conformidade regulamentar e integridade dos dados para garantir que as VMs que pertencem a domínios de segurança ou classificações de dados específicos estão confinadas a anfitriões específicos ou a um subconjunto de anfitriões dentro do cluster.
- Uma configuração de rede simplificada que coloca as VMs no mesmo anfitrião. Neste caso, a configuração de rede entre camadas é simplificada. As camadas partilham a mesma conectividade de rede e não necessitam de saltos de rede adicionais.
Se for essencial manter a colocalização das camadas de aplicação, pode optar pelas políticas de afinidade VM-anfitrião para garantir que as camadas são implementadas no mesmo anfitrião e na mesma zona de disponibilidade.
Nota
A equipa de plataforma é responsável por configurar o posicionamento da VM, as regras de afinidade do anfitrião e o agrupamento de recursos. Contudo, a equipa de aplicações deve compreender os requisitos de desempenho de cada aplicação para garantir que as necessidades da aplicação são satisfeitas.
As equipas de aplicações têm de avaliar de forma abrangente o posicionamento da VM e realizar um planeamento meticuloso. O posicionamento da VM pode apresentar potenciais desafios, como desequilíbrios de recursos e distribuição desigual da carga de trabalho. Estas situações podem levar a efeitos adversos no desempenho e na otimização de recursos. Além disso, colocar todas as cargas de trabalho numa zona de disponibilidade pode criar um ponto único de falha num desastre. Considere replicar a configuração em várias zonas de disponibilidade para melhorar a resiliência do datacenter durante uma falha.
Recomendações
- Planeie cuidadosamente a forma como utiliza as políticas de afinidade VM-anfitrião da política de colocação. Quando possível, considere soluções alternativas, como balanceamento de carga, agrupamentos de recursos no VMware vSphere, bases de dados distribuídas, contentorização e zonas de disponibilidade.
- Monitorize regularmente a utilização e o desempenho dos recursos para identificar quaisquer desequilíbrios ou problemas.
- Opte por uma estratégia de colocação de VMs equilibrada e flexível. Esta abordagem ajuda-o a maximizar a utilização de recursos, mantendo a elevada disponibilidade e garantindo a conformidade com os requisitos de licenciamento.
- Teste e valide as configurações de afinidade VM-anfitrião da política de colocação para garantir que estão alinhadas com os requisitos específicos da sua aplicação e que não afetam negativamente o desempenho geral e a resiliência.
Distribuir tráfego com uma aplicação ou um balanceador de carga de rede
Além da utilização de políticas de colocação, o balanceamento de carga é também um componente fundamental das aplicações modernas para ajudar a garantir:
- Distribuição eficiente de recursos.
- Maior disponibilidade da aplicação.
- Desempenho ideal da aplicação.
O balanceamento de carga cumpre estes critérios, mantendo a flexibilidade para o dimensionamento e a gestão da carga de trabalho.
Depois de implementar aplicações em VMs, considere utilizar uma ferramenta de balanceamento de carga, como Gateway de Aplicação do Azure para criar conjuntos de back-end. Gateway de Aplicação é um balanceador de carga de tráfego Web gerido e um serviço de entrega de aplicações que pode gerir e otimizar o tráfego HTTP e HTTPS recebido para aplicações Web. Como ponto de entrada para o tráfego web, Gateway de Aplicação oferece vários tipos de funcionalidade. Os exemplos incluem a terminação TLS/SSL, o encaminhamento baseado em URL, a afinidade de sessão e as capacidades de firewall de aplicações Web.
Depois de os recursos nos conjuntos de back-end estarem disponíveis, crie serviços de escuta para especificar portas e regras de encaminhamento para pedidos recebidos. Em seguida, pode criar sondas de estado de funcionamento para monitorizar o estado de funcionamento das VMs e indicar quando remover recursos de back-end em mau estado de funcionamento da rotação.
Implementar a terminação TLS/SSL e a gestão de certificados
A encriptação TLS/SSL tem de ser imposta para todas as comunicações entre a sua aplicação e os browsers dos utilizadores. Esta encriptação ajuda a proteger os dados da sessão contra escutas e ataques man-in-the-middle. Se a sua aplicação necessitar de terminação TLS/SSL, configure o certificado TLS/SSL necessário no Gateway de Aplicação para descarregar o processamento TLS/SSL das VMs de back-end.
Depois de gerar certificados TLS/SSL, coloque-os num serviço como o Azure Key Vault que o ajuda a armazenar e aceder aos mesmos de forma segura. Utilize o PowerShell, a CLI do Azure ou ferramentas como Automatização do Azure para atualizar e renovar certificados.
Gerir APIs
O Azure Gestão de API ajuda-o a publicar pontos finais de API implementados interna e externamente de forma segura. Um exemplo de um ponto final é uma API de back-end que está numa nuvem privada Azure VMware Solution atrás de um balanceador de carga ou Gateway de Aplicação. Gestão de API ajuda-o a gerir os métodos e comportamentos da sua API, como a aplicação de políticas de segurança para impor a autenticação e a autorização. Gestão de API também pode encaminhar pedidos de API para os seus serviços de back-end através de Gateway de Aplicação.
No diagrama seguinte, o tráfego dos consumidores viaja para um ponto final público Gestão de API. Em seguida, o tráfego é reencaminhado para as APIs de back-end que são executadas no Azure VMware Solution.
Recomendações
- Para melhorar a segurança e o desempenho das suas aplicações Azure VMware Solution, utilize Gateway de Aplicação com Azure VMware Solution back-ends para distribuir o tráfego para os pontos finais da aplicação.
- Certifique-se de que existe conectividade entre os segmentos de back-end que alojam Azure VMware Solution e a sub-rede que contém Gateway de Aplicação ou o balanceador de carga.
- Configurar as provas de estado de funcionamento para monitorizar o estado de funcionamento das instâncias de back-end.
- Descarregue a terminação TLS/SSL para Gateway de Aplicação para reduzir a sobrecarga de processamento nas VMs de back-end.
- Armazene de forma segura chaves TLS/SSL em cofres.
- Simplifique os processos ao automatizar tarefas como atualizações e renovações de certificados.
Otimizar clusters dispersos para reforçar a continuidade do negócio e a preparação para a recuperação após desastre
Impacto: Fiabilidade
Os clusters dispersos fornecem clusters VMware com elevada disponibilidade e capacidades de recuperação após desastre em vários datacenters distribuídos geograficamente.
A seguinte configuração suporta arquiteturas ativas-ativas. A rede de armazenamento virtual (vSAN) abrange dois datacenters. Uma terceira zona de disponibilidade mapeia para uma testemunha vSAN para servir de quórum para cenários divididos no cérebro.
Distribuir a aplicação por várias zonas e regiões de disponibilidade ajuda a garantir a disponibilidade contínua durante as falhas do datacenter. Implemente as camadas da aplicação e as camadas de dados em ambos os datacenters e ative a replicação síncrona.
Configurar a tolerância a falhas e a incapacidade de tolerar políticas (FTT)
A capacidade total utilizável da aplicação depende de várias variáveis. Os exemplos incluem a sua matriz redundante de configuração de discos independentes (RAID), o valor do atributo failures to tolerate
e a falha ao tolerar políticas (FTT) que controlam o número de falhas que o seu sistema de armazenamento pode tolerar. As equipas de aplicações têm de determinar o nível de redundância necessário para a aplicação. Também é importante ter em atenção que os valores de FTT mais elevados melhoram a resiliência dos dados, mas aumentam a sobrecarga de armazenamento.
Recomendações
- Implemente a sua aplicação no armazenamento partilhado para que os dados da VM permaneçam consistentes em todo o cluster disperso. Ative a replicação síncrona.
- Configure domínios de falha para definir a forma como os clusters dispersos devem responder num cenário de falha.
- Implemente a ativação pós-falha automática e a reativação pós-falha para minimizar a intervenção manual durante eventos de ativação pós-falha 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 a sua aplicação depende de dados e bases de dados com monitorização de estado para garantir consistência e disponibilidade durante um desastre. A sincronização de dados ajuda a fornecer elevada disponibilidade e tolerância a falhas para VMs críticas que executam aplicações.
Um proprietário da aplicação pode definir uma política de armazenamento para ajudar a garantir que:
- As VMs críticas que executam uma aplicação recebem o nível necessário de redundância e desempenho de dados.
- As VMs estão posicionadas para tirar partido das capacidades de elevada disponibilidade do cluster disperso no Azure VMware Solution.
As políticas de exemplo podem envolver os seguintes fatores:
- A configuração da vSAN. Utilize uma VMware vSAN com um cluster disperso 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, utilize um esquema RAID-1.
- Desempenho. Configure definições relacionadas com o 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 as VMs ou grupos de VMs são colocados em anfitriões separados ou domínios de falha no cluster disperso para maximizar a disponibilidade durante as falhas do datacenter.
- Cópia de segurança e replicação. Especifique a integração com soluções de cópia de segurança e replicação para garantir que os dados da VM são regularmente efetuados cópias de segurança e replicados para uma localização secundária para proteção de dados extra.
Recomendações
- Defina políticas de armazenamento de dados na vSAN para especificar a redundância e o desempenho necessários para vários discos de VM.
- Configure aplicações para serem executadas numa configuração ativa-ativa ou ativa-passiva para que os componentes críticos da aplicação possam falhar durante falhas do datacenter.
- Compreender os requisitos de rede de cada aplicação. As aplicações executadas em zonas de disponibilidade podem incorrer numa latência superior à das aplicações com tráfego dentro de uma zona de disponibilidade. Crie a sua aplicação para tolerar esta latência.
- Execute testes de desempenho nas políticas de colocação para avaliar o impacto na sua aplicação.
Passos seguintes
Agora que examinou a plataforma da aplicação, veja como estabelecer conectividade, criar perímetros para a carga de trabalho e distribuir uniformemente o tráfego para as cargas de trabalho da aplicação.
Utilize a ferramenta de avaliação para avaliar as suas escolhas de estrutura.