DevSecOps

21 nov, 2016

Integrando um distribuidor de tráfego em sua aplicação em produção

Publicidade

Na maioria dos casos, os desenvolvedores enfrentam o problema da distribuição do tráfego entre várias interfaces de backend quando já têm uma aplicação sendo executada, com os usuários existentes e a constante entrada de carga. Assim, apesar das dificuldades de configuração do compartilhamento geral de tráfego, é ainda mais complicado devido à necessidade de aplicar as mudanças dinâmicas no front-end da aplicação. Em muitos casos, isso causa ao aplicativo uma parada temporária. Então, para minimizar tal influência negativa para os usuários, nós vamos considerar abaixo as maneiras de integrar a solução Jelastic Traffic Distributor (Distribuidor de Trafego da Jelastic) à sua topologia de execução da aplicação facilmente e sem sofrimento.

O Distribuidor de Tráfego proporciona benefícios de várias maneiras, tais como:

  • Adicionar atualizações invisíveis à aplicação utilizando o “blue green deployment“, técnica que visa a reduzir o tempo de parada do aplicativo.
  • Examinar a performance, experiência do usuário e a estabilidade das novas versões através de teste A/B.
  • Aumentar a disponibilidade do serviço com proteção avançada failover.

Caso você queira instalar o Distribuidor de Tráfego manualmente nos ambientes recentemente criados, por favor, utilize o passo-a-passo detalhado (em inglês).

E para tornar esse add-on disponível para aplicações que já estão rodando, siga as instruções abaixo:

Adicione uma cópia da aplicação ao roteamento

Para este exemplo, nós executamos uma aplicação em um servidor Apache dentro do ambiente primary-env.

primary-environment-jelastic

1. Primeiro, você precisa configurar mais um ambiente com a mesma aplicação (vamos chamar de second-env).

Dicas:

  • Se você está trabalhando com um serviço baseado no Docker, a cópia pode ser recriada facilmente do zero, utilizando a imagem apropriada de deployment em um ambiente separado.
  • Você também pode utilizar a função de clonagem de ambientes para conseguir uma cópia idêntica do ambiente instantaneamente (ex.: com todos os dados e configurações já preparados) de qualquer tipo. No entanto, nesse caso, você deve estar ciente de que seus clientes podem sofrer um pequeno período de queda durante essa operação, pois os ambientes devem ser parados para serem clonados.

cloned-environment-jelastic

Nota: Não se esqueça de configurar corretamente os dados incorporados (ex.: links diretos, IPs etc.) para a aplicação em seu ambiente clonado, se forem utilizados.

2. Agora, você está pronto para instalar o Distribuidor de Tráfego, especificando ambos os ambientes como endpoints.

traffic-distributor-installation-jelastic

Dica: Se existirem várias regiões de ambiente disponíveis na plataforma do provedor escolhido, você pode em sequência migrar um dos seus ambientes para uma outra máquina física. Isso garantirá uma maior proteção contra quedas no sistema, pois você será capaz de tratar o problema de hardware em um dos seus backends (caso aconteça), encaminhando as chamadas para a instância que permanece em operação.

 3. É isso! O Distribuidor de Tráfego está configurado e pronto para tratar as chamadas para nossa aplicação.

 traffic-distributor-jelastic

 

A única coisa que falta a ser feita é direcionar o tráfego que chegar, do primeiro ambiente para o distribuidor de tráfego.

Configure o ponto de entrada da aplicação através do Distribuidor de Tráfego

Se estiver executando em produção, o mais provável é que  sua aplicação tenha um nome de domínio personalizado ligado ao nosso ambiente inicial (primary-env, em nosso caso).

Dica: Para vincular um domínio personalizado ao ambiente, siga um dos guias abaixo, dependendo do ponto de entrada utilizado:

  • Se estiver utilizando um Balanceador de Carga Compartilhado – link.
  • Se estiver utilizando um IP Público – link.

Para um redirecionamento correto das chamadas (ex.: processá-las através do distribuidor), nós precisamos mover o ponto de entrada apropriado para o ambiente do Distribuidor de Tráfego. Dessa maneira, ele será colocado na frente do par de endpoints escolhidos e vai compartilhar a carga de entrada entre eles baseado nas configurações especificadas.

Para conseguir isso, siga um dos procedimentos simples abaixo baseados no método de ligação do domínio personalizado:

  • Se estiver utilizando redirecionamento CNAME – troque os domínios entre o ambiente inicial e o ambiente  Distribuidor de Tráfego.
  • Se estiver utilizando “A Record” – troque os IPs Públicos para transferir os IPs externos utilizados para o ambiente Distribuidor de Tráfego.

Mudança de domínios

1. Posicione o mouse sobre o ambiente ao qual seu domínio está atrelado (ex.: primary-env) e selecione Configurações nos ícones que aparecerem.

settings-jelastic

2. Nas configurações de ambiente, a seção de Domínios Personalizados aparecerá por padrão, então selecione o seu ambiente de Distribuidor de Tráfego na lista drop-down da parte de troca de domínios.

swap-domains-jelastic

Agora, clique no botão Mudar e confirme essa ação na janela que aparecerá para aplicar as mudanças.

3. Em alguns minutos, seu domínio personalizado será movido para o ambiente com o Distribuidor de Tráfego para que seus dois backends fiquem disponíveis através desse domínio.

 Mudança de IPs Públicos

A maneira mais fácil de passar o IP Público do primary-env (ex.: o seu domínio está atrelado) ao Distribuidor de Tráfego é utilizar a funcionalidade de Mudança de Endereços externos, disponível no Jelastic CLI.

Ele permite realizar as configurações necessárias com um único comando, evitando a configuração manual do A Recording.

No entanto, se você preferir trabalhar via GUI, essa operação pode ser realizada com a mudança manual dos IPs Públicos do seu domínio. Para isso:

1. Garanta que a instância do balanceador NGINX do seu distribuidor de tráfego tenha o IP externo configurado e pegue seu valor do dashboard.

swap-public-ips-jelastic

2. Então, reconfigure seu A Record através do gerenciador de DNS para que ele leve ao novo endereço IP.

Dicas:

  • Para que essas mudanças sejam aplicadas, você precisa aguardar até que o atual registro de DNS no cache expire (até que isso aconteça, os servidores DNS podem retornar o endereço IP antigo quando requisitado). Para saber o período exato em que o IP antigo será mantido em cache, verifique a configuração de TTL em seu gerenciador de DNS (normalmente apresentado em segundos).
  • Não se esqueça de verificar suas configurações de dependentes do IP e ajustá-las de acordo com o necessário.

3. Depois que o endereço do ponto de entrada for alterado, você pode remover o IP Público do ambiente inicial (primary-env), caso não seja mais necessário para acesso direto.

É isso! A partir de agora, todo tráfego que chegar ao seu domínio será processado pelo Distribuidor de Tráfego Jelastic, que, por sua vez, vai encaminhar  entre os endpoints da aplicação de acordo com a proporção configurada. Teste você mesmo em um dos parceiros da Jelastic.

 ***

Tetiana Markova faz parte do time de colunistas internacionais do iMasters. A tradução do artigo é feita pela redação iMasters, com autorização do autor, e você pode acompanhar o artigo em inglês no link: http://blog.jelastic.com/2016/10/26/integrate-traffic-distributor-into-your-running-application/.