SlideShare a Scribd company logo
var∙nish:

     
A
deceptively
attractive
external
appearance;
an
outward
show.

var∙nished,
var∙nish∙ing:

     
To
give
a
smooth
and
glossy
finish
to.

We
will
talk
about...

  What
is
a
Reverse
Proxy
Cache?


  Architecture
of
Varnish


  Installation
&
Basic
Configuration


  VCL
by
example


  Tools


  Varnish
&
Rails


  Misc
tips
&
tricks

ehcaC
yxorP
esreveR


     A
     P
     P





              R
A             P
P
P

              C



     A
     P
     P

What?

  






























=



  Reverse‐Proxy


   ...
à
la
HAProxy,
Pound,
mod_proxy_balancer
etc.


  +
Cache


   ...
only
proxy
to
backend
if
necessary



     a.k.a.:
„HTTP
Accelerator“
(=
BS
Bingo)



     Other
„HTTP
Accelerators“:
                           Web Cache 10g
                                                 BIG‐IP

Users

  search.twitter.com


  hulu.com


  wikia.com


  pcwelt.de


  creativecommons.org


  ...

Architecture:
Cache
Store

               Squid
                                      Varnish

Mem‐Store
          Disk‐Store
                           VMM
(OS)

             VMM
(OS)
                          RAM
                  HDD

   RAM
                 HDD



•  one
file
per
object
(pre
2.7)
             •  one
big
file
mapped
to
VM


•  book
keeping
(disk
vs.
memory)

•  VMM
often
„smarter“





           http://varnish.projects.linpro.no/wiki/ArchitectNotes

Architecture:
VCL

  Varnish
Configuration
Language

  DSL,
compiled
to
C
code
(srsly!)

  allows
