Como conseguir Alta Disponibilidade e Escalabilidade - ARR e Balanceador de Carga de Hardware

por Won Yoo

Obter Alta Disponibilidade e Escalabilidade:
ARR (Application Request Routing) da Microsoft para IIS 7.0 e superior e Balanceador de Carga de Hardware.

Microsoft Corporation F5
Autor: Won Yoo Autor: Ryan Korock
Publicado: 13 de novembro de 2008

Resumo

Este documento fornece diretrizes prescritivas sobre como o ARR (Application Request Routing) pode ser usado com um balanceador de carga de hardware, para obter alta disponibilidade e escalabilidade. O balanceador de carga BIG-IP da F5 é usado neste documento para ilustrar a relação de trabalho entre o ARR e os balanceadores de carga de hardware.

Visão geral

O ARR (Application Request Routing) da Microsoft para o IIS 7.0 e superior é um módulo de roteamento com base em proxy que encaminha as solicitações HTTP para servidores de conteúdo com base em cabeçalhos HTTP, variáveis de servidor e algoritmos de balancear carga. Uma implantação típica do ARR é ilustrada no diagrama abaixo:

Diagram of a typical A R R deployment. A R R provides high availability and scalability for the content servers.

Embora o ARR forneça alta disponibilidade e escalabilidade para os servidores de conteúdo, a implantação geral não é altamente disponível ou escalonável porque:

  • ARR é o único ponto de falha.
  • A escalabilidade dos servidores de conteúdo é limitada pela capacidade máxima de um servidor de ARR.

Para superar esses desafios, os administradores podem considerar o uso de vários servidores de ARR com balanceadores de carga de hardware, como BIG-IP da F5. O ARR pode ser implantado no modo ativo/passivo para obter apenas alta disponibilidade ou no modo ativo/ativo, para alcançar alta disponibilidade e escalabilidade. Este white paper descreve como o ARR e o BIG-IP da F5 podem ser implantados juntos para habilitar os principais cenários de ARR e, ao mesmo tempo, obter alta disponibilidade e escalabilidade gerais.

Uso do Application Request Routing e BIG-IP da F5

O ARR é criado como um módulo sobre o IIS e foi projetado para tomar as decisões de roteamento na camada 7 (aplicativo). Mais precisamente, o ARR depende de outro módulo do IIS, a Reescrita de URL, para inspecionar os cabeçalhos de solicitação HTTP de entrada e as variáveis de servidor para tomar as decisões de roteamento. Considerando esse design, os administradores podem escrever regras de roteamento inteligentes com base nas informações do nível do aplicativo, como:

  • Nome do host (HTTP_HOST): rotear o tráfego para diferentes servidores de conteúdo com base no nome do host.
  • Recurso solicitado (URL): com base em extensões de arquivo, determine se os recursos solicitados são para conteúdo estático ou conteúdo dinâmico e encaminhe as solicitações adequadamente.
  • Informações do cliente (HTTP_USER_AGENT): com base no tipo de navegador e na versão, encaminhe as solicitações para os servidores de conteúdo apropriados.
  • Cabeçalhos personalizados (definidos como um cookie por aplicativos): rotear o tráfego com base nas informações de cookie definidas por aplicativos, como preferência do usuário ou ID do usuário.

Acima estão apenas alguns dos exemplos. Para obter uma lista completa de cabeçalhos HTTP e variáveis de servidor, consulte o Apêndice A.

A funcionalidade de camada 3 e camada 4 do BIG-IP da F5 complementa a força do ARR em tomar decisões de roteamento com base na camada 7, como cabeçalhos HTTP e variáveis de servidor. Ao mesmo tempo, o ARR não fornece recursos de implantação tolerantes a falhas para si mesmo e deve contar com outras tecnologias e soluções complementares para obter alta disponibilidade para a camada do ARR, conforme mostrado abaixo:

Diagram of F five Big dash I P layer three and four functionality. F five Big dash I P layer three and layer four compliment A R R strength in making routing decisions based on layer seven.

Cenário 1: roteamento baseado em HTTP e balanceamento de carga

