Utilizar serviços de balanceamento de carga no Azure

Introdução

O Microsoft Azure fornece vários serviços para gerir a forma como o tráfego de rede é distribuído e o balanceamento de carga. Pode utilizar estes serviços individualmente ou combinar os respetivos métodos, consoante as suas necessidades, para criar a solução ideal.

Neste tutorial, definimos primeiro um caso de utilização do cliente e vemos como pode ser mais robusto e eficaz ao utilizar o seguinte portefólio de balanceamento de carga do Azure: Gestor de Tráfego, Gateway de Aplicação e Balanceador de Carga. Em seguida, fornecemos instruções passo a passo para criar uma implementação geograficamente redundante, distribui o tráfego para VMs e ajuda-o a gerir diferentes tipos de pedidos.

A nível conceptual, cada um destes serviços desempenha um papel distinto na hierarquia de balanceamento de carga.

  • O Gestor de Tráfego fornece balanceamento de carga DNS global. Analisa os pedidos DNS recebidos e responde com um ponto final em bom estado de funcionamento, de acordo com a política de encaminhamento que o cliente selecionou. As opções para métodos de encaminhamento são:

    • Encaminhamento de desempenho para enviar o requerente para o ponto final mais próximo em termos de latência.
    • Encaminhamento prioritário para direcionar todo o tráfego para um ponto final, com outros pontos finais como cópia de segurança.
    • Encaminhamento round robin ponderado, que distribui o tráfego com base na ponderação atribuída a cada ponto final.
    • Encaminhamento baseado em geografia para distribuir o tráfego para os pontos finais da aplicação com base na localização geográfica do utilizador.
    • Encaminhamento baseado na sub-rede para distribuir o tráfego para os pontos finais da aplicação com base na sub-rede (intervalo de endereços IP) do utilizador.
    • Encaminhamento de Valores Múltiplos que lhe permite enviar endereços IP de mais do que um ponto final de aplicação numa única resposta DNS.

    O cliente liga-se diretamente ao ponto final devolvido pelo Gestor de Tráfego. O Gestor de Tráfego do Azure deteta quando um ponto final está em mau estado de funcionamento e, em seguida, redireciona os clientes para outra instância em bom estado de funcionamento. Veja a documentação do Gestor de Tráfego do Azure para saber mais sobre o serviço.

  • Gateway de Aplicação fornece o controlador de entrega de aplicações (ADC) como um serviço, oferecendo várias capacidades de balanceamento de carga da Camada 7 para a sua aplicação. Permite que os clientes otimizem a produtividade do web farm ao descarregar a terminação TLS intensiva da CPU para o gateway de aplicação. Outras capacidades de encaminhamento da Camada 7 incluem a distribuição round robin do tráfego de entrada, a afinidade de sessão baseada em cookies, o encaminhamento baseado no caminho do URL e a capacidade de alojar vários sites atrás de um único gateway de aplicação. Gateway de Aplicação pode ser configurado como um gateway com acesso à Internet, um gateway apenas interno ou uma combinação de ambos. Gateway de Aplicação é totalmente gerida, dimensionável e de elevada disponibilidade do Azure. Proporciona um conjunto avançado de capacidades de registo e diagnóstico, para uma melhor capacidade de gestão.

  • Balanceador de Carga é parte integrante da pilha SDN do Azure, fornecendo serviços de balanceamento de carga da Camada 4 de baixa latência de elevado desempenho para todos os protocolos UDP e TCP. Gere ligações de entrada e saída. Pode configurar pontos finais públicos e internos com balanceamento de carga e definir regras para mapear as ligações de entrada para destinos do conjunto de back-end, com opções de pesquisa de estado de funcionamento TCP e HTTP para gerir a disponibilidade do serviço.

Scenario

