
Hoy tenemos nuestra capa web expuesta al mundo. Nos gustaría agregar Varnish delante de nuestra capa web para acelerar el sitio y reducir las llamadas al backend. Sin embargo, tenemos algunas preocupaciones y me preguntaba cómo las aborda la mayoría de la gente:
Pruebas A/B: ¿Cómo se prueban dos "versiones" de cada página y se comparan? Quiero decir, ¿cómo sabe el barniz qué página mostrar? ¿Si y cómo se guardan versiones separadas en cada página?
Implementación de funciones: ¿cómo configuraría un mecanismo de implementación de funciones simple? Digamos que quiero abrir una nueva función/página para solo el 10% del tráfico... y luego aumentarla al 20%.
¿Cómo maneja las implementaciones de código? ¿Purgas todo el caché de barniz en cada implementación? (Tenemos implementaciones a diario). ¿O simplemente dejas que caduque lentamente (usando TTL)?
Cualquier idea y ejemplo sobre estos temas esmuy¡apreciado!
Respuesta1
Pruebas A/B: ¿Cómo se prueban dos "versiones" de cada página y se comparan? Quiero decir, ¿cómo sabe el barniz qué página mostrar? ¿Si y cómo se guardan versiones separadas en cada página?
Tienes varias opciones:
- Simplemente expóngalos en diferentes URL.
Omita el caché de la URL específica. Puedes hacerlo regresando
pass
envcl_recv
. Algo como esto:sub vcl_recv { if (req.url ~ "^/path/to/document") { return (pass); } }
Purgue explícitamente el caché cuando exponga una nueva versión.
Implementación de funciones: ¿cómo configuraría un mecanismo de implementación de funciones simple? Digamos que quiero abrir una nueva función/página para solo el 10% del tráfico... y luego aumentarla al 20%.
No estoy seguro de que exista una forma "simple" de hacer esto. Dado que puede colocar C
código arbitrario en sus .vcl
archivos, probablemente podría agregar algo de lógica para elegir un número aleatorio y luego seleccionar la ruta de backend adecuada según el resultado.
¿Cómo maneja las implementaciones de código? ¿Purgas todo el caché de barniz en cada implementación? (Tenemos implementaciones a diario). ¿O simplemente dejas que caduque lentamente (usando TTL)?
Para cambios importantes simplemente purgamos el caché y para cambios más pequeños simplemente dejamos que caduquen.