Configure múltiplas origens com load balancing
Descubra como configurar o Load Balancer na Azion para otimizar a performance de sua Application, utilizando múltiplas origens e o algoritmo Round Robin.
Quando você cria uma application, você precisa definir uma origem. No entanto, infraestruturas mais complexas e robustas podem precisar de múltiplas origens para a mesma aplicação. O módulo Load Balancer permite que você use algoritmos de balanceamento de carga para gerenciar altos números de acesso e controlar os comportamentos de sua origem.
Existem instruções separadas para API v3 usando configurações legadas de Origin e API v4 usando o novo produto Connector.
Os seguintes passos irão descrever um caso de uso onde a default origin deve ser do tipo Load Balancer com o algoritmo Round-Robin. Sinta-se à vontade para interpretar e modificar as instruções passo a passo de acordo com o seu caso de uso específico.
As seguintes regras de negócio de diferentes servidores de origem devem ser configuradas com balanceamento de carga:
- A aplicação deve ter três origens.
- O servidor primário deve ter uma maior capacidade de carga.
- O servidor secundário deve ter uma capacidade de carga média, suficiente para lidar com grandes picos de tráfego de entrada.
- O servidor de backup deve ter uma baixa capacidade de carga e só deve ser ativo em circunstâncias especiais.
- Cada um desses servidores deve ser hospedado em um provedor de armazenamento ou serviço de nuvem diferente, já que as falhas de servidor não ocorrem frequentemente ao mesmo tempo.
- Todas as origens devem conter o mesmo conteúdo e ser configuradas da mesma forma para a application.
Portanto, as configurações necessárias são:
| Origem | Função | Endereço | Capacidade de carga | Status |
|---|---|---|---|---|
| 1 | Servidor primário | example.com | Alta capacidade de carga | Deve estar sempre ativo. |
| 2 | Servidor secundário | example.net | Capacidade de carga média | Deve estar sempre ativo. |
| 3 | Servidor de backup | example.org | Baixa capacidade de carga | Deve estar ativo apenas em caso de manutenção ou picos de tráfego. |
Agora você precisa configurar um novo Connector para vincular sua aplicação ao seu bucket do Object Storage. Para isso:
- Acesse o Azion Console > Connectors.
- Clique no botão + Connector.
- Na seção General, dê ao seu Connector um nome único e descritivo (por exemplo,
Multiple Origins Connector). - Na seção Connector Type, selecione HTTP.
- Ative o switch Load Balancer, que permite adicionar múltiplos endereços.
- No campo Method, selecione Round-Robin.
- No primeiro campo Address, especifique o servidor primário. Por exemplo,
example.com. - Como esta origem tem uma maior capacidade de carga, no campo Weight, adicione um peso de
3para esta primeira origem. - No campo Server Role, mantenha Primary selecionado.
- Mantenha este endereço Active.
- No segundo campo Address, especifique o servidor secundário. Neste caso,
example.net. - Devido à sua menor capacidade, no campo Weight, adicione um peso de
2para este endereço. - No campo Server Role, selecione Primary. Como este endereço tem menor peso, o primeiro endereço será priorizado nas conexões.
- Mantenha este endereço Active.
- Adicione uma terceira origem clicando no botão + Add Address.
- No campo Address, especifique a origem de backup. Neste caso,
example.org. - Mantenha o campo Weight em branco. Ele assumirá um valor padrão de
1. - No campo Server Role, selecione Backup.
- Desative este endereço desligando o switch Active.
- Clique no botão Save.
Para ativar o Connector na sua application:
- Acesse a aba Rules Engine.
- Edite a regra padrão ou adicione uma nova regra de request.
- Na seção Criteria, para aplicar o Connector para toda a aplicação, defina o critério como
If ${uri} starts with /. - Na seção Behavior, selecione o comportamento Set Connector.
- Selecione o Connector que deseja aplicar.
- Clique no botão Save.
- Aguarde alguns minutos para que as mudanças se propaguem para o edge. Em seguida, acesse sua aplicação ou use a linha de comando para fazer uma requisição e verificar se as mudanças foram feitas.
Primeiro, para habilitar o módulo Load Balancer:
- Acesse o Azion Console > Applications.
- Clique na application para a qual você quer configurar uma nova origem com balanceador de carga.
- Na aba Main Settings, em Modules, ative o Load Balancer.
- Clique no botão Save.
Para modificar a origem de acordo com o cenário descrito acima:
- Selecione a aba Origins.
- Na aba Origins, clique na Default Origin da lista.
- Dê um nome para sua nova origem.
- Em Type, selecione Load Balancer.
- No campo Method, selecione Round-Robin.
- No primeiro campo Address, especifique o servidor primário. Por exemplo,
example.com. - Como esta origem tem uma maior capacidade de carga, no campo Weight, adicione um peso de
3para esta primeira origem. - No campo Server Role, mantenha Primary selecionado.
- Mantenha esta origem Active.
- No segundo campo Address, especifique o servidor secundário. Neste caso,
example.net. - Devido à sua menor capacidade, no campo Weight, adicione um peso de
2para esta origem. - No campo Server Role, selecione Primary. Esta origem tem um valor de peso menor, a origem preferida para conexões será a primeira.
- Mantenha esta origem Active.
- Adicione uma terceira origem clicando no botão + Add Origin.
- No campo Address, especifique a origem de backup. Neste caso,
example.org. - Mantenha o campo Weight em branco. Ele assumirá um valor padrão de
1. - No campo Server Role, selecione Backup.
- Desative esta origem desligando o interruptor Active.
- Clique no botão Save.
Aguarde alguns minutos para que as mudanças se propaguem. Em seguida, acesse sua aplicação ou use a linha de comando para fazer uma requisição e verificar se as mudanças foram feitas.
- Execute a seguinte requisição
POSTem seu terminal, substituindo[TOKEN VALUE]pelo seu personal token para criar um Connector.
- Você deve receber uma resposta confirmando a criação do Connector, copie o campo ID. Ele será usado no próximo passo.
- Execute a seguinte requisição
POSTem seu terminal para criar uma regra no Rules Engine, vinculando o Connector à sua Application. Substitua a variável<application_id>pelo ID da Application e<connector_id>pelo ID do Connector copiado anteriormente:
- Execute a seguinte requisição
GETem seu terminal, substituindo[TOKEN VALUE]pelo seu personal token e a variável<application_id>pelo ID da sua application para recuperar a<origin_key>da sua origem padrão, que é um valor UUID:
- Você receberá uma resposta semelhante a esta:
- Copie o valor
<origin_key>. - Execute a seguinte requisição
PATCHpara modificar a origem padrão como segue, substituindo a chave e o id da aplicação na URL:
- Você receberá uma resposta semelhante a esta, confirmando que as mudanças foram feitas:
- Aguarde alguns minutos para que a propagação ocorra.