Neste cenário de exemplo, utilizamos um site simples que serve dois tipos de conteúdo: imagens e páginas Web compostas dinamicamente. O site tem de ser geograficamente redundante e deve servir os seus utilizadores a partir da localização mais próxima (latência mais baixa) dos mesmos. O programador da aplicação decidiu que quaisquer URLs que correspondam ao padrão /images/* são servidos a partir de um conjunto dedicado de VMs que são diferentes do resto do farm Web.

Além disso, o conjunto de VMs predefinido que serve o conteúdo dinâmico tem de comunicar com uma base de dados de back-end alojada num cluster de elevada disponibilidade. Toda a implementação é configurada através do Azure Resource Manager.

A utilização do Gestor de Tráfego, Gateway de Aplicação e Balanceador de Carga permite que este site atinja estes objetivos de design:

  • Redundância multi-geográfica: se uma região ficar inativa, o Gestor de Tráfego encaminha o tráfego de forma totalmente integrada para a região mais próxima sem qualquer intervenção do proprietário da aplicação.
  • Latência reduzida: uma vez que o Gestor de Tráfego direciona automaticamente o cliente para a região mais próxima, o cliente tem uma menor latência ao pedir os conteúdos da página Web.
  • Escalabilidade independente: uma vez que a carga de trabalho da aplicação Web está separada por tipo de conteúdo, o proprietário da aplicação pode dimensionar as cargas de trabalho do pedido independentemente umas das outras. Gateway de Aplicação garante que o tráfego é encaminhado para os conjuntos certos com base nas regras especificadas e no estado de funcionamento da aplicação.
  • Balanceamento de carga interno: uma vez que Balanceador de Carga está à frente do cluster de elevada disponibilidade, apenas o ponto final ativo e em bom estado de funcionamento de uma base de dados é exposto à aplicação. Além disso, um administrador de base de dados pode otimizar a carga de trabalho ao distribuir réplicas ativas e passivas pelo cluster independentemente da aplicação de front-end. Balanceador de Carga fornece ligações ao cluster de elevada disponibilidade e garante que apenas as bases de dados em bom estado de funcionamento recebem pedidos de ligação.

O diagrama seguinte mostra a arquitetura deste cenário:

Diagrama da arquitetura de balanceamento de carga

Nota

Este exemplo é apenas uma das muitas configurações possíveis dos serviços de balanceamento de carga que o Azure oferece. O Gestor de Tráfego, Gateway de Aplicação e Balanceador de Carga podem ser misturados e correspondidos de acordo com as suas necessidades de balanceamento de carga. Por exemplo, se a descarga de TLS ou o processamento da Camada 7 não for necessário, Balanceador de Carga podem ser utilizadas em vez de Gateway de Aplicação.

Configurar a pilha de balanceamento de carga

Passo 1: Criar um perfil do Gestor de Tráfego

  1. No portal do Azure, clique em Criar um recurso> Perfildo Gestor>de Tráfego de> RedeCriar.

  2. Introduza as seguintes informações básicas:

    • Nome: atribua ao seu perfil do Gestor de Tráfego um nome de prefixo DNS.
    • Método de encaminhamento: selecione a política do método de encaminhamento de tráfego. Para obter mais informações sobre os métodos, veja About Traffic Manager traffic routing methods (Acerca dos métodos de encaminhamento de tráfego do Gestor de Tráfego).
    • Subscrição: selecione a subscrição que contém o perfil.
    • Grupo de recursos: selecione o grupo de recursos que contém o perfil. Pode ser um grupo de recursos novo ou existente.
    • Localização do grupo de recursos: o serviço Gestor de Tráfego é global e não está vinculado a uma localização. No entanto, tem de especificar uma região para o grupo onde residem os metadados associados ao perfil do Gestor de Tráfego. Esta localização não tem impacto na disponibilidade do runtime do perfil.
  3. Clique em Criar para gerar o perfil do Gestor de Tráfego.

    Painel

Passo 2: Criar os gateways de aplicação

  1. No portal do Azure, no painel esquerdo, clique em Criar um recurso>Rede>Gateway de Aplicação.

  2. Introduza as seguintes informações básicas sobre o gateway de aplicação:

    • Nome: o nome do gateway de aplicação.
    • Tamanho do SKU: o tamanho do gateway de aplicação, disponível como Pequeno, Médio ou Grande.
    • Contagem de instâncias: o número de instâncias, um valor de 2 a 10.
    • Grupo de recursos: o grupo de recursos que contém o gateway de aplicação. Pode ser um grupo de recursos existente ou um novo.
    • Localização: a região do gateway de aplicação, que é a mesma localização que o grupo de recursos. A localização é importante, porque a rede virtual e o IP público têm de estar na mesma localização que o gateway.
  3. Clique em OK.

  4. Defina as configurações de rede virtual, sub-rede, IP de front-end e serviço de escuta para o gateway de aplicação. Neste cenário, o endereço IP de front-end é Público, o que lhe permite ser adicionado como ponto final ao perfil do Gestor de Tráfego mais tarde.

  5. Configure o serviço de escuta com uma das seguintes opções:

    • Se utilizar HTTP, não há nada a configurar. Clique em OK.
    • Se utilizar HTTPS, é necessária mais configuração. Veja Criar um gateway de aplicação, a partir do passo 9. Quando concluir a configuração, clique em OK.

Configurar o encaminhamento de URL para gateways de aplicação

Quando escolhe um conjunto de back-end, um gateway de aplicação configurado com uma regra baseada no caminho assume um padrão de caminho do URL do pedido, além da distribuição round robin. Neste cenário, estamos a adicionar uma regra baseada no caminho para direcionar qualquer URL com "/images/*" para o conjunto de servidores de imagens. Para obter mais informações sobre como configurar o encaminhamento baseado no caminho do URL para um gateway de aplicação, veja Criar uma regra baseada no caminho para um gateway de aplicação.

Gateway de Aplicação diagrama de camada Web

  1. No grupo de recursos, aceda à instância do gateway de aplicação que criou na secção anterior.

  2. Em Definições, selecione Conjuntos de back-end e, em seguida, selecione Adicionar para adicionar as VMs que pretende associar aos conjuntos de back-end de camada Web.

  3. Introduza o nome do conjunto de back-end e todos os endereços IP das máquinas que residem no conjunto. Neste cenário, estamos a ligar dois conjuntos de servidores de back-end de máquinas virtuais.

    Gateway de Aplicação

  4. Em Definições do gateway de aplicação, selecione Regras e, em seguida, clique no botão Baseado em Caminho para adicionar uma regra.

    botão

  5. Configure a regra ao fornecer as seguintes informações.

    Definições básicas:

    • Nome: o nome amigável da regra que está acessível no portal.
    • Serviço de escuta: o serviço de escuta utilizado para a regra.
    • Conjunto de back-end predefinido: o conjunto de back-end a ser utilizado com a regra predefinida.
    • Predefinições de HTTP: as definições http a utilizar com a regra predefinida.

    Regras baseadas no caminho:

    • Nome: o nome amigável da regra baseada no caminho.
    • Caminhos: a regra de caminho utilizada para reencaminhar tráfego.
    • Conjunto de Back-end: o conjunto de back-end a ser utilizado com esta regra.
    • Definição HTTP: as definições de HTTP a utilizar com esta regra.

    Importante

    Caminhos: os caminhos válidos têm de começar com "/". O caráter universal "*" só é permitido no final. Os exemplos válidos são /xyz, /xyz*ou /xyz/*.

    Gateway de Aplicação painel

Passo 3: adicionar gateways de aplicação aos pontos finais do Gestor de Tráfego

Neste cenário, o Gestor de Tráfego está ligado a gateways de aplicação (conforme configurado nos passos anteriores) que residem em regiões diferentes. Agora que os gateways de aplicação estão configurados, o passo seguinte é ligá-los ao seu perfil do Gestor de Tráfego.

  1. Abra o perfil do Gestor de Tráfego. Para tal, procure no grupo de recursos ou procure o nome do perfil do Gestor de Tráfego de Todos os Recursos.

  2. No painel esquerdo, selecione Pontos finais e, em seguida, clique em Adicionar para adicionar um ponto final.

    Botão

  3. Crie um ponto final ao introduzir as seguintes informações:

    • Tipo: selecione o tipo de ponto final a fazer o balanceamento de carga. Neste cenário, selecione Ponto final do Azure porque o estamos a ligar às instâncias do gateway de aplicação que foram configuradas anteriormente.
    • Nome: introduza o nome do ponto final.
    • Tipo de recurso de destino: selecione Endereço IP público e, em seguida, em Recurso de destino, selecione o IP público do gateway de aplicação que foi configurado anteriormente.

    Gestor de Tráfego

  4. Agora, pode testar a configuração ao aceder à mesma com o DNS do seu perfil do Gestor de Tráfego (neste exemplo: TrafficManagerScenario.trafficmanager.net). Pode reenviar pedidos, trazer ou desativar VMs e servidores Web criados em regiões diferentes e alterar as definições de perfil do Gestor de Tráfego para testar a configuração.

Passo 4: Criar um balanceador de carga

Neste cenário, Balanceador de Carga distribui ligações da camada Web para as bases de dados dentro de um cluster de elevada disponibilidade.

Se o cluster de bases de dados de elevada disponibilidade estiver a utilizar SQL Server AlwaysOn, consulte Configurar um ou mais Serviços de Escuta do Grupo de Disponibilidade AlwaysOn para obter instruções passo a passo.

Para obter mais informações sobre como configurar um balanceador de carga interno, veja Criar um balanceador de carga interno no portal do Azure.

  1. Na portal do Azure, no painel esquerdo, clique em Criar um balanceadordeCargade> Rede de recursos>.
  2. Escolha um nome para o balanceador de carga.
  3. Defina o Tipo como Interno e escolha a rede virtual e a sub-rede adequadas para o balanceador de carga onde residir.
  4. Em Atribuição de endereços IP, selecione Dinâmico ou Estático.
  5. Em Grupo de recursos, escolha o grupo de recursos do balanceador de carga.
  6. Em Localização, escolha a região adequada para o balanceador de carga.
  7. Clique em Criar para gerar o balanceador de carga.

Ligar uma camada de base de dados de back-end ao balanceador de carga

  1. No grupo de recursos, localize o balanceador de carga que foi criado nos passos anteriores.

  2. Em Definições, clique em Conjuntos de back-end e, em seguida, clique em Adicionar para adicionar um conjunto de back-end.

    Balanceador de Carga

  3. Introduza o nome do conjunto de back-end.

  4. Adicione máquinas individuais ou um conjunto de disponibilidade ao conjunto de back-end.

Configurar uma sonda

  1. No balanceador de carga, em Definições, selecione Sondas e, em seguida, clique em Adicionar para adicionar uma sonda.

    Balanceador de Carga

  2. Introduza o nome da sonda.

  3. Selecione o Protocolo da sonda. Para uma base de dados, poderá querer uma sonda TCP em vez de uma sonda HTTP. Para saber mais sobre as sondas de balanceador de carga, veja Compreender as sondas do balanceador de carga.

  4. Introduza a Porta da base de dados a utilizar para aceder à sonda.

  5. Em Intervalo, especifique a frequência de pesquisa da aplicação.

  6. Em Limiar de mau estado de funcionamento, especifique o número de falhas de sonda contínuas que têm de ocorrer para que a VM de back-end seja considerada em mau estado de funcionamento.

  7. Clique em OK para criar a sonda.

Configurar as regras de balanceamento de carga

  1. Em Definições do balanceador de carga, selecione Regras de balanceamento de carga e, em seguida, clique em Adicionar para criar uma regra.
  2. Introduza o Nome da regra de balanceamento de carga.
  3. Escolha o Endereço IP de Front-end do balanceador de carga, Protocolo e Porta.
  4. Em Porta de back-end, especifique a porta a utilizar no conjunto de back-end.
  5. Selecione o conjunto de Back-end e a Sonda que foram criadas nos passos anteriores para aplicar a regra.
  6. Em Persistência da sessão, escolha como pretende que as sessões persistam.
  7. Em Tempos limite de inatividade, especifique o número de minutos antes de um tempo limite de inatividade.
  8. Em IP Flutuante, selecione Desativado ou Ativado.
  9. Clique em OK para criar a regra.

Passo 5: Ligar VMs de camada Web ao balanceador de carga

Agora, configuramos o endereço IP e a porta de front-end do balanceador de carga nas aplicações em execução nas VMs de camada Web para quaisquer ligações de base de dados. Esta configuração é específica das aplicações que são executadas nestas VMs. Para configurar o endereço IP de destino e a porta, veja a documentação da aplicação. Para localizar o endereço IP do front-end, no portal do Azure, aceda ao conjunto IP de front-end nas definições do Balanceador de carga.

Balanceador de Carga painel de navegação

Passos seguintes