Mit der heute zur Verfügung stehenden Bandbreite und der stark wachsenden Konkurrenz von Weblösungen bildet die Performance von Websites und Onlineshop je länger je mehr ein zentrales Kriterium bei der User Experience (UX). Oft ist die UX das Zünglein an der Waage und schlägt sich direkt in den Verkaufszahlen nieder: Bereits eine Sekunde Verzögerung beim Laden eines Webshops hat entscheidende Folgen: bis zu 11% weniger Besucher, 16% geringere Kundenzufriedenheit und 7% weniger Verkäufe.
Wer die üblichen Optimierungen seiner Applikation auf Code-Ebene bereits umgesetzt hat und noch mehr Geschwindigkeit aus seiner Lösung herausholen will, kommt um einen Webbeschleuniger wie Varnish nicht herum. Varnish beschleunigt als Web-Proxy die Auslieferung von Websites um den Faktor 10 und mehr und spart dabei sogar Rechenleistung. Richtig spannend ist das Caching-System dank der flexiblen und schlanken VCL und den Zusatzmodulen für beinahe jede Fragestellung.
Die Präsentation der Varnish-Spezialisten von snowflake zeigt, wie Varnish in
bestehende Lösungen integriert werden kann. Anhand von Fallbeispielen wird aufgezeigt, wo
Fallstricke zu erwarten sind und wo Potenzial in vielen Fällen brach liegt.
OpenTuesday: Jede Sekunde zählt - Webbeschleuniger Varnish im Einsatz
1. snowflake | OpenTuesday - Jede Sekunde zählt: Webbeschleuniger Varnish im Einsatz, 01.10.2013 1
Jede Sekunde
zählt
Webbeschleuniger
Varnish im Einsatz
2. snowflake | OpenTuesday - Jede Sekunde zählt: Webbeschleuniger Varnish im Einsatz, 01.10.2013 2
Agenda Über snowflake
Wieso HTTP
Caching
Alternativen Funktionsweise
Über Varnish
Module &
Integrationen
3. snowflake | OpenTuesday - Jede Sekunde zählt: Webbeschleuniger Varnish im Einsatz, 01.10.2013 3
Über mich
Andri Steiner
Leiter Hosting
Datacenter
Automation
Varnish
evangelist ☺
VW Bus Schrauber
Gleitschirmpilot
4. snowflake | OpenTuesday - Jede Sekunde zählt: Webbeschleuniger Varnish im Einsatz, 01.10.2013 4
snowflake
kurz vorgestellt Gegründet 1999
Büros in Zürich,
Bern und Luzern
Varnish
Hosting &
Integrations-
partner
Fokus auf Open
Source
Technologien und
Weblösungen
rund 50
Mitarbeiter
5. snowflake | OpenTuesday - Jede Sekunde zählt: Webbeschleuniger Varnish im Einsatz, 01.10.2013 5
Hosting
Service & Support
SchulungDesign
Beratung und
Konzeption Umsetzung
snowflake
kurz vorgestellt
6. snowflake | OpenTuesday - Jede Sekunde zählt: Webbeschleuniger Varnish im Einsatz, 01.10.2013 6
2005: Idee @
Verdens Gang AS
Poul-Henning
Kamp BSD Lizenz
Redpill Linpro /
Varnish
Software AS
kommerzieller
Support,
Zusatzmodule
2006: v1
2008: v2
2011: v3
Integrations-/
Hosting-/
Schulungs-
Partner
Varnish
kurz vorgestellt
9. snowflake | OpenTuesday - Jede Sekunde zählt: Webbeschleuniger Varnish im Einsatz, 01.10.2013 9
Server entlasten
weniger Server,
kleinere Server
massive Kosten-
einsparungen
von 14 auf 2 (1)
Server
10. snowflake | OpenTuesday - Jede Sekunde zählt: Webbeschleuniger Varnish im Einsatz, 01.10.2013 10
Weitere Vorteile Redundanz
DoS
Business Logik in
VCL
sehr schnell
sehr flexibel
geografische
Verteilung Load Balancer
Lizen
z
11. snowflake | OpenTuesday - Jede Sekunde zählt: Webbeschleuniger Varnish im Einsatz, 01.10.2013 11
Software
z.B. Squid
langsamer
weniger flexibel
kein SupportAlternativen
Hardware
z.B. BigIP
weniger flexibel
sehr teuer
CDNs
gut für reines
HTTP Caching
unflexibel
Vendor Lock-In
sehr teuer
Caching auf
Applikations-
ebene
langsamer
unflexibel
Abhängigkeiten
Hardware
hohe Kosten
kein/kleiner
Geschwindigkeits-
zuwachs
SSL Support
in den meisten
Alternativen
enthalten
NICHT in Varnish
12. snowflake | OpenTuesday - Jede Sekunde zählt: Webbeschleuniger Varnish im Einsatz, 01.10.2013 12
sub vcl_fetch {
# Cache only GET or HEAD Requests
if (req.request != "GET" && req.request != "HEAD") {
return (hit_for_pass);
}
# Cache static files
if (req.url ~ "^[^?]*.(css|js|htc|txt|swf|flv|pdf|gif|jpe?
g|png|ico|woff|ttf|eot|otf|xml|md5|json)($|?)") {
return (deliver);
}
# Cache static Pages
if (beresp.http.TYPO3Pid && beresp.http.Pragma == "public") {
unset beresp.http.SetCookie;
return (deliver);
}
# do not cache everything else
return (hit_for_pass);
}
Funktionsweise
HTTP reverse
Proxy Server
Caching im
RAM/Swap
sehr effiziente
Programmierung
VCL
Varnish
Configuration
Language
13. snowflake | OpenTuesday - Jede Sekunde zählt: Webbeschleuniger Varnish im Einsatz, 01.10.2013 13
ESI
Edge Side Includes
„iframes“ werden
von Varnish
zusammengesetzt
dynamischen und
statischen Inhalt
mischen
kann Sinn machen,
muss aber nicht
<html>
<body>
<h1>Privater Bereich</h1>
<esi:include src="/privat/" />
<h1>News</h1>
<p>...</p>
</body>
</html>
besser AJAX
verwenden
ESI Requests
müssen sehr
performant sein
Debugging
kompliziert
14. snowflake | OpenTuesday - Jede Sekunde zählt: Webbeschleuniger Varnish im Einsatz, 01.10.2013 14
HTTP Standards
Serverseitiger
HTTP reverse
Proxy Server
(früher:
Clientseitig)
alle nötigen
Funktionen bereits
spezifiziert
keine Magie in
Varnish
Magie in VCL
möglich,
aber nicht
zwingend nötig
GET / POST richtig
unterscheiden
15. snowflake | OpenTuesday - Jede Sekunde zählt: Webbeschleuniger Varnish im Einsatz, 01.10.2013 15
HTTP Standards -
Cookies
Cookies =
Sessionabhängige
Daten =
kein Caching
keine Cookies
verwenden
Cookies an
bestimmte Domain
oder Pfad binden
in VCL umgehen
16. snowflake | OpenTuesday - Jede Sekunde zählt: Webbeschleuniger Varnish im Einsatz, 01.10.2013 16
VCL
State Engine, wird
zur Laufzeit zu C
Code kompiliert
HTTP Header
regular
Expressions
Eingriff in jedem
Status möglich
17. snowflake | OpenTuesday - Jede Sekunde zählt: Webbeschleuniger Varnish im Einsatz, 01.10.2013 17
VCL - Beispiele
sub vcl_recv {
# do not cache TYPO3 BE User requests (Preview)
if (req.http.Cookie ~ "be_typo_user" || req.url ~ "^/typo3/") {
return (pass);
}
}
sub vcl_fetch {
# Cache only GET or HEAD Requests
if (req.request != "GET" && req.request != "HEAD") {
return (pass);
}
# Cache static Pages
if (beresp.http.TYPO3-Pid && beresp.http.Pragma == "public") {
unset beresp.http.Set-Cookie;
return (deliver);
}
}
32. snowflake | OpenTuesday - Jede Sekunde zählt: Webbeschleuniger Varnish im Einsatz, 01.10.2013 32
weitere Module
Mobile Device
Detection API Acceleration Hashninja
weitere (freie und unfreie) unter
https://www.varnish-cache.org/vmod
33. snowflake | OpenTuesday - Jede Sekunde zählt: Webbeschleuniger Varnish im Einsatz, 01.10.2013 33
Integrationen TYPO3 Magento Wordpress
weitere ...
34. snowflake | OpenTuesday - Jede Sekunde zählt: Webbeschleuniger Varnish im Einsatz, 01.10.2013 34
TYPO3 Integration
KISS /
minimalinvasiv
sendet Cache Infos
in eigenem Header
an Varnish
sendet TYPO3
Cache Kommandos
an Varnish
Dokumentation &
Code auf GitHub
https://github.com/snowflakech/typo3-varnish
35. snowflake | OpenTuesday - Jede Sekunde zählt: Webbeschleuniger Varnish im Einsatz, 01.10.2013 35
snowflake &
Varnish
Hosting und
Integrations-
partner in
Deutschland,
Österreich und der
Schweiz
Betrieb,
Implementation
und Beratung
Attraktive
Bundlepreise
36. snowflake | OpenTuesday - Jede Sekunde zählt: Webbeschleuniger Varnish im Einsatz, 01.10.2013 36
weitere
Informationen
Community
https://www.varnish-cache.org/
„varnish-misc“ Maillinglist
Kommerziell
http://www.snowflake.ch/varnish/
http://www.varnish-software.com/
nochmal sehen?
https://speakerdeck.com/steinair