O cenário de roteamento e balanceamento de carga baseado em HTTP, permite uma arquitetura de implantação de 3 camadas que envolve:

  • Camada 1 (Web): fornece duas finalidades de processamento de conteúdo estático e roteamento e balanceamento de carga das solicitações dinâmicas restantes para servidores de camada 2.
  • Camada 2 (Aplicativo): processa conteúdo dinâmico que depende da lógica de negócios.
  • Camada 3 (Dados): armazena dados.

O diagrama a seguir ilustra a implantação de três camadas:

Diagram illustrating the three tier deployment. It shows a routing rule that differentiates the static content form the dynamic content.

Embora o exemplo acima mostre uma regra de roteamento que diferencia o conteúdo estático do conteúdo dinâmico, outro cenário comum é diferenciar solicitações de apresentação de solicitações de serviço Web.

Opção 1: Ativo/Passivo

No modo Ativo/Passivo, normalmente há dois servidores de ARR nos quais um servidor processa as solicitações enquanto o outro servidor permanece como um servidor de failover. Conforme observado acima, embora essa configuração atinja alta disponibilidade removendo o único ponto de falha, ela não é uma solução de expansão, pois a capacidade agregada dos servidores de conteúdo é limitada pela capacidade máxima de um servidor de ARR.

Nessa configuração, como dois servidores de ARR são configurados da mesma maneira, uma configuração compartilhada é usada. O BIG-IP da F5 é configurado para rotear todas as solicitações para o servidor de ARR ativo e roteia apenas solicitações para o servidor de ARR passivo quando necessário.

Com exceção do recurso de afinidade de nome de host no ARR, não há informações de estado de runtime que devem ser compartilhadas entre os dois servidores de ARR. Portanto, para esse cenário, nenhuma configuração especial é necessária nos servidores de ARR nem no BIG-IP da F5. Mesmo caso use o recurso de afinidade de servidor no ARR, as informações de estado com afinidade serão disponibilizadas para o servidor passivo por meio de um cookie no cabeçalho da solicitação, quando BIG-IP da F5 roteia as solicitações para o servidor anteriormente passivo, mas agora ativo.

Esse cenário tem suporte total no ARR Versão 1.

Configuração do ARR

Etapa 1: habilitar a configuração compartilhada em dois servidores de ARR.

  • Siga as etapas neste documento para configurar a configuração compartilhada no IIS.

Etapa 2: configurar a arquitetura de implantação de 3 camadas usando o ARR.

  • Siga as etapas neste documento para configurar o ARR na arquitetura de implantação de 3 camadas.

  • Em um nível alto, o documento acima descreve:

    • Como disponibilizar conteúdo estático no servidor de ARR.
    • Como escrever regras de reescrita de URL para conteúdo estático para que elas sejam atendidas diretamente do servidor de ARR.
    • Como escrever regras de reescrita de URL para conteúdo dinâmico para que sejam encaminhadas para os servidores de aplicativos.

Configuração de BIG-IP da F5

Nesse cenário, você criará um servidor virtual que balanceia a carga para um pool de dois (ou mais) servidores de ARR. O método de balanceamento de carga selecionado deve enviar todo o tráfego para o servidor de ARR primário até que ele fique indisponível. Nesse ponto, o BIG-IP LTM deve enviar todo o tráfego para o servidor de ARR secundário.

Etapa 1: configurar o pool de servidores de ARR.

  • Na seção Tráfego Local, selecione Pools. Em seguida, clique no botão Criar para criar o aplicativo.
  • Qualquer nome exclusivo funcionará para o pool, o exemplo usa ARR_Pool.
  • Para o Monitor de Integridade, use um monitor HTTP personalizado ou o monitor HTTP padrão.
  • Deixe o Método de Balanceamento de Carga definido como Round Robin. Nesse cenário, como há apenas um servidor de ARR ativo e passivo, o balanceamento de carga não é usado.
  • Certifique-se de habilitar a Ativação do Grupo de Prioridades. Isso configura o BIG-IP para enviar tráfego para os servidores com o valor de prioridade mais alto. Quando esses servidores estão indisponíveis, o BIG-IP envia o tráfego para o servidor de ARR com o próximo valor de prioridade mais alta.
  • Nesse cenário, o servidor de ARR em 10.0.0.1 tem um valor de prioridade de 1 e 10.0.0.2 tem um valor de prioridade 2. Todo o tráfego será enviado para 10.0.0.2 até que ele fique inoperante e, em seguida, o tráfego será enviado para 10.0.0.1.

