netcentric: customer experience
TRANSCRIPT
![Page 1: Netcentric: customer experience](https://reader031.vdocuments.site/reader031/viewer/2022030312/58ede72a1a28abab538b4705/html5/thumbnails/1.jpg)
Varnish Plus – a customer experience
AUTHOR: DATE: TO:
Dan [email protected] 11.02.2016 Varnish Summit Berlin
![Page 2: Netcentric: customer experience](https://reader031.vdocuments.site/reader031/viewer/2022030312/58ede72a1a28abab538b4705/html5/thumbnails/2.jpg)
About Netcentric and Dan Beldiman
Who
We implement and operate large and complex web content management systems ✱ Based on Adobe Experience Manager (AEM) ✱ High profile customers with a world-wide user base
I design the architecture and make sure it runs fast and reliable ✱ Solutions Architect ✱ Head of Systems Engineering at Netcentric
![Page 3: Netcentric: customer experience](https://reader031.vdocuments.site/reader031/viewer/2022030312/58ede72a1a28abab538b4705/html5/thumbnails/3.jpg)
Our typical Challanges
Two month release cycles, every release approx. 500 PDs development
Security Policies and Risk Assessments
Complex solutions in the backend, queries can take long
Segregation of duties for operations
![Page 4: Netcentric: customer experience](https://reader031.vdocuments.site/reader031/viewer/2022030312/58ede72a1a28abab538b4705/html5/thumbnails/4.jpg)
Varnish Plus – Our Solution
It is far more than just caching ✱ Functionality which allows us to implement
requirements efficiently ✱ Reliable and easy to maintain ✱ Support and consulting provided
![Page 5: Netcentric: customer experience](https://reader031.vdocuments.site/reader031/viewer/2022030312/58ede72a1a28abab538b4705/html5/thumbnails/5.jpg)
… then the out of the box caching of AEM ✱ Highly flexible caching and flushing configuration ✱ Caching on request basis
✱ Queuing of multiple requests to the same page while not yet in cache
Why Varnish Plus caches better ...
✱ Web pages ✱ Redirects
![Page 6: Netcentric: customer experience](https://reader031.vdocuments.site/reader031/viewer/2022030312/58ede72a1a28abab538b4705/html5/thumbnails/6.jpg)
Our typical Caching Setup
Varnish AEM Apache
SSO GeoIP MURL
![Page 7: Netcentric: customer experience](https://reader031.vdocuments.site/reader031/viewer/2022030312/58ede72a1a28abab538b4705/html5/thumbnails/7.jpg)
Use Cases
![Page 8: Netcentric: customer experience](https://reader031.vdocuments.site/reader031/viewer/2022030312/58ede72a1a28abab538b4705/html5/thumbnails/8.jpg)
Highly flexible caching logic
Varnish allow us to cache exactly how we need Some pages flushed on activation ✱ Content pages
Usage of ESI, which allow to flush parts of a page ✱ Stock ticker
Some page components flushed on expiration ✱ Personalized activity streams
1
![Page 9: Netcentric: customer experience](https://reader031.vdocuments.site/reader031/viewer/2022030312/58ede72a1a28abab538b4705/html5/thumbnails/9.jpg)
Internal CDN
Various applications – delivery with Varnish
100.000 internal users distributed around the globe ✱ Various backend systems – all based in Switzerland
Allows caching close to end user ✱ Reduced the length of the wire
2
![Page 10: Netcentric: customer experience](https://reader031.vdocuments.site/reader031/viewer/2022030312/58ede72a1a28abab538b4705/html5/thumbnails/10.jpg)
Migration of legacy Systems
Smooth Migration, new and old system in paralell
Old and new backend used in parallel ✱ Content Structure and naming remained unchanged
Content Migration with restructuring ✱ Redirect Feature in AEM
3
Varnish
AEM
Legacy Hosting
1) GET
2) GET
3) 404
4) GET
5) 200
6) 200
![Page 11: Netcentric: customer experience](https://reader031.vdocuments.site/reader031/viewer/2022030312/58ede72a1a28abab538b4705/html5/thumbnails/11.jpg)
How we use it
![Page 12: Netcentric: customer experience](https://reader031.vdocuments.site/reader031/viewer/2022030312/58ede72a1a28abab538b4705/html5/thumbnails/12.jpg)
Cut Content right 1
if (req.url ~ "^/content/intranet/\w{2}/group-regional-ceo"){ set req.url = regsuball(req.url,"(^/content/intranet/\w{2})/group-regional-ceo(/.*)","\1/regional-presidents\2"); }
Intranet content subtree was moved ✱ Moving takes several hours ✱ Move was not planed properly ✱ New and Old URLs where in use
Redirect in Varnish
![Page 13: Netcentric: customer experience](https://reader031.vdocuments.site/reader031/viewer/2022030312/58ede72a1a28abab538b4705/html5/thumbnails/13.jpg)
Dig to the problem 2
Pages with bad date formatting where delivered ✱ Extensive analysis using varnish log ✱ Accept-Language header was not set by requests from
monitoring system ✱ Java Standard Taglib (JSTL) renders date in unexpected
format if header not set (if set, the value does not matter)
Setting Headers ✱ Setting headers when not set
#FITREQ-24502 set default accept language header if (!req.http.Accept-Language) { set req.http.Accept-Language = "en_US"; }
![Page 14: Netcentric: customer experience](https://reader031.vdocuments.site/reader031/viewer/2022030312/58ede72a1a28abab538b4705/html5/thumbnails/14.jpg)
Fix other application‘s defects 3
Authenticated users where suddenly logged out ✱ Sometimes logged in users where logged out ✱ CQ Servlet Engine did not support connection re-use ✱ JSESSIONID of 1st request was used for all consecutive
request on same TCP connection
Configuration of dedicated backend ✱ Only relevant for html request ✱ Configure dedicated backend for html requests ✱ Disable connection re-use for this backend
![Page 15: Netcentric: customer experience](https://reader031.vdocuments.site/reader031/viewer/2022030312/58ede72a1a28abab538b4705/html5/thumbnails/15.jpg)
3 Fix other application‘s defects
backend html_requests { .host = "localhost"; .port = "4502";}
sub vcl_recv { if(req.url ~ "\.html”) { set req.backend_hint = html_requests; }}
sub vcl_pass { if (req.backend_hint == html_requests) { set req.http.Connection = "close"; } return (fetch);}
![Page 16: Netcentric: customer experience](https://reader031.vdocuments.site/reader031/viewer/2022030312/58ede72a1a28abab538b4705/html5/thumbnails/16.jpg)
Questions?