Varnish in fünf Akten

Eric Herrmann

Varnish ist eine ziemlich elegante Lösung, will man seiner Website Flügel verleihen. Das Cache-System bedarf allerdings einiger Konfiguration, bevor der Reverse HTTP-Proxy tut, was er soll. Sean T Allen, IT-Architekt beim Recruitung-Portal TheLadders, fasst die wichtigsten fünf Schritte zusammen, die er bei der Konfiguration eines Varnish-basierten Caching-Systems abarbeitet.

Akt 1: Die Dienste

TheLadders nutzt für jeden seiner Dienste je eine separate Varnish-Instanz. Vorherige Versuche, Caching in die Java-Logik zu implementieren, sind an Konflikten mit dem Speicher-Management gescheitert. Code-externe Lösungen halfen hier bei der Trennung der Aufgaben.

Akt 2: Die Architektur

Auf Varnish wird über einen Load Balancer zugegriffen. Auf diese Art weicht das System sicher auf das ungepufferte Backend aus, falls Varnish ausfallen sollte und (eingeschränkt auch) vice versa.

Akt 3: Aufhebung

Entweder über den Header oder eigene Scripte können bestimmte Inhalte aus dem Cache für nichtig erklärt weden, damit der Client keine alten Daten angeliefert bekommt. Möglich wäre ein Skript, das Datenbank-Logs ausliest, und bei Änderungen in bestimmten Zeilen anhand des Primärschlüssels einen Invalidation-Request an Varnish schickt. Dieser sollte nur durch eine begrenzte Zahl von IP-Adressen ermöglicht werden.

Akt 4: Konfiguration

Um den Cache, wie oben schon angedeutet, bei Ausfällen auch als zweites Standbein nutzen zu können, bedarf es eines entspechend eingerichteten Load Balancers. Dieser kann im „Degraded“-Modus das System auch dann noch am Leben erhalten, wenn das Backend keine HTTP 200 Response mehr schickt. Besonders geschickt ist es hier, wenn man Varnish erklärt, dass es in einem solchen Fall die Time-To-Live verlängern soll. Desto länger können Eure Clients zumindest die häufigsten Aufrufe Eures Services noch weiternutzen.

Akt 5: Finale

All dies lässt sich in einem einzelnen File ablegen. Wer sich die Schreibarbeit ersparen möchte, kann Allens oben erläuterte Konfiguration 1:1 kopieren.

Geschrieben von
Eric Herrmann
Eric Herrmann
Eric Herrmann war von 2012 bis 2013 als Redakteur bei Software & Support Media tätig. Sein Themenschwerpunkt liegt bei Webtechnologien, insbesondere PHP und JavaScript. Vor seiner Zeit als Online-Redakteur hat er Wissenschaftsjournalismus (B. A.) an der Hochschule Darmstadt studiert.
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.