SlideShare une entreprise Scribd logo
1  sur  29
Télécharger pour lire hors ligne
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


Contenu connexe

Tendances

Drupal, varnish, esi - Toulouse November 2
Drupal, varnish, esi - Toulouse November 2Drupal, varnish, esi - Toulouse November 2
Drupal, varnish, esi - Toulouse November 2Marcus Deglos
 
Performance all teh things
Performance all teh thingsPerformance all teh things
Performance all teh thingsMarcus Deglos
 
Apache Performance Tuning: Scaling Up
Apache Performance Tuning: Scaling UpApache Performance Tuning: Scaling Up
Apache Performance Tuning: Scaling UpSander Temme
 
Apache Traffic Server & Lua
Apache Traffic Server & LuaApache Traffic Server & Lua
Apache Traffic Server & LuaKit Chan
 
Integrated Cache on Netscaler
Integrated Cache on NetscalerIntegrated Cache on Netscaler
Integrated Cache on NetscalerMark Hillick
 
Usenix LISA 2012 - Choosing a Proxy
Usenix LISA 2012 - Choosing a ProxyUsenix LISA 2012 - Choosing a Proxy
Usenix LISA 2012 - Choosing a ProxyLeif Hedstrom
 
Automating Complex Setups with Puppet
Automating Complex Setups with PuppetAutomating Complex Setups with Puppet
Automating Complex Setups with PuppetKris 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
 
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 EC2SergeyChernyshev
 
Speeding Up The Snail
Speeding Up The SnailSpeeding Up The Snail
Speeding Up The SnailMarcus 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 OpenStackMatt Ray
 
HTTP caching with Varnish
HTTP caching with VarnishHTTP caching with Varnish
HTTP caching with VarnishDavid de Boer
 
Supercharging Content Delivery with Varnish
Supercharging Content Delivery with VarnishSupercharging Content Delivery with Varnish
Supercharging Content Delivery with VarnishSamantha Quiñones
 
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 sitesYann Malet
 
Magento 2 Workflows
Magento 2 WorkflowsMagento 2 Workflows
Magento 2 WorkflowsRyan Street
 
NGINX High-performance Caching
NGINX High-performance CachingNGINX High-performance Caching
NGINX High-performance CachingNGINX, Inc.
 

Tendances (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
 

Similaire à 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 2009Cosimo Streppone
 
Linux containers and docker
Linux containers and dockerLinux containers and docker
Linux containers and dockerFabio Fumarola
 
NetDevOps Developer Environments with Vagrant @ SCALE16x
NetDevOps Developer Environments with Vagrant @ SCALE16xNetDevOps Developer Environments with Vagrant @ SCALE16x
NetDevOps Developer Environments with Vagrant @ SCALE16xHank 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 hellluis-ferro
 
VUG5: Varnish at Opera Software
VUG5: Varnish at Opera SoftwareVUG5: Varnish at Opera Software
VUG5: Varnish at Opera SoftwareCosimo Streppone
 
Docker presentasjon java bin
Docker presentasjon java binDocker presentasjon java bin
Docker presentasjon java binOlve Hansen
 
Postgres the hardway
Postgres the hardwayPostgres the hardway
Postgres the hardwayDave 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 VagrantBrian 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 ChefMatt Ray
 
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.jsNikolay 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 ConstraintsAlessandro Arrichiello
 
DevOPS training - Day 2/2
DevOPS training - Day 2/2DevOPS training - Day 2/2
DevOPS training - Day 2/2Vincent Mercier
 
Professional deployment
Professional deploymentProfessional deployment
Professional deploymentIvelina 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 RailsAntonio 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 Packerfrastel
 
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 FreeBSDSean Chittenden
 
Developing and Deploying PHP with Docker
Developing and Deploying PHP with DockerDeveloping and Deploying PHP with Docker
Developing and Deploying PHP with DockerPatrick Mizer
 

Similaire à 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
 

Dernier

Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 

Dernier (20)

Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 

Caching with Varnish