Netcentric: customer experience
-
Upload
varnish-software -
Category
Technology
-
view
402 -
download
0
Transcript of Netcentric: customer experience
Varnish Plus – a customer experience
AUTHOR: DATE: TO:
Dan [email protected] 11.02.2016 Varnish Summit Berlin
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
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
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
… 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
Our typical Caching Setup
Varnish AEM Apache
SSO GeoIP MURL
Use Cases
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
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
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
How we use it
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
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"; }
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
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);}
Questions?