Screenshot of the Big dash I P web page. In the Health Monitors box under Active, h t t p is highlighted. In the New Members box, the A R R server priority value is ten dot zero dot zero dot one.

Etapa 2: configurar o pool de servidores de ARR.

  • Na seção Tráfego Local, selecione Servidores Virtuais. Em seguida, clique no botão Criar para criar um servidor virtual.
  • Qualquer nome exclusivo funcionará para o servidor virtual, o exemplo usa ARR_VS.
  • Para o Destino, use o endereço IP para o qual os usuários apontarão seus navegadores. Neste exemplo específico, usamos 65.197.145.23. Para a Porta de Serviço, usamos '80'.
  • Para a seção Tipo de Servidor Virtual, você tem várias opções. Como você depende do ARR para rotear, selecione o HTTP de Desempenho, que foi projetado para obter o melhor desempenho.
  • Para o Pool Padrão, selecione o pool que você criou na Etapa 1.

Screenshot of the F five Big I P page. In the Name box A R R underscore V S is written.

  • Neste ponto, você deverá conseguir se conectar a esse Servidor Virtual, que será enviado para o servidor de ARR apropriado.

Opção 2: Ativa/Ativa

No modo Ativo/Ativo, é possível ter dois ou mais servidores de ARR. Essa configuração obtém alta disponibilidade e escalabilidade, ao contrário do modo Ativo/Passivo, que alcança apenas alta disponibilidade. Conforme observado anteriormente, como vários servidores de ARR são configurados da mesma maneira, uma configuração compartilhada é usada. O BIG-IP da F5 é configurado para balancear a carga de solicitações de entrada para todos os servidores de ARR disponíveis e íntegros, que, por sua vez, encaminha solicitações para os servidores de conteúdo. Independentemente se recurso de afinidade de servidor ser usado no BIG-IP da F5 ou não, nenhuma configuração especial é necessária nos servidores de ARR. Por exemplo, os servidores de ARR usam uma configuração compartilhada para que sejam configurados da mesma maneira. Em segundo lugar, como o ARR usa um cookie cliente para armazenar as informações de afinidade do servidor para seu próprio uso, essas informações estão disponíveis por solicitação e, portanto, estão disponíveis nos servidores de ARR. Esse cenário tem suporte total no ARR Versão 1.

Configuração do ARR

A configuração do ARR para Ativo/Ativo é idêntica à de Ativo/Passivo. A principal diferença é como a F5 é configurada.

Etapa 1: habilitar a configuração compartilhada em dois servidores de ARR.

  • Siga as etapas neste documento para configurar a configuração compartilhada no IIS.

Etapa 2: configurar a arquitetura de implantação de 3 camadas usando o ARR.

  • Siga as etapas neste documento para configurar o ARR na arquitetura de implantação de 3 camadas.

  • Em um nível alto, o documento acima descreve:

    • Como disponibilizar conteúdo estático no servidor de ARR.
    • Como escrever regras de reescrita de URL para conteúdo estático para que elas sejam atendidas diretamente do servidor de ARR.
    • Como escrever regras de reescrita de URL para conteúdo dinâmico para que sejam encaminhadas para os servidores de aplicativos.

Configuração de BIG-IP da F5

Nesse cenário, todos os servidores de ARR disponíveis são considerados ativos e candidatos para tráfego com balanceamento de carga. Use o BIG-IP LTM para determinar a integridade e o desempenho dos front-ends do ARR e direcionar o tráfego aos de melhor desempenho.

Etapa 1: configurar o pool de servidores de ARR.

  • Na seção Tráfego Local, selecione Pools. Em seguida, clique no botão Criar para criar o aplicativo.
  • Qualquer nome exclusivo funcionará para o pool, os exemplos usam ARR_Pool. – Para o Monitor de Integridade, use um monitor do HTTP personalizado ou o monitor do HTTP padrão. – Como você tem vários servidores de ARR para os quais distribuir o tráfego, você desejará selecionar um método de balanceamento de carga que melhor atenda às suas necessidades. Supondo que todos os servidores de ARR tenham características de hardware semelhantes, um método de balanceamento de carga dinâmico, como mais rápido, observado ou preditivo, fornecerá uma distribuição baseada em desempenho.

