Varnish-Cache

574 views
500 views

Published on

Prezentacja z DevAcademy 04/2014

0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
574
On SlideShare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
7
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Varnish-Cache

  1. 1. VARNISH-CACHE Praktyczne zastosowania Michał Gruchała
  2. 2. Agenda 1. Co to jest Varnish-Cache 2. Warsztat 3. Varnish-Cache w GOG.com
  3. 3. Varnish-Cache Użytkownik LoadBalancer
 (Varnish-Cache) Backend Backend Backend
  4. 4. Varnish-Cache Reverse Proxy / LoadBalancer Cache Konfigurowalność / Elastyczność Protokół HTTP (brak SSL) Badanie zdrowia backendów Dowolna możliwość wyboru backendów Możliwośc zmiany zapytania / odpowiedzi HTTP Edge Side Includes Trzyma w cache odpowiedzi otrzymane od backendów Eliminuje dogpile effect Maszyna stanowa / automat skończony Konfiguracja jest kodem / zbiorem funkcji wykonywanych w poszczególnych stanach Możliwość pisania modułów albo wstawek inline-C
  5. 5. Varnish-Cache vcl_recv() vcl_deliver() DONEvcl_fetch() vcl_hit() vcl_miss() move bytesvcl_pipe() vcl_pass() vcl_hash()
  6. 6. Funkcja jest wykonywana w po pobraniu danych od backendu Manipulujemy odpowiedzią Podejmujemy decyzję czy zapisujemy do cache Może nie być wykonana - żądanie HTTP zostało obsłużone przez cache Varnish-Cache vcl_recv() vcl_fetch() Funkcja jest wykonywana na początku przetwarzania zapytania Ustawiamy backend / Wybieramy odpowiedź z cache Normalizujemy zapytanie
  7. 7. Warsztat devacademy.gog.com Francja Varnish-Cache ! ! LOADBALANCER web-{1,2}.devacademy.gog.com Kanada nginx + php-fpm ! BACKENDY
  8. 8. Warsztat
  9. 9. Warsztat LoadBalancer director / backends / health checks vcl_recv Zasoby statyczne vcl_recv + vcl_fetch ochrona przed dogpile effect Zasoby dynamiczne Cookie Zasoby dynamiczne personalizowane ESI Ajax
  10. 10. Co więcej? Grace Serwuje przeterminowane dane z cache Restarts Umożliwa zresetowanie procesu (powrót do vcl_recv). Możliwa reakcja na błędne odpowiedzi z backendów Moduły curl throttle geoip Normalizacja URL Różne linki prowadzące do tych samych zasobów (przydatne przy statycznych plikach typu js/css) Sterowanie cache TTL można pobierać z backendu (nagłówek)
 Inwalidacja cache przez HTTP
  11. 11. Varnish-Cache w GOG.com
  12. 12. Varnish-Cache w GOG.com Wiele serwerowni Varnish-Cache na maszynach POP wybiera odpowiednie datacenter Obsługa OAuth2 Varnish-Cache rozwiązuje access token na client_id / user_id Cache z cookie Ten sam URL ale wiele wersji językowych, wersja mobilne/ desktop. Ochrona przez DoS Chcemy na Varnish-Cache zrealizować system ochrony przed atakami typu DoS
  13. 13. DZIĘKUJĘ ZA UWAGĘ Zapraszam do dyskusji

×