inline
C
code

   C{
        syslog(LOG_INFO, “Just served the 1000000th page. Hooray!");
   }C


  hooks
into
a
requests
lifecycle

  Backends,
ACLs,
LB‐strategies
defined
here

  can
be
hot‐loaded
into
a
running
varnishd

  hot‐switching
between
multiple
versions/profiles

Architecture:
Logging

  Not
your
daddy‘s
log
file


  Logs
straight
to
shared
memory


  Enables
all
kinds
of
fancy
tools:

     varnishtop

     varnishstat

     varnishhist
(= geek pr0n)


  Use
varnishlog/varnishncsa
to
generate
old
school
logs

Installation

  Debian/Ubuntu:

apt-get    –t unstable install varnish

  OS
X
via
MacPorts:

sudo   port install varnish


  From
source:
./configure    && make && make install




Interesting
files:

  /etc/default/varnish

  /etc/varnish/*.vcl
Configuration

  Zero
configuration
in
a
perfect
world

   (=
all
origin
servers
perfect
HTTP
citizens,
setting
correct

   




cache
control
headers,
conservative
use
of
cookies)


  Varnish
won't
cache
anything
"private"
or
carrying
a

   cookie
by
default


  The
real
world
sucks:

       Tracking
cookies
(Google
Analytics)

       Session
cookies
although
no
data
in
session

       "Cache‐control:
private"
by
default
(Rails)
*

       ...


                    (*
which
is
a
sensible
default,
btw.)

VCL:
Backends
&
Probes

   backend default {
      .host = "10.0.0.12";
      .port = "80";
   }

   backend slow_j2ee_app {
      .host = "10.0.0.13";
      .port = "8080";
      .connect_timeout = 1s;
      .first_byte_timeout = 10s;
      .between_bytes_timeout = 5s;
      .probe = {
         .url = "/check.jsp";
         .timeout = 1s;
      }
   }
VCL:
Directors

for
simple
load‐balancing
requirements



director d1 random {
   .retries = 3;
   { .backend = "default";
     .weight = 10; }
   { .backend = "other_host";
     .weight = 5; }
}

director d2 round-robin {
  ...
}
VCL:
ACLs

 customize
behaviour
for
different
clients



acl admins {
  "localhost";
  "10.0.0.0"/24;
  ! "10.0.0.3"; # intern's laptop
}

...

 if (client.ip ~ admins) {
   set req.http.x-magic-auth = "1";
 } else {
   unset req.http.x-magic-auth;
 }
VCL:
Hooks

Most
important:


  vcl_recv     
Request
comes
in,
decide
what
to
do


  vcl_fetch 
Fetched
obj
from
backend,
allows
tweaking


  vcl_deliver 
Object
is
about
to
be
delivered
to
client


  vcl_hash     
Calculate
hash
key
for
lookup,
defaults
to
full
URL


Other
hooks:


  
vcl_miss,
vcl_hit,
vcl_error,
vcl_discard,


   vcl_timeout,
vcl_pipe,
vcl_pass


              http://varnish.projects.linpro.no/wiki/VCL

VCL:
Functions
&
Variables

  
regsub(),    regsuball(), purge_hash(), purge_url()

  
own
subroutines
(not
functions)
with

sub    foo { ... }

  
include    "other.vcl"; to
split
files
into
parts


  
req.*          Request


  
resp.*         Response


  
bereq.*        Backend
Request


  
obj.*          requested
Object


  
client.*,    server.*

  
set   / unset for
variables, remove additionally
for
headers


                 http://varnish.projects.linpro.no/wiki/VCL

Example:
Choose
backend


  sub vcl_recv {
    if (req.host ~ "slowapp.com$") {
      set req.backend = slow_j2ee_app;
    } else {
      set req.backend = other_backend;
    }
  }
Example:
Serve
static
assets


sub vcl_recv {
  if (req.url ~ "^/(images|javascripts|styles)/") {
    remove req.http.cookie;
  }
}

sub vcl_fetch {
  if (req.url ~ "^/(images|javascripts|styles)/") {
    remove obj.http.set-cookie;
  }
}
Example:
Remove
certain
cookies


sub vcl_recv {
  set req.http.cookie = regsuball(
                           req.http.cookie,
                           "__utm[azc]=[^;]+(; )?", ""
                        );
  set req.http.cookie = regsub(req.http.cookie,
                                "; $", "");
  if (req.http.cookie ~ "^ *$") {
    remove req.http.cookie;
  }
}
Example:
"Stale
while
revalidate"

            Serve
slightly
stale
content
while
a
fresh
version
is
fetched

            =>
better
user
experience
+
no
thread
pileup



                     sub vcl_recv {
                         set req.grace = 2m;
                     }

                     sub vcl_fetch {
                         set obj.grace = 2m;
                     }




http://www.rfc‐editor.org/internet‐drafts/draft‐nottingham‐http‐stale‐controls‐00.txt

Example:
Backend
is
down

Serve
cachable
(outdated)
content
even
when
the
backend
is
on
fire



          sub_recv {
            if (req.backend.healthy) {
              set req.grace = 30s;
            } else {
              set req.grace = 1h;
            }
          }

          sub_fetch {
            set obj.grace = 1h;
          }
Tools:
varnishtop

Most
popular
Browser
/
Agent:


varnishtop -i RxHeader -I ^User-Agent

 2667.43   RxHeader    User-Agent:   Mozilla/5.0   (Windows; U;   Windows NT 5.1; de; rv:1.9
  459.54   RxHeader    User-Agent:   Mozilla/5.0   (Windows; U;   Windows NT 5.1; de; rv:1.9
  372.66   RxHeader    User-Agent:   Mozilla/5.0   (Windows; U;   Windows NT 6.0; de; rv:1.9
  369.90   RxHeader    User-Agent:   Mozilla/4.0   (compatible;   MSIE 7.0; Windows NT 5.1)
  353.06   RxHeader    User-Agent:   Mozilla/5.0   (compatible;   Googlebot/2.1; +http://www
  341.84   RxHeader    User-Agent:   Mozilla/4.0   (compatible;   MSIE 6.0; Windows NT 5.1;
  323.87   RxHeader    User-Agent:   Mozilla/4.0   (compatible;   MSIE 7.0; Windows NT 5.1;
  317.88   RxHeader    User-Agent:   Mozilla/5.0   (Windows; U;   Windows NT 6.0; de; rv:1.9
  250.55   RxHeader    User-Agent:   Mozilla/4.0   (compatible;   MSIE 7.0; Windows NT 5.1;
  231.82   RxHeader    User-Agent:   Mozilla/4.0   (compatible;   MSIE 6.0; Windows NT 5.1;
  173.69   RxHeader    User-Agent:   Mozilla/4.0   (compatible;   MSIE 6.0; Windows NT 5.1;



Most
popular
URLs:


varnishtop –i RxUrl

Traffic
sources:


varnishtop –i RxHeader –I ^Referer
Tools:
varnishhist

                       |
                       |
                       |
                       |
                                  Hits

                       |
                       |
                       |
                       |
                       |
                       |
                       |
                       |
                       |
                       |
                       |
                       |
                      ||
                      |||
                      |||
                      |||
                      |||
                      |||
                      |||
                      |||
                      |||
                      |||
                      ||||
                      ||||                                  Misses

                      ||||
                      |||||
                      |||||
                      ||||||                 ##         #     #|
+-------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------
|1e-6         |1e-5          |1e-4        |1e-3         |1e-2         |1e-1         |1e0          |1e1          |1e2
More
Tools:

  varnishlog: 
      
Generate
(customized)
logs


  varnishncsa:       
Generate
Apache
compatible
logs


  varnishadm:        
Manipulate
a
running
varnishd


  




varnishadm
                -T localhost:6082 purge.url "^/images/"
     varnishadm –T localhost:6082 vcl.load /etc/my.vcl

  varnishreplay:        
Parses
a
log
generated
by
varnishlog

       
 
        







and
replays
the
traffic!

Varnish
&
Rails

  Proper
use
of

expires_in instead
of
page
caching


  Only
use

session if
really
necessary


  Purging
of
content
possible
with:

    `varnishadm –T #{hostport} purge.url #{url2purge}`
    net/telnet
    klarlack:
http://github.com/schoefmax/klarlack


  !secure
the
connection
to
varnish's
admin
interface!


   (ssh
tunnel,
iptables
etc.)

Varnish
&
Rails:
Sweepers

# environment.rb
config.gem "schoefmax-klarlack", :lib => 'klarlack', :source => 'http://gems.github.com'
VARNISH = Varnish::Client.new('1.2.3.4:6082')


# app/sweepers/blog_sweeper.rb
class BlogSweeper < ActionController::Caching::Sweeper
  observe Post
  include ActionController::UrlWriter

  after_save(post)
    expire_post(post)
  end

  after_destroy(post)
    expire_post(post)
  end

  private

  def expire_post(post)
      VARNISH.purge :url, post_path(post)
      VARNISH.purge :url, latest_posts_path
  end
end
Misc:
Edge
Side
Includes
(ESI)

  Invented
by
Akamai
&
Co.

    <esi:include src="http://example.com/friend_feed"/>

  http://www.w3.org/TR/esi‐lang


  fragment_fu‐plugin
for
Rails
(part
of
mongrel‐esi)


                            Header,
TTL:
15
min




                                               Activity‐
                   Nav,

                                Article,
       Feed,

                   TTL:

                               TTL:
5
min
      TTL:

                  60
min

                                                2
min

Misc:
Fine
tuning
your
setup


  Pre‐create
storage
file
(minimizes
fragmentation).
4GB:


  
dd   if=/dev/zero of=storage.bin bs=4M count=1024

  Tweak
varnish's
various
startup
settings
–
Twitters
are:


  
http://projects.linpro.no/pipermail/varnish‐dev/2009‐February/000968.html

Misc:
Monitoring
with
munin

Thank
you.


•  http://www.varnish‐cache.org

•  http://github.com/schoefmax/klarlack

•  http://varnish.projects.linpro.no/wiki/VCL

•  http://varnish.projects.linpro.no/wiki/ArchitectNotes

•  http://www.rfc‐editor.org/internet‐drafts/draft‐nottingham‐http‐stale‐controls‐00.txt

•  http://projects.linpro.no/pipermail/varnish‐dev/2009‐February/000968.html

•  http://www.w3.org/TR/esi‐lang


More Related Content

What's hot

Drupal, varnish, esi - Toulouse November 2
Drupal, varnish, esi - Toulouse November 2Drupal, varnish, esi - Toulouse November 2
Drupal, varnish, esi - Toulouse November 2
Marcus Deglos
 
Performance all teh things
Performance all teh thingsPerformance all teh things
Performance all teh things
Marcus Deglos
 
Apache Performance Tuning: Scaling Up
Apache Performance Tuning: Scaling UpApache Performance Tuning: Scaling Up
Apache Performance Tuning: Scaling Up
Sander Temme
 
Apache Traffic Server & Lua
Apache Traffic Server & LuaApache Traffic Server & Lua
Apache Traffic Server & Lua
Kit Chan
 
Integrated Cache on Netscaler
Integrated Cache on NetscalerIntegrated Cache on Netscaler
Integrated Cache on Netscaler
Mark Hillick
 
Usenix LISA 2012 - Choosing a Proxy
Usenix LISA 2012 - Choosing a ProxyUsenix LISA 2012 - Choosing a Proxy
Usenix LISA 2012 - Choosing a Proxy
Leif Hedstrom
 
Memcached
MemcachedMemcached
Automating Complex Setups with Puppet
Automating Complex Setups with PuppetAutomating Complex Setups with Puppet
Automating Complex Setups with Puppet
Kris Buytaert
 
Handling 10k requests per second with Symfony and Varnish - SymfonyCon Berlin...
Handling 10k requests per second with Symfony and Varnish - SymfonyCon Berlin...Handling 10k requests per second with Symfony and Varnish - SymfonyCon Berlin...
Handling 10k requests per second with Symfony and Varnish - SymfonyCon Berlin...
Alexander Lisachenko
 
ReplacingSquidWithATS
ReplacingSquidWithATSReplacingSquidWithATS
ReplacingSquidWithATS
Chiranjeevi Jaladi
 
Building your own CDN using Amazon EC2
Building your own CDN using Amazon EC2Building your own CDN using Amazon EC2
Building your own CDN using Amazon EC2
SergeyChernyshev
 
Speeding Up The Snail
Speeding Up The SnailSpeeding Up The Snail
Speeding Up The Snail
Marcus Deglos
 
Australian OpenStack User Group August 2012: Chef for OpenStack
Australian OpenStack User Group August 2012: Chef for OpenStackAustralian OpenStack User Group August 2012: Chef for OpenStack
Australian OpenStack User Group August 2012: Chef for OpenStack
Matt Ray
 
HTTP caching with Varnish
HTTP caching with VarnishHTTP caching with Varnish
HTTP caching with Varnish
David de Boer
 
Supercharging Content Delivery with Varnish
Supercharging Content Delivery with VarnishSupercharging Content Delivery with Varnish
Supercharging Content Delivery with Varnish
Samantha Quiñones
 
Cassandra as Memcache
Cassandra as MemcacheCassandra as Memcache
Cassandra as Memcache
Edward Capriolo
 
Challenges when building high profile editorial sites
Challenges when building high profile editorial sitesChallenges when building high profile editorial sites
Challenges when building high profile editorial sites
Yann Malet
 
Varnish Cache
Varnish CacheVarnish Cache
Varnish Cache
Mahbub E Elahi (Ron)
 
Magento 2 Workflows
Magento 2 WorkflowsMagento 2 Workflows
Magento 2 Workflows
Ryan Street
 
NGINX High-performance Caching
NGINX High-performance CachingNGINX High-performance Caching
NGINX High-performance Caching
NGINX, Inc.
 

What's hot (20)

Drupal, varnish, esi - Toulouse November 2
Drupal, varnish, esi - Toulouse November 2Drupal, varnish, esi - Toulouse November 2
Drupal, varnish, esi - Toulouse November 2
 
Performance all teh things
Performance all teh thingsPerformance all teh things
Performance all teh things
 
Apache Performance Tuning: Scaling Up
Apache Performance Tuning: Scaling UpApache Performance Tuning: Scaling Up
Apache Performance Tuning: Scaling Up
 
Apache Traffic Server & Lua
Apache Traffic Server & LuaApache Traffic Server & Lua
Apache Traffic Server & Lua
 
Integrated Cache on Netscaler
Integrated Cache on NetscalerIntegrated Cache on Netscaler
Integrated Cache on Netscaler
 
Usenix LISA 2012 - Choosing a Proxy
Usenix LISA 2012 - Choosing a ProxyUsenix LISA 2012 - Choosing a Proxy
Usenix LISA 2012 - Choosing a Proxy
 
Memcached
MemcachedMemcached
Memcached
 
Automating Complex Setups with Puppet
Automating Complex Setups with PuppetAutomating Complex Setups with Puppet
Automating Complex Setups with Puppet
 
Handling 10k requests per second with Symfony and Varnish - SymfonyCon Berlin...
Handling 10k requests per second with Symfony and Varnish - SymfonyCon Berlin...Handling 10k requests per second with Symfony and Varnish - SymfonyCon Berlin...
Handling 10k requests per second with Symfony and Varnish - SymfonyCon Berlin...
 
ReplacingSquidWithATS
ReplacingSquidWithATSReplacingSquidWithATS
ReplacingSquidWithATS
 
Building your own CDN using Amazon EC2
Building your own CDN using Amazon EC2Building your own CDN using Amazon EC2
Building your own CDN using Amazon EC2
 
Speeding Up The Snail
Speeding Up The SnailSpeeding Up The Snail
Speeding Up The Snail
 
Australian OpenStack User Group August 2012: Chef for OpenStack
Australian OpenStack User Group August 2012: Chef for OpenStackAustralian OpenStack User Group August 2012: Chef for OpenStack
Australian OpenStack User Group August 2012: Chef for OpenStack
 
HTTP caching with Varnish
HTTP caching with VarnishHTTP caching with Varnish
HTTP caching with Varnish
 
Supercharging Content Delivery with Varnish
Supercharging Content Delivery with VarnishSupercharging Content Delivery with Varnish
Supercharging Content Delivery with Varnish
 
Cassandra as Memcache
Cassandra as MemcacheCassandra as Memcache
Cassandra as Memcache
 
Challenges when building high profile editorial sites
Challenges when building high profile editorial sitesChallenges when building high profile editorial sites
Challenges when building high profile editorial sites
 
Varnish Cache
Varnish CacheVarnish Cache
Varnish Cache
 
Magento 2 Workflows
Magento 2 WorkflowsMagento 2 Workflows
Magento 2 Workflows
 
NGINX High-performance Caching
NGINX High-performance CachingNGINX High-performance Caching
NGINX High-performance Caching
 

Similar to Caching with Varnish

My Opera meets Varnish, Dec 2009
My Opera meets Varnish, Dec 2009My Opera meets Varnish, Dec 2009
My Opera meets Varnish, Dec 2009
Cosimo Streppone
 
Linux containers and docker
Linux containers and dockerLinux containers and docker
Linux containers and docker
Fabio Fumarola
 
NetDevOps Developer Environments with Vagrant @ SCALE16x
NetDevOps Developer Environments with Vagrant @ SCALE16xNetDevOps Developer Environments with Vagrant @ SCALE16x
NetDevOps Developer Environments with Vagrant @ SCALE16x
Hank Preston
 
PHP London Dec 2013 - Varnish - The 9 circles of hell
PHP London Dec 2013 - Varnish - The 9 circles of hellPHP London Dec 2013 - Varnish - The 9 circles of hell
PHP London Dec 2013 - Varnish - The 9 circles of hell
luis-ferro
 
VUG5: Varnish at Opera Software
VUG5: Varnish at Opera SoftwareVUG5: Varnish at Opera Software
VUG5: Varnish at Opera Software
Cosimo Streppone
 
Docker presentasjon java bin
Docker presentasjon java binDocker presentasjon java bin
Docker presentasjon java bin
Olve Hansen
 
Postgres the hardway
Postgres the hardwayPostgres the hardway
Postgres the hardway
Dave Pitts
 
Create Development and Production Environments with Vagrant
Create Development and Production Environments with VagrantCreate Development and Production Environments with Vagrant
Create Development and Production Environments with Vagrant
Brian Hogan
 
Bare Metal to OpenStack with Razor and Chef
Bare Metal to OpenStack with Razor and ChefBare Metal to OpenStack with Razor and Chef
Bare Metal to OpenStack with Razor and Chef
Matt Ray
 
Performance
PerformancePerformance
Performance
Varnish Software
 
Everyday tools and tricks for scaling Node.js
Everyday tools and tricks for scaling Node.jsEveryday tools and tricks for scaling Node.js
Everyday tools and tricks for scaling Node.js
Nikolay Stoitsev
 
[Devconf.cz][2017] Understanding OpenShift Security Context Constraints
[Devconf.cz][2017] Understanding OpenShift Security Context Constraints[Devconf.cz][2017] Understanding OpenShift Security Context Constraints
[Devconf.cz][2017] Understanding OpenShift Security Context Constraints
Alessandro Arrichiello
 
DevOPS training - Day 2/2
DevOPS training - Day 2/2DevOPS training - Day 2/2
DevOPS training - Day 2/2
Vincent Mercier
 
Professional deployment
Professional deploymentProfessional deployment
Professional deployment
Ivelina Dimova
 
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
Amazon Web Services
 
Varnish e caching di applicazioni Rails
Varnish e caching di applicazioni RailsVarnish e caching di applicazioni Rails
Varnish e caching di applicazioni Rails
Antonio Carpentieri
 
Create your very own Development Environment with Vagrant and Packer
Create your very own Development Environment with Vagrant and PackerCreate your very own Development Environment with Vagrant and Packer
Create your very own Development Environment with Vagrant and Packer
frastel
 
Vagrant For DevOps
Vagrant For DevOpsVagrant For DevOps
Vagrant For DevOps
Lalatendu Mohanty
 
Modern tooling to assist with developing applications on FreeBSD
Modern tooling to assist with developing applications on FreeBSDModern tooling to assist with developing applications on FreeBSD
Modern tooling to assist with developing applications on FreeBSD
Sean Chittenden
 
Developing and Deploying PHP with Docker
Developing and Deploying PHP with DockerDeveloping and Deploying PHP with Docker
Developing and Deploying PHP with Docker
Patrick Mizer
 

Similar to Caching with Varnish (20)

My Opera meets Varnish, Dec 2009
My Opera meets Varnish, Dec 2009My Opera meets Varnish, Dec 2009
My Opera meets Varnish, Dec 2009
 
Linux containers and docker
Linux containers and dockerLinux containers and docker
Linux containers and docker
 
NetDevOps Developer Environments with Vagrant @ SCALE16x
NetDevOps Developer Environments with Vagrant @ SCALE16xNetDevOps Developer Environments with Vagrant @ SCALE16x
NetDevOps Developer Environments with Vagrant @ SCALE16x
 
PHP London Dec 2013 - Varnish - The 9 circles of hell
PHP London Dec 2013 - Varnish - The 9 circles of hellPHP London Dec 2013 - Varnish - The 9 circles of hell
PHP London Dec 2013 - Varnish - The 9 circles of hell
 
VUG5: Varnish at Opera Software
VUG5: Varnish at Opera SoftwareVUG5: Varnish at Opera Software
VUG5: Varnish at Opera Software
 
Docker presentasjon java bin
Docker presentasjon java binDocker presentasjon java bin
Docker presentasjon java bin
 
Postgres the hardway
Postgres the hardwayPostgres the hardway
Postgres the hardway
 
Create Development and Production Environments with Vagrant
Create Development and Production Environments with VagrantCreate Development and Production Environments with Vagrant
Create Development and Production Environments with Vagrant
 
Bare Metal to OpenStack with Razor and Chef
Bare Metal to OpenStack with Razor and ChefBare Metal to OpenStack with Razor and Chef
Bare Metal to OpenStack with Razor and Chef
 
Performance
PerformancePerformance
Performance
 
Everyday tools and tricks for scaling Node.js
Everyday tools and tricks for scaling Node.jsEveryday tools and tricks for scaling Node.js
Everyday tools and tricks for scaling Node.js
 
[Devconf.cz][2017] Understanding OpenShift Security Context Constraints
[Devconf.cz][2017] Understanding OpenShift Security Context Constraints[Devconf.cz][2017] Understanding OpenShift Security Context Constraints
[Devconf.cz][2017] Understanding OpenShift Security Context Constraints
 
DevOPS training - Day 2/2
DevOPS training - Day 2/2DevOPS training - Day 2/2
DevOPS training - Day 2/2
 
Professional deployment
Professional deploymentProfessional deployment
Professional deployment
 
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
 
Varnish e caching di applicazioni Rails
Varnish e caching di applicazioni RailsVarnish e caching di applicazioni Rails
Varnish e caching di applicazioni Rails
 
Create your very own Development Environment with Vagrant and Packer
Create your very own Development Environment with Vagrant and PackerCreate your very own Development Environment with Vagrant and Packer
Create your very own Development Environment with Vagrant and Packer
 
Vagrant For DevOps
Vagrant For DevOpsVagrant For DevOps
Vagrant For DevOps
 
Modern tooling to assist with developing applications on FreeBSD
Modern tooling to assist with developing applications on FreeBSDModern tooling to assist with developing applications on FreeBSD
Modern tooling to assist with developing applications on FreeBSD
 
Developing and Deploying PHP with Docker
Developing and Deploying PHP with DockerDeveloping and Deploying PHP with Docker
Developing and Deploying PHP with Docker
 

Recently uploaded

Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
Neo4j
 
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge GraphGraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
Neo4j
 
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
"Scaling RAG Applications to serve millions of users",  Kevin Goedecke"Scaling RAG Applications to serve millions of users",  Kevin Goedecke
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
Fwdays
 
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
Fwdays
 
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving
 
Apps Break Data
Apps Break DataApps Break Data
Apps Break Data
Ivo Velitchkov
 
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
saastr
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
DanBrown980551
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Neo4j
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
MichaelKnudsen27
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
Session 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdfSession 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdf
UiPathCommunity
 
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptxPRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
christinelarrosa
 
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
Jason Yip
 
"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota
Fwdays
 
"$10 thousand per minute of downtime: architecture, queues, streaming and fin...
"$10 thousand per minute of downtime: architecture, queues, streaming and fin..."$10 thousand per minute of downtime: architecture, queues, streaming and fin...
"$10 thousand per minute of downtime: architecture, queues, streaming and fin...
Fwdays
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
ScyllaDB
 
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance PanelsNorthern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
Antonios Katsarakis
 
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsConnector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
DianaGray10
 

Recently uploaded (20)

Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
 
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge GraphGraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
 
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
"Scaling RAG Applications to serve millions of users",  Kevin Goedecke"Scaling RAG Applications to serve millions of users",  Kevin Goedecke
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
 
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
 
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024
 
Apps Break Data
Apps Break DataApps Break Data
Apps Break Data
 
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
Session 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdfSession 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdf
 
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptxPRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
 
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
 
"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota
 
"$10 thousand per minute of downtime: architecture, queues, streaming and fin...
"$10 thousand per minute of downtime: architecture, queues, streaming and fin..."$10 thousand per minute of downtime: architecture, queues, streaming and fin...
"$10 thousand per minute of downtime: architecture, queues, streaming and fin...
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
 
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance PanelsNorthern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
 
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsConnector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
 

Caching with Varnish