Screenshot of the F five Big I P web page. In the Load Balancing Method box, Fastest Application is chosen.

Etapa 2: configurar o servidor virtual.

  • Na seção Tráfego Local, selecione Servidores Virtuais. Em seguida, clique no botão Criar para criar um servidor virtual.
  • Qualquer nome exclusivo funcionará para o servidor virtual, o exemplo usa ARR_VS. – Para o Destino, use o endereço IP para o qual os usuários apontarão seus navegadores. Neste exemplo específico, usamos 65.197.145.23. Para a Porta de Serviço, usamos '80'. – Para a seção Tipo de Servidor Virtual, você tem várias opções. Como você depende do ARR para rotear, selecione o HTTP de Desempenho, que foi projetado para obter o melhor desempenho. – Para o Pool Padrão, selecione o pool que você criou na Etapa 1.

Screenshot of the F five Big I P web page. In the Default Pool box, the pool created in Step one, the A R R pool, is selected.

Cenário 2: hospedagem compartilhada usando a afinidade de nome de host

Esse cenário utiliza o recurso de afinidade de nome de host no ARR, para habilitar uma implantação de hospedagem compartilhada para:

  • Reduza o gerenciamento manual e a manutenção envolvidos com a implantação tradicional de hospedagem compartilhada.
  • Maximize os recursos de servidor existentes, garantindo que todos os recursos do servidor sejam utilizados uniformemente.
  • Dimensione facilmente o ambiente.
  • Crie oportunidades de negócios para vender capacidade adicional.

Para obter mais informações sobre hospedagem compartilhada e o ARR, consulte este documento.

O diagrama a seguir ilustra o ambiente de hospedagem compartilhado usando o ARR: Diagram of the shared hosting environment using A R R.

Opção 1: Ativo/Passivo

Conforme observado anteriormente, no modo Ativo/Passivo, normalmente há dois servidores de ARR nos quais um servidor processa as solicitações enquanto o outro servidor permanece como um servidor de failover. Embora essa configuração alcance alta disponibilidade removendo o único ponto de falha, ela não é uma solução de expansão, pois a capacidade agregada dos servidores de conteúdo é limitada pela capacidade máxima de um servidor de ARR.

Nessa configuração, como dois servidores de ARR são configurados da mesma maneira, uma configuração compartilhada é usada. O BIG-IP da F5 é configurado para rotear todas as solicitações para o servidor de ARR ativo e apenas rotear solicitações para o servidor de ARR passivo quando necessário.

O recurso de afinidade de nome de host no ARR cria afinidade para as solicitações, para um servidor específico (ou um grupo de servidores no RC) com base no nome do host. As informações de estado de runtime do mapeamento com afinidade entre os nomes de host e os servidores de conteúdo, são armazenadas na memória dentro de uma instância de um servidor de ARR. Na versão do ARR Versão 1, o ARR aproveita o Cache Externo da Microsoft para IIS para compartilhar e manter esse estado de runtime entre vários servidores de ARR. Mais informações sobre esse cenário estão disponíveis neste documento.

Esse cenário tem suporte total no ARR Versão 1.

Configuração do ARR

Etapa 1: habilitar a configuração compartilhada em dois servidores de ARR.

  • Siga as etapas neste documento para configurar a configuração compartilhada no IIS.

Etapa 2: configurar a arquitetura de implantação de 3 camadas usando o ARR.

  • Siga as etapas neste documento para configurar o ARR na arquitetura de implantação de 3 camadas.

  • Em um nível alto, o documento acima descreve:

    • Como disponibilizar conteúdo estático no servidor de ARR.
    • Como escrever regras de reescrita de URL para conteúdo estático para que elas sejam atendidas diretamente do servidor de ARR.
    • Como escrever regras de reescrita de URL para conteúdo dinâmico para que sejam encaminhadas para os servidores de aplicativos.

Etapa 3: habilitar e configurar o Cache Externo.

  • Siga as etapas neste documento para habilitar e configurar o Cache Externo a ser usado com o ARR.

Configuração de BIG-IP da F5

