Slide 1

Slide 1 text

Where developers & sysadmins meet By Thijs Feryn Varnish

Slide 2

Slide 2 text

Hi, I’m Thijs

Slide 3

Slide 3 text

I’m @ThijsFeryn on Twitter

Slide 4

Slide 4 text

I’m an Evangelist At

Slide 5

Slide 5 text

I’m an at Evangelist

Slide 6

Slide 6 text

I’m a at board member

Slide 7

Slide 7 text

Early days

Slide 8

Slide 8 text

Down

Slide 9

Slide 9 text

Website performance?

Slide 10

Slide 10 text

More servers

Slide 11

Slide 11 text

Identify slowest part

Slide 12

Slide 12 text

Optimize database

Slide 13

Slide 13 text

Optimize runtime

Slide 14

Slide 14 text

After a while you hit the limits

Slide 15

Slide 15 text

Caching

Slide 16

Slide 16 text

Memcached or Redis

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

Optimize database Optimize runtime A void A void

Slide 19

Slide 19 text

Varnish

Slide 20

Slide 20 text

Hit rate?

Slide 21

Slide 21 text

Cookies?

Slide 22

Slide 22 text

Cache Control?

Slide 23

Slide 23 text

Developers Sysadmins

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

✓State ✓Performance ✓Scalability ✓Cache invalidation ✓Architecture People often forget

Slide 26

Slide 26 text

Who writes the VCL?

Slide 27

Slide 27 text

Varnish still considered a sysadmin responsibility

Slide 28

Slide 28 text

No content

Slide 29

Slide 29 text

Coaching developers & sysadmins

Slide 30

Slide 30 text

✓No state unless required ✓Cache-control discipline ✓Chop pages into content blocks ✓AJAX or ESI ✓Reasonable cache variations ✓Cache invalidation strategy Advice for developers

Slide 31

Slide 31 text

✓Normalize input ✓Cookies blacklist/whitelist ✓URL blacklist/whitelist VCL

Slide 32

Slide 32 text

When you respect HTTP

Slide 33

Slide 33 text

Developers are bridging the gap too

Slide 34

Slide 34 text

Collaboration & empathy AKA  DevOps

Slide 35

Slide 35 text

Architecture

Slide 36

Slide 36 text

Service Oriented Architecture

Slide 37

Slide 37 text

REST Cacheable   in  Varnish  if   done  right

Slide 38

Slide 38 text

Monolith vs Microservices

Slide 39

Slide 39 text

Distributed systems

Slide 40

Slide 40 text

Big Data & NoSQL

Slide 41

Slide 41 text

Async, concurrent & non-blocking processing

Slide 42

Slide 42 text

Common goal

Slide 43

Slide 43 text

Better end-user experience

Slide 44

Slide 44 text

Frameworks & CMS’es

Slide 45

Slide 45 text

No content

Slide 46

Slide 46 text

Bullet proof?

Slide 47

Slide 47 text

Well-designed software should be more scalable

Slide 48

Slide 48 text

Well-designed software should be faster

Slide 49

Slide 49 text

Well-designed software doesn’t need much caching?

Slide 50

Slide 50 text

Always cache … when you can

Slide 51

Slide 51 text

Well-designed software doesn’t require much VCL

Slide 52

Slide 52 text

Well-designed software knows how to purge the cache

Slide 53

Slide 53 text

Challenges

Slide 54

Slide 54 text

Caching state of mind

Slide 55

Slide 55 text

Purging

Slide 56

Slide 56 text

There are only two hard things in Computer Science: cache invalidation and naming things. —- Phil Karlton

Slide 57

Slide 57 text

SSL termination +  SSL   awareness  in   application

Slide 58

Slide 58 text

Static assets To   cache  or  not   to  cache? Invalidate   or  not?

Slide 59

Slide 59 text

Clustering & HA

Slide 60

Slide 60 text

Varnish flow

Slide 61

Slide 61 text

No content

Slide 62

Slide 62 text

No content