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
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
Einsatz, 01.10.2013 11 Software z.B. Squid langsamer weniger flexibel kein Support Alternativen 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
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
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
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
Einsatz, 01.10.2013 20 VCL Cookie Handling sub vcl_recv { if (req.http.Cookie) { # throw away Google Analytics Cookies set req.http.Cookie = regsuball(req.http.Cookie, "(^|; ) *__utm[a-z]=[^;]+;? *", "\1"); # throw away Client related Cookies set req.http.Cookie = regsuball(req.http.Cookie, "(^|; ) *client_[0-9a-zA-Z_]+=[^;]+;? *", "\1"); # throw away eID related Cookies on all non-eID related Request if (!req.url ~ "(\?|&)eID=[0-9a-zA-Z_-]+") { set req.http.Cookie = regsuball(req.http.Cookie, "(^|; ) *eID_[0-9a-zA-Z_]+=[^;]+;? *", "\1"); } if (req.http.Cookie == "") { remove req.http.Cookie; } } }
Einsatz, 01.10.2013 24 Möglichkeiten sauberes Backend wenig VCL Caching anhand HTTP Header wenige - keine Ausnahmen „schwieriges“ Backend HTTP Header in- konsistent „cache all but some“ keine Zeit, schnelle Implementation, Probleme lindern Microcaching Kombinationen
Einsatz, 01.10.2013 32 weitere Module Mobile Device Detection API Acceleration Hashninja weitere (freie und unfreie) unter https://www.varnish-cache.org/vmod
Einsatz, 01.10.2013 35 snowflake & Varnish Hosting und Integrations- partner in Deutschland, Österreich und der Schweiz Betrieb, Implementation und Beratung Attraktive Bundlepreise