Nesse cenário, você criará um servidor virtual que balanceia a carga para um pool de dois (ou mais) servidores de ARR. O método de balanceamento de carga selecionado deve enviar todo o tráfego para o servidor de ARR primário até que ele fique indisponível. Nesse ponto, o BIG-IP LTM deve enviar todo o tráfego para o servidor de ARR secundário.

Etapa 1: configurar o pool de servidores de ARR.

  • Na seção Tráfego Local, selecione Pools. Em seguida, clique no botão Criar para criar o aplicativo.
  • Qualquer nome exclusivo funcionará para o pool, o exemplo usa ARR_Pool. – Para o Monitor de Integridade, use um monitor do HTTP personalizado ou o monitor do HTTP padrão. – Deixe o Método de Balanceamento de Carga definido como Round Robin. Nesse cenário, como há apenas um servidor de ARR ativo e passivo, o balanceamento de carga não é usado. – Habilite a Ativação do Grupo de Prioridades. Isso configura o BIG-IP para enviar tráfego para os servidores com o valor de prioridade mais alto. Quando esses servidores estão indisponíveis, o BIG-IP envia o tráfego para o servidor de ARR com o próximo valor de prioridade mais alta. – Nesse cenário, o servidor de ARR em 10.0.0.1 tem um valor de prioridade de 1 e 10.0.0.2 tem um valor de prioridade 2. Todo o tráfego será enviado para 10.0.0.2 até que ele fique inoperante e, em seguida, o tráfego será enviado para 10.0.0.1.

Screenshot of the Big I P web site. In the name box is A R R underscore pool. In the Local Traffic pane, Pools is selected.

Etapa 2: configurar o servidor virtual.

  • Na seção Tráfego Local, selecione Servidores Virtuais. Em seguida, clique no botão Criar para criar um servidor virtual.
  • Qualquer nome exclusivo funcionará para o servidor virtual, o exemplo usa ARR_VS. – Para o Destino, use o endereço IP para o qual os usuários apontarão seus navegadores. Neste caso, usamos . Para a Porta de Serviço, usamos '80'. – Para a seção Tipo de Servidor Virtual, você tem várias opções. Como você depende do ARR para rotear, selecione o HTTP de Desempenho, que foi projetado para obter o melhor desempenho. – Para o Pool Padrão, selecione o pool que você criou na Etapa 1.

Screenshot of the F five web page. In the Default Pool box, A R R pool is selected. In the Local Traffic pane, Virtual Servers is selected.

  • Neste ponto, você deverá conseguir se conectar a esse Servidor Virtual, que será enviado para o servidor de ARR apropriado.

Opção 2: Ativo/Ativo no ARR

No modo Ativo/Ativo, é possível ter dois ou mais servidores de ARR. Essa configuração obtém alta disponibilidade e escalabilidade, ao contrário do modo Ativo/Passivo, que alcança apenas alta disponibilidade. Como vários servidores de ARR são configurados da mesma maneira, uma configuração compartilhada é usada. O BIG-IP da F5 é configurado para balancear a carga de solicitações de entrada para todos os servidores de ARR disponíveis e íntegros, que, por sua vez, encaminha solicitações para os servidores de conteúdo.

Conforme observado anteriormente, as informações de estado de runtime do mapeamento com afinidade entre os nomes de host e os servidores de conteúdo são armazenadas na memória em uma instância de um servidor de ARR. Para compartilhar essas informações entre vários servidores de ARR, o Cache Externo da Microsoft para IIS é usado. Para obter mais informações sobre o Cache Externo, consulte este documento.

Configuração do ARR

A configuração do ARR para Ativo/Ativo é idêntica à de Ativo/Passivo. A principal diferença é como a F5 é configurada.

Etapa 1: habilitar a configuração compartilhada em dois servidores de ARR.

  • Siga as etapas neste documento para configurar a configuração compartilhada no IIS.

Etapa 2: configurar a arquitetura de implantação de 3 camadas usando o ARR.

  • Siga as etapas neste documento para configurar o ARR na arquitetura de implantação de 3 camadas.

  • Em um nível alto, o documento acima descreve:

    • Como disponibilizar conteúdo estático no servidor de ARR.
    • Como escrever regras de reescrita de URL para conteúdo estático para que elas sejam atendidas diretamente do servidor de ARR.
    • Como escrever regras de reescrita de URL para conteúdo dinâmico para que sejam encaminhadas para os servidores de aplicativos.

