Nunca precisei configurar um servidor Varnish, mas imagino que isso seja possível usando o gerador de balanceamento de carga com uma configuração round-robin.
Por exemplo, se você configurou 4 backend apontando para a versão antiga do seu site / página e 1 para a nova versão, como esta ...
backend old1 {
.host = "old.example.com";
.probe = { .url = "/"; .interval = 5s; .timeout = 1 s; .window = 5; .threshold = 3; }
}
backend old2 {
.host = "old.example.com";
.probe = { .url = "/"; .interval = 5s; .timeout = 1 s; .window = 5; .threshold = 3; }
}
backend old3 {
.host = "old.example.com";
.probe = { .url = "/"; .interval = 5s; .timeout = 1 s; .window = 5; .threshold = 3; }
}
backend old4 {
.host = "old.example.com";
.probe = { .url = "/"; .interval = 5s; .timeout = 1 s; .window = 5; .threshold = 3; }
}
backend new {
.host = "new.example.com";
.probe = { .url = "/"; .interval = 5s; .timeout = 1 s; .window = 5; .threshold = 3; }
}
E então um diretor que rodou entre eles ...
director blah round-robin {
{ .backend = old1; }
{ .backend = old2; }
{ .backend = old3; }
{ .backend = old4; }
{ .backend = new; }
}
A versão new.example.com do site receberia 20% do tráfego.
Isso é um pouco complicado (pode muito bem haver uma solução melhor), mas acredito que isso funcionaria.