Varnish - atrás, na frente ou em vez do balanceador de carga (HAProxy / nginx)

1

Eu pretendo executar alguns pequenos servidores de "nuvem física" do ARM por trás de um balanceador de carga (seja HAProxy ou o próprio nginx), mas não consigo decidir onde colocar o Verniz em toda a confusão.

Eu posso tê-lo em cada instância, fazendo o trabalho localmente, mas vendo que o conteúdo será o mesmo, parece um desperdício.

Eu também posso tê-lo na mesma instância que o balanceador de carga - mas isso cria a pergunta - na frente ou atrás dele? Para mim, logicamente, ele deve estar na frente de - se ele puder buscar a página do cache, não há necessidade de incomodar o balanceador de carga com a solicitação. E posso até remover o balanceador de carga e usar o Varnish para arredondar o robin entre as instâncias de back-end.

Mas encontrei uma infinidade de soluções diferentes on-line, sem nenhum benchmark (recente) ou prós / contras de qualquer variante, por isso não posso decidir se há algum problema com meu cenário "ideal" (Varnish como balanceador de carga e mecanismo de cache).

Então - é possível usar o Varnish como balanceador de carga? Se não, devo colocá-lo na frente ou atrás do próprio balanceador de carga?

    
por Adrian Todorov 11.11.2015 / 15:34

1 resposta

0

Os caches tradicionalmente passam na frente do balanceador de carga, pois o balanceador de carga existe para mitigar os servidores de aplicativos lentos e o cache procura atenuar a execução do servidor de aplicativos. A desvantagem é que um cluster do tipo Raspi pode não ter muitos recursos para manter caches grandes.

O tempo em que você quer colocar o Varnish para trás do balanceador de carga é quando você precisa distribuir um cache em várias máquinas, seja para tolerância a falhas ou para reduzir os requisitos de armazenamento. Por exemplo, um balanceador de carga configurado para hash com base na URL de solicitação é capaz de garantir que todas as solicitações de "cat" vão para a máquina A, enquanto as solicitações de "dog" vão para a máquina B, caso você queira contar com um cache grande, mas não cabe tudo em um dos pequenos dispositivos ARM.

    
por 22.01.2017 / 23:22