Etapa 3: habilitar e configurar o Cache Externo.

  • Siga as etapas neste documento para habilitar e configurar o Cache Externo a ser usado com o ARR.

Configuração de BIG-IP da F5

Nesse cenário, todos os servidores de ARR disponíveis são considerados ativos e candidatos para tráfego com balanceamento de carga. Use o BIG-IP LTM para determinar a integridade e o desempenho dos front-ends do ARR e direcionar o tráfego aos de melhor desempenho.

Etapa 1: configurar o pool de servidores de ARR.

  • Na seção Tráfego Local, selecione Pools. Em seguida, clique no botão Criar para criar o aplicativo.
  • Qualquer nome exclusivo funcionará para o pool, o exemplo usa ARR_Pool. – Para o Monitor de Integridade, use um monitor do HTTP personalizado ou o monitor do HTTP padrão. – Como você tem vários servidores de ARR para os quais distribuir o tráfego, você desejará selecionar um método de balanceamento de carga que melhor atenda às suas necessidades. Supondo que todos os servidores de ARR tenham características de hardware semelhantes, um método de balanceamento de carga dinâmico, como mais rápido, observado ou preditivo, fornecerá uma distribuição baseada em desempenho.

Screenshot of the F five web page. In the Local Traffic box, Pools is selected. In the Load Balancing Method box, Fastest application is selected.

Etapa 2: configurar o servidor virtual.

  • Na seção Tráfego Local, selecione Servidores Virtuais. Em seguida, clique no botão Criar para criar um servidor virtual.
  • Qualquer nome exclusivo funcionará para o servidor virtual, o exemplo usa ARR_VS. – Para o Destino, use o endereço IP para o qual os usuários apontarão seus navegadores. Neste caso, usamos . Para a Porta de Serviço, usamos '80'. – Para a seção Tipo de Servidor Virtual, você tem várias opções. Como você depende do ARR para rotear, selecione o HTTP de Desempenho, que foi projetado para obter o melhor desempenho. – Para o Pool Padrão, selecione o pool que você criou na Etapa 1.

Screenshot of the F five web page. In the Local Traffic box, Virtual Servers is selected. In the Default Pool box, A R R Pool is selected.

Resumo

Neste white paper, dois cenários principais do ARR foram analisados para obter alta disponibilidade e escalabilidade implantando vários servidores de ARR e usando BIG-IP da F5.

Apêndice

Apêndice A: todos os cabeçalhos HTTP disponíveis e variáveis de servidor para gravar regras de decisão de roteamento.

ALL_HTTP ALL_RAW APPL_MD_PATH
APPL_PHYSICAL_PATH CERT_COOKIE CERT_FLAGS
CERT_ISSUER CERT_KEYSIZE CERT_SECRETKEYSIZE
CERT_SERIALNUMBER CERT_SERVER_ISSUER CERT_SERVER_SUBJECT
CERT_SUBJECT CONTENT_LENGTH CONTENT_TYPE
DOCUMENT_ROOT GATEWAY_INTERFACE HTTP_ACCEPT
HTTP_ACCEPT_ENCODING HTTP_ACCEPT_LANGUAGE HTTP_CONNECTION
HTTP_CONTENT_LENGTH HTTP_HOST HTTP_IF_MODIFIED_SINCE
HTTP_IF_NONE_MATCH HTTP_REFERER HTTP_UA_CPU
HTTP_USER_AGENT HTTPS HTTPS_KEYSIZE
HTTPS_SECRETKEYSIZE HTTPS_SERVER_ISSUER HTTPS_SERVER_SUBJECT
INSTANCE_ID INSTANCE_META_PATH LOCAL_ADDR
PATH_INFO PATH_TRANSLATED QUERY_STRING
REMOTE_ADDR REMOTE_HOST REMOTE_PORT
REMOTE_USER REQUEST_FILENAME REQUEST_METHOD
REQUEST_URI SCRIPT_FILENAME SCRIPT_NAME
SERVER_ADDR SERVER_NAME SERVER_PORT
SERVER_PORT_SECURE SERVER_PROTOCOL SERVER_SOFTWARE
URL