netcentric: customer experience

Post on 12-Apr-2017

402 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Varnish Plus – a customer experience

AUTHOR: DATE: TO:

Dan Beldimandan.beldiman@netcentric.biz 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?

top related