
Hoje temos nossa camada web exposta ao mundo. Gostaríamos de adicionar Varnish na frente de nossa camada web para acelerar o site e reduzir chamadas para o backend. No entanto, temos algumas preocupações e gostaria de saber como a maioria das pessoas as aborda:
Teste A/B – Como você testa duas “versões” de cada página e compara? Quero dizer, como o verniz sabe qual página exibir? Se e como você salva versões separadas em cada página?
Implementação de recursos - como você configuraria um mecanismo simples de implementação de recursos? Digamos que eu queira abrir um novo recurso/página para apenas 10% do tráfego.. e depois aumentar para 20%?
Como você lida com implantações de código? Você limpa todo o seu cache de verniz a cada implantação? (Temos implantações diariamente). Ou você apenas deixa expirar lentamente (usando TTL)?
Quaisquer idéias e exemplos sobre essas questões sãomuitoestimado!
Responder1
Teste A/B – Como você testa duas “versões” de cada página e compara? Quero dizer, como o verniz sabe qual página exibir? Se e como você salva versões separadas em cada página?
Você tem várias opções:
- Basta expô-los em URLs diferentes.
Ignore o cache do URL específico. Você poderia fazer isso retornando
pass
emvcl_recv
. Algo assim:sub vcl_recv { if (req.url ~ "^/path/to/document") { return (pass); } }
Limpe explicitamente o cache ao expor uma nova versão.
Implementação de recursos - como você configuraria um mecanismo simples de implementação de recursos? Digamos que eu queira abrir um novo recurso/página para apenas 10% do tráfego.. e depois aumentar para 20%?
Não tenho certeza se existe uma maneira "simples" de fazer isso. Como você pode colocar C
código arbitrário em seus .vcl
arquivos, provavelmente poderá adicionar alguma lógica para escolher um número aleatório e, em seguida, selecionar o caminho de back-end apropriado com base no resultado.
Como você lida com implantações de código? Você limpa todo o seu cache de verniz a cada implantação? (Temos implantações diariamente). Ou você apenas deixa expirar lentamente (usando TTL)?
Para alterações maiores, apenas limpamos o cache e, para alterações menores, apenas deixamos as coisas expirarem.