Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Varnishem All

Mariusz Gil
August 06, 2012
510

Varnishem All

Presentation abstract:

Varnish is a modern web applictions accelerator and frequently it's described as caching reverse HTTP proxy. Placed in the infrastructure right in front of HTTP servers relieves them by caching generated content, while maintaning a very high performance. Varnish can do much more than just a simple content caching. VCL configuration language allowing you to change the behavior of a server, load balancing with controling backends' status, partial support for Edge Side Includes or URL rewriting are only a part of the possibilities thanks to which Varnish is successfully used in websites like Facebook, Wikia or Polish portal gazeta.pl

During the session we will follow the process of installation, launch and configuration of Varnish in a typical web application for smaller and larger infrastructure. During the presentation we will also get to know some VMODs which are helping programming advanced logic in VCL.

Abstrakt prezentacji:

Varnish jest nowoczesnym akceleratorem aplikacji webowych, często opisywany jest także jako cache’ujące HTTP reverse proxy. Umieszczony w infrastrukturze przed serwerami obsługującymi ruch HTTP odciąża je poprzez cache’owanie generowanych treści, zapewniając przy tym bardzo wysoką wydajność. Varnish umożliwia jednak znacznie więcej niż tylko proste cache’owanie treści. Język konfiguracyjny VCL pozwalający swobodnie zmieniać zachowanie serwera, load balancing z kontrolą stanu backendów, częściowe wsparcie Edge Side Includes czy URL rewriting to tylko niektóre z możliwości, dzięki którym Varnish jest stosowany od dłuższego czasu m.in. w Facebooku, Wikii czy polskiej Gazeta.pl.

Podczas sesji prześledzimy proces instalacji i uruchomienia Varnisha w obrębie własnej infrastruktury aplikacji oraz jego konfiguracji przy kilku typowych usługach, takich jak: duży serwis newsowy, popularne forum dyskusyjne oraz rozbita na kilka domen i subdomen aplikacji webowej. W trakcie prezentacji zapoznamy się także z VMODs, rozszerzającymi Varnisha o funkcjonalności ułatwiające programowanie zaawansowanej logiki w VCL-u.

Mariusz Gil

August 06, 2012
Tweet

Transcript

  1. VARNISH
    ALL
    em
    web application accelerator
    Mariusz Gil
    WebClusters 2012 Szczecin
    poniedziałek, 6 sierpnia 2012

    View Slide

  2. WHOAMI
    developer, architekt
    poniedziałek, 6 sierpnia 2012

    View Slide

  3. HISTORIA
    dla nas zaczyna sie tam,
    gdzie dla uzytkownika sie konczy
    ,
    ,
    .
    `
    poniedziałek, 6 sierpnia 2012

    View Slide

  4. uzytkownik
    przegladarka
    Internet
    aplikacja
    .
    ,
    poniedziałek, 6 sierpnia 2012

    View Slide

  5. uzytkownik
    przegladarka
    Internet
    aplikacja
    .
    ,
    poniedziałek, 6 sierpnia 2012

    View Slide

  6. POJEDYNCZA STRONA
    zazwyczaj przekłada sie na dziesiatki
    requestów do serwera
    ,
    ,
    poniedziałek, 6 sierpnia 2012

    View Slide

  7. GAZETA.PL
    110 requestów potrzebnych na
    załadowanie strony głównej, styli, grafik, etc.
    poniedziałek, 6 sierpnia 2012

    View Slide

  8. ARCHITEKTURA
    prosty stos LAMP to juz historia
    .
    poniedziałek, 6 sierpnia 2012

    View Slide

  9. CZYM JEST
    VARNISH?
    akcelerator aplikacji web
    HTTP cache reverse proxy
    load balancer
    failover system
    poniedziałek, 6 sierpnia 2012

    View Slide

  10. LET’S GO
    load balancer failover system
    akcelerator aplikacji web HTTP cache reverse proxy
    poniedziałek, 6 sierpnia 2012

    View Slide

  11. akcelerator aplikacji web HTTP cache reverse proxy load balancer failover system
    przegladarka
    serwer www
    varnish
    GET /index.html
    GET /index.html
    ,
    poniedziałek, 6 sierpnia 2012

    View Slide

  12. load balancer failover system
    varnish
    GET / HTTP/1.1
    Host: domena.pl
    :80
    :8080
    akcelerator aplikacji web HTTP cache reverse proxy
    :80
    :8081
    GET /t.js HTTP/1.1
    Host: s1.domena.pl
    serwer www
    GET / HTTP/1.1
    Host: domena.pl
    GET /t.js HTTP/1.1
    Host: s1.domena.pl
    HTTP/1.1 200 OK
    Content-Type: ...
    HTTP/1.1 200 OK
    Content-Type: ...
    poniedziałek, 6 sierpnia 2012

    View Slide

  13. load balancer failover system
    varnish
    GET / HTTP/1.1
    Host: domena.pl
    :80
    akcelerator aplikacji web HTTP cache reverse proxy
    :80
    GET /t.js HTTP/1.1
    Host: s1.domena.pl
    HTTP/1.1 200 OK
    Content-Type: ...
    poniedziałek, 6 sierpnia 2012

    View Slide

  14. DLACZEGO?
    Odciazenie backendu
    Przyspieszenie aplikacji
    load balancer failover system
    akcelerator aplikacji web HTTP cache reverse proxy
    ,
    .
    poniedziałek, 6 sierpnia 2012

    View Slide

  15. CACHE
    Cache’owanie wszystkiego na Varnishu
    moze skonczyc sie zle...
    load balancer failover system
    akcelerator aplikacji web HTTP cache reverse proxy
    ,
    .
    `
    `
    `
    poniedziałek, 6 sierpnia 2012

    View Slide

  16. EXPIRATION &
    VALIDATION
    load balancer failover system
    akcelerator aplikacji web HTTP cache reverse proxy
    poniedziałek, 6 sierpnia 2012

    View Slide

  17. EXPIRATION &
    VALIDATION
    Cache-Control:
    Expires:
    load balancer failover system
    akcelerator aplikacji web HTTP cache reverse proxy
    poniedziałek, 6 sierpnia 2012

    View Slide

  18. EXPIRATION &
    VALIDATION
    Last-Modified:
    If-Modified-Since:
    ETag:
    If-None-Match:
    load balancer failover system
    akcelerator aplikacji web HTTP cache reverse proxy
    poniedziałek, 6 sierpnia 2012

    View Slide

  19. akcelerator aplikacji web HTTP cache reverse proxy load balancer failover system
    VCL
    varnish configuration language
    poniedziałek, 6 sierpnia 2012

    View Slide

  20. akcelerator aplikacji web HTTP cache reverse proxy load balancer failover system
    VCL
    warunki, przypisania, regexp, VMODs
    poniedziałek, 6 sierpnia 2012

    View Slide

  21. akcelerator aplikacji web HTTP cache reverse proxy load balancer failover system
    VCL
    dostepne obiekty
    ,
    poniedziałek, 6 sierpnia 2012

    View Slide

  22. akcelerator aplikacji web HTTP cache reverse proxy load balancer failover system
    BACKENDS
    poniedziałek, 6 sierpnia 2012

    View Slide

  23. akcelerator aplikacji web HTTP cache reverse proxy load balancer failover system
    DIRECTORS
    random, client, hash, round-robin, DNS
    poniedziałek, 6 sierpnia 2012

    View Slide

  24. akcelerator aplikacji web HTTP cache reverse proxy load balancer failover system
    SAINT MODE
    HEALTHY
    poniedziałek, 6 sierpnia 2012

    View Slide

  25. USE CASES
    poniedziałek, 6 sierpnia 2012

    View Slide

  26. PORTAL INFORMACYJNY
    całe strony
    grafiki
    style
    JavaScripts
    ESI
    load balancing
    failover
    poniedziałek, 6 sierpnia 2012

    View Slide

  27. SOCIAL MEDIA
    wywołania API
    strony statyczne
    grafiki
    style
    JavaScripts
    load balancing
    poniedziałek, 6 sierpnia 2012

    View Slide

  28. FORUM
    całe strony dla uzytkowników niezalogowanych
    grafiki
    style
    JavaScripts
    ESI
    .
    poniedziałek, 6 sierpnia 2012

    View Slide

  29. INNE PRZYKŁADY?
    poniedziałek, 6 sierpnia 2012

    View Slide

  30. APLIKACJA FOTO
    1M uzytkowników
    100M przesłanych plików
    GlusterFS / MogileFS / S3
    8 pregenerowanych wersji
    i...
    redesign
    .
    poniedziałek, 6 sierpnia 2012

    View Slide

  31. APLIKACJA FOTO
    1M uzytkowników
    100M przesłanych plików
    GlusterFS / MogileFS / S3
    8 pregenerowanych wersji
    i...
    redesign
    .
    poniedziałek, 6 sierpnia 2012

    View Slide

  32. APLIKACJA FOTO
    1M uzytkowników
    100M przesłanych plików
    GlusterFS / MogileFS / S3
    8 pregenerowanych wersji
    i...
    redesign
    .
    poniedziałek, 6 sierpnia 2012

    View Slide

  33. varnish
    GET /i/1/s_v2.jpg HTTP/1.1
    Host: domena.pl
    :80
    ROZWIAZANIE?
    Apache &
    AOL moddims
    GET /i/6/s_v7.jpg HTTP/1.1
    Host: domena.pl
    GET /i/8/s_v23.jpg HTTP/1.1
    Host: domena.pl
    GET /i/8/s_v40.jpg HTTP/1.1
    Host: domena.pl
    :80
    http://code.google.com/p/moddims/wiki/WebserviceApi
    GET /dims3/12AB/resize/100x60/1.jpg HTTP/1.1
    Host: domena.pl
    ,
    poniedziałek, 6 sierpnia 2012

    View Slide

  34. CO W TYM CIEKAWEGO?
    tak na dobra sprawe, tylko nowe pliki
    maja wysoka ogladalnosc
    `
    `
    ,
    ,
    , ,
    poniedziałek, 6 sierpnia 2012

    View Slide

  35. KISS!
    Keep It Simple Stupid
    poniedziałek, 6 sierpnia 2012

    View Slide

  36. EDGE SIDE INCLUDE
    drobne elementy dynamiczne
    w stronie serwowanej z cache
    poniedziałek, 6 sierpnia 2012

    View Slide

  37. EDGE SIDE INCLUDE
    Keep It Simple Stupid
    poniedziałek, 6 sierpnia 2012

    View Slide

  38. VARNISH VMODs
    Authentication
    CrashHandler
    cURL
    DeviceAtlas Mobile
    Digest
    Header
    Memcached
    null Binary data
    redirect
    Redis
    Secure Download
    Shield
    URL Code
    URL Sort
    Variable Support
    poniedziałek, 6 sierpnia 2012

    View Slide

  39. PYTANIA?
    Mariusz Gil
    email: [email protected]
    twitter: @mariuszgil
    poniedziałek, 6 sierpnia 2012

    View Slide