Varnish high availability

21
LA 2016 Varnish High Availability Clustered cache replication Reza Naghibi

Transcript of Varnish high availability

Page 1: Varnish high availability

LA 2016

Varnish High AvailabilityClustered cache replication

Reza Naghibi

Page 2: Varnish high availability

What is VHA?

● A replication daemon

● Asynchronous (shared memory)

● Small and safe

Page 3: Varnish high availability

Benefits

● Higher hit ratio

● Less backend traffic

● Constant backend traffic

● Cache consistency

Page 4: Varnish high availability

Safety

● No replication complexity

● On failure, cache miss

● Lean on RFC semantics (TTL/Age)

Page 5: Varnish high availability

Traditional cluster

● Shared nothing

● More nodes, more misses, more backend traffic

Page 6: Varnish high availability

Traditional cluster exampleBackend

Client

VarnishVarnish

GET /foo HTTP1.1

GET /foo HTTP1.1

Page 7: Varnish high availability

Traditional cluster exampleBackend

Client

VarnishVarnish

GET /foo HTTP1.1

GET /foo HTTP1.1

Page 8: Varnish high availability

VHA example

VHA

Backend

VarnishVarnish

GET /foo HTTP1.1

Client

Page 9: Varnish high availability

VHA example

VHA

Backend

Client

VarnishVarnish

GET /foo HTTP1.1

Page 10: Varnish high availability

VHA example

VHA

Backend

Client

VarnishVarnish

HTTP1.1 200 OK

Page 11: Varnish high availability

VHA example

VHA

Backend

Client

VarnishVarnish

HTTP1.1 200 OK

Page 12: Varnish high availability

VHA example

VHA

Backend

Client

VarnishVarnish

HEAD /foo HTTP1.1

Page 13: Varnish high availability

VHA example

VHA

Backend

Client

VarnishVarnishGET /foo HTTP1.1

Page 14: Varnish high availability

VHA example

VHA

Backend

Client

VarnishVarnish

HTTP1.1 200 OK

Page 15: Varnish high availability

VHA example

VHA

Backend

Client

VarnishVarnish

HTTP1.1 200 OK

Page 16: Varnish high availability

Configuration

● nodes.conf

● VCL snippet

Page 17: Varnish high availability

Live Demo

Page 18: Varnish high availability

Worth noting

● Same configuration file

● HTTPS support

● ESI support

● Conditional requests

Page 19: Varnish high availability

Advanced configuration

● Varnish in front of Varnish

● Multi region replication

● CDN architecture

Page 20: Varnish high availability

Future features

● Dynamic backends, no more VCL

Page 21: Varnish high availability

Thank you!Thank you!