Varnish - makes websites fly.
Sådan præsenteres http-cachingproduktet Varnish, der anvendes af et utal af websites verden over. Facebook har blandt andre valgt at anvende Varnish for at være i stand til at give de millioner af Facebook-brugere ordentlige svartider.
Ligesom Twitter, eBay og New York Times anvender Varnish.
I dag bliver version 3 af Varnish så frigivet, men inden vi kigger på, hvad Varnish 3.0 indeholder, så lige en kort beskrivelse af, hvad Varnish gør.
Jeg gi'r min server en gang lak...
Varnish minimerer svartiden for en bruger, der ønsker at se en bestemt webside.
Når du beder om at få en webside fra en webserver, så skal webserveren nemlig først hente de forskellige dele, som udgør websiden - billeder, tekst, annoncer, video og så videre - og derefter sammensætte de forskellige elementer i én samlet side, før den sendes ud til brugeren.
Når en ny bruger sender en forespørgsel på den samme side, så skal webserveren i gang med det samme arbejde igen. Det kan tage tid, hvis der er mange brugere, og derved kan svartiden forringes - og brugerne forsvinde. Selv et par sekunders ventetid får nogle brugere til at forlade dit website.
Varnish ligger foran webserveren og cacher de websider, som webserveren sammensætter. Næste gang en bruger spørger efter websiden, skal webserveren altså ikke i gang med at sammensætte siden. Varnish serverer websiden til brugeren.
Komprimering og egenudviklede Varnish-moduler
Første version af Varnish kom i december 2006, og det er altså knap fem år senere, at Varnish version 3 nu frigives.
Der er to features i den nye version, som er specielt interessante. Den ene er, at det fremover bliver muligt for udviklere at skrive deres egne moduler til Varnish i form Varnish Modules eller vmods.
Varnish konfigureres ved hjælp af Varnish Configuration Language (VCL). Med version 3 vil man kunne importere Vmods i VCL og anvende de funktioner, som stilles til rådighed af vmods.
En anden vigtig nyhed er, at Varnish fremover understøtter gzip-komprimering. Det vil blandt andet gøre det nemmere at anvende Varnish sammen med Edge Side Includes eller ESI.
For en mere detaljeret gennemgang af nyhederne i Varnish 3.0 kan Varnish-udvikleren Kristian Lyngstøls blog anbefales.
Open source-udvikler og pragmatiker: I gør det forkert
Det er danske Poul-Henning Kamp, der i mange år har udviklet på open source styresystemet FreeBSD, som er hovedprogrammøren på Varnish.
Han indledte projektet med Varnish i samarbejde med den norske avis Verdens Gang.
Senere er der kommet flere udviklere til, og i dag er der oprettet et selskab, Varnish Software, der blev udskilt fra Redpill Linpro i 2010.
Arbejdet med Varnish fik Poul-Henning Kamp til at skrive en artikel i det ansete ACMQueue i juni 2010 med titlen "You´re Doing It Wrong". I vanlig Poul-Henning Kamp-stil, som nogle måske vil kalde arrogant, undrer Poul-Henning Kamp sig over, at dataloger ved algoritme-udvikling ikke tager højde for ting som "virtuel memory, CPU caches, write buffers og andre kendsgerninger ved moderne hardware".
Og moderne hardware er i denne forbindelse mere end 30 år gammel hardware:
"And just for the record: by modern, I mean VAX 11/780 or later."
Artiklen får en del læsere til at hive deres tastatur frem og forsvare algoritme-undervisning og datalogien.
Det degenererer hurtigt til en diskussion, hvor parterne taler forbi hinanden: Den pragmatiske Poul-Henning Kamp, der fokuserer på praktisk effektiv implementering og mere teoretiske videnskabeligt funderede dataloger.
Det bliver hurtigt en lidt akademisk diskussion, men fakta er, at Poul-Henning Kamp og andre Varnish-udvikleres implementering af http-cache altså anvendes af millionbrugerwebsites som Facebook og Twitter, da de har brug for noget, der virkelig kan performe.
Nederst i denne artikel giver Poul-Henning Kamp en kort oversigt over de vigtigste nyheder i Varnish 3.0.
Release-parties verden over
Selvom en http-cache ikke er noget som eksempelvis de mange millioner Facebook-brugere tænker over, så er der stor begejstring blandt Varnish-udviklere og -brugere.
Så stor begejstring, at der ligefrem holdes release-fester i dag i anledning af, at Varnish 3.0 frigives. Du kan se en oversigt over de globale release-parties her. Det danske release-party foregår på Mikkeller bar i København i aften fra kl. 19. Som det hedder i Scoofs release-party invitation: "... and [we] stay until we leave. No program. No presentations. Just beer".
Men mon ikke der bliver snakket lidt om http-caching og web acceleratorer?