(Bilde: H.Brombach)
(Bilde: Rubén Romero/Varnish Software)

Varnish Cache

Har satt fart på weben i ti år

Nå planlegges en ny versjon av webakseleratoren Varnish Cache.

NYDALEN, OSLO (digi.no): Til å være et såpass lite land, så har Norge hatt stor betydning for hvordan weben, World Wide Web, fungerer i dag. Håkon Wium Lie med CSS og Opera Software som en standhaftig forkjemper av webstandarder, har utvilsomt betydd mye. Men også på serversiden har norske krefter spilt en betydelig rolle. Ikke minst gjennom webcache-systemet Varnish Cache, som fyller ti år i år.

Digi.no har i den forbindelse fått Per Buer, som har fulgt prosjektet hele veien, til å fortelle historien fra den spede begynnelsen og fram til nå. Buer er i dag teknologidirektør i selskapet Varnish Software, som ble skilt ut av Redpill Linpro i 2010.

Bakteppet for det hele var en konsekvens av dotcom-krasjen og behovene til daværende VG Multimedia.

På slutten av 1990-tallet var det flere aktører som jobbet med løsninger for å skalere nettsteder. Men på grunn av kapitalflukten etter nedturen på begynnelsen av 2000-tallet, forsvant mange av disse.

VG Nett

Løsningen mange nettsteder etter hvert tok i bruk, var Squid, som først og fremst var og er en vanlig «forward» proxy-server, men som mange nettsteder brukte som invertert proxyserver, eller webcache, for å kunne håndtere den stadig økende trafikken. Men for større nettsteder ble det likevel vanskelig å få dette til å gå rundt.

– VG Nett var størst i Norge og merket dette trykket hardest, sier Buer.

Initiativtaker Anders Berg var teknisk ansvarlig i VG Multimedia på denne tiden. I 2006 fortalte han blant annet digi.no at hver gang leserne lastet ned en side fra VG.no, så ble forespørselen sendt til en lastbalanseringsserver, som fordelte forespørslene på i alt tolv Squid-baserte HTTP-akseleratorer. Bak disse igjen, var det vanlige Apache-webservere.

Men selv med tolv kraftige maskiner greide man ikke med Squid å betjene trafikkøkningen midt på dagen uten at aksesstiden ble betydelig forringet.

Derfor gikk Berg til ledelsen i VG og sa at han ville sette i gang noe nytt. Han ønsket at VG skulle sponse dette og at resultatet skulle være åpen kilde-kodebasert. Berg forteller mer om bakgrunnen i dette intervjuet.

Poul-Henning Kamp

Dette førte til at Berg blant annet tok kontakt med daværende Linpro, hvor Buer var ansatt og fikk en kopi av e-posten.

– Jeg husker jeg foreslo en løsning, som heldigvis aldri noe av, sier han.

I stedet var det danske Poul-Henning Kamp som fikk hovedansvaret for design og utvikling av det som skulle bli Varnish Cache, sammen med Dag-Erling Smørgrav fra Linpro. Selskapet bidro også med verktøy, rammeverk og support. Programvaren ble basert på en spesifikasjon som Berg skrev.

Den 22. februar 2006 skjedde første «commit'en», og den 20. september samme år ble det arrangert en pressekonferanse i VGs auditorium hvor Varnish Cache ble lansert og tolv servere kunne reduseres til én. Digi.no var selvfølgelig tilstede.

Uvanlig konstellasjon

På spørsmål om hvor involvert Kamp er i dag, svarer Buer at han er kjempeinvolvert.

– Konstellasjonen mellom produktet og selskapet er ganske unik. Kamps rolle er å være sjefsarkitekt for open source-prosjektet, forteller Buer.

Kamp rapporterer ikke til Buer, det er nesten omvendt, sier Buer og ler.

– Men vi kan hinte om hvor vi vil at prosjektet skal gå og støtte opp om dette ved å legge til ressurser.

Ifølge Buer er Kamp selvstendig finansiert av en hel haug med selskaper, inkludert Varnish Software. Men Kamp kan disponere tiden sin som han vil.

Kamp har for øvrig skrevet litt om jubileet her. Spesielt lenkene nederst i innlegget kan være interessante.

Skreddersydd

Ifølge Buer var 1.0-versjonen temmelig skreddersydd for VG Netts bruk.

– Det var slitsomt å deploye den på noe annet, sier han, men det var flere ville gjøre det likevel. Buer sier at prosjektet var ganske marginalt de to første årene, hvor det meste dreide seg om at Kamp og Smørgrav reiste rundt på ulike Unix-konferanser for å så interesse for prosjektet.

– Brukerskaren på disse konferansene tok det i bruk herfra, og det spredte litt viralt, sier Buer.

Han forteller at det som var hovedideen med Varnish, var at programvaren ikke har noen konfigurasjonsfil.

– I stedet programmerer man konfigurasjonen. Det er dette som i etterkant er suksessen til prosjektet. Det ga brukerne mulighet til å programmere Varnish slik de ville, sier Buer. Han beskriver programvaren som kompleks, men kompakt, med en kodebase på omtrent 10 prosent av Squid.

Krevende

– Det er en kompetansekost å ta i bruk Varnish, så det er en del som backer unna. Det er veldig varierende hvor lang tid folk bruker på å skjønne konseptet og å få det på plass. Relativt enkle nettsteder bruker kanskje tre dager, noe som er ganske mye til å være en infrastrukturkomponent, men med en klar gevinst, forteller Buer.

Dette har ført til at Varnish i temmelig begrenset grad benyttes av små nettsteder, men i betydelig større grad av de største.

– Jevnt over er på 3 prosent, mens på topp 10 000 er vi på 14 prosent av nettstedene, sier Buer.

Versjon 2.0 kom i 2008.

– Dette var den første utgaven som var ordentlig stolte av. Det var først denne som var brukbar overalt og med et forutsigbart resultat, sier Buer. Det var også i 2008 at etterspørselen etter Varnish løsnet.

– Først og fremst på grunn av Twitter, tror jeg, hvor search.twitter.com var det store problemet siden det er der alle søker etter hashtagger, sier Buer. Problemene ble løst ved at Varnish ble satt inn og cachet hver søk i ti sekunder.

– I tillegg kom Facebook, som i motsetning til Twitter, og utrolig nok, ikke hadde skaleringsproblemer. Varnish ble mest brukt til ulike støttefunksjoner. Men vi fikk hyggelige e-poster fra dem om hvor mye penger de sparte på det, forteller Buer.

Fart

På spørsmål om farten til Varnish, sier Buer at dette er ekstremt vanskelig å snakke om ytelsestall fordi det er stor forskjell på lab og i den virkelige verden.

– Men det er som regel ikke Varnish som er den første komponenten som gir seg. Med unntak av fire-fem veldig krevende kunder, er det lite blodtyning av Varnish, sier Buer.

– Det er det samme som med biler, det er ikke toppfarten som er det utslagsgivende for de fleste, for stort sett er vi raske nok.

Med versjon 2.0 fikk Varnish støtte for Edge Side Includes (ESI), som ifølge Buer var sponset av Amedia, Aftenposten og Escenic og ble utviklet spesifikt for norsk nettsteder, som alle hadde lister nederst på artikkelsiden over blant annet de mest leste sakene. Med ESI kunne disse caches individuelt i Varnish.

Buer forteller at det siden versjon 2.0 ikke har vært så mye featureutvikling, og at det har blitt mye vanskeligere å forklare hva forbedringene går ut på.

Versjon 3.0 av Varnish Cache kom i 2011, og denne kom med modulstøtte, slik at den kunne integreres med andre typer programvare. Dessuten gjorde denne versjonen det mulig å skrive mye mer avansert logikk i konfigurasjonsspråket.

Nyhetene i versjon 4.0, som kom i 2014, dreide seg ifølge Buer mest om litt ytelsesforbedringer og intern omorganisering, mens versjon 4.1, som kom i fjor, hadde én stor nyhet, nemlig støtte for Amazons Elastic Compute Cloud (EC2).

– Varnish liker ikke at servere skifter IP-adresse, forteller Buer.

Fortsatt er det rundt 25 prosent av brukerne som benytter versjon 3.0.

Betalingsmur

Buer forteller at han på et tidspunkt maste på Anders Berg for å prøve å implementere betalingsmur i Varnish. Fædrelandsvennen ble valgt som forsøkskanin.

Per Buer forteller her om fordelene med å ha et eget ølbryggeri på jobben. Bilde: H.Brombach
– For meg var det utrolig viktig å kunne demonstrere at vi kunne gjøre noe som ingen andre cacheprodukter kunne, sier Buer. Uten caching av det betalinnholdet ville alle forespørslene gå tilbake til applikasjonsserveren og dermed gi en dårligere opplevelse for betalende brukere enn for de ikke-betalende, og det var selvfølgelig uønsket.

– Fra dette ble Varnish sett på som en app-plattform, hvor vi kunne skrive apper inne i Varnish. Vi brukte denne erfaringen til å bygge API Gateway-en inne i Varnish, sier Buer. API Gateway-en ble lansert for omtrent et år siden.

– Det var utrolig gøy å kunne gjøre dette for å vise hvor fleksible de underliggende systemene var, og vi kunne ikke ha gjort dette uten å kunne konfigurere dette ved hjelp av programmering.

Men det er ikke bare Varnish Software selv som har utnyttet disse mulighetene. Buer nevner blant annet Pinterest, som bruker åpen kildekode-utgaven av Varnish og har derfor ikke noe kommersielt forhold til Varnish Software.

Ifølge Buer har ruller Pinterest ut ny kode til rundt tusen servere to ganger om dagen. Denne utrullingen tar omtrent en time, noe som kunne føre til at brukerne i denne perioden vekslet mellom oppdaterte og ikke-oppdaterte servere. Dette problemet skal de ifølge Buer ha løst ved hjelp av Varnish.

5.0

Den neste versjonen av Varnish Cache skal etter planen lanseres den 15. september. Hovednyheten er støtte for HTTP/2. Buer sier at Varnish-miljøet ikke har vært spesielt begeistret for HTTP/2-prosessen.

– Det har vært masse endringer som har blitt gjort veldig kjapt, uten at det er noen reell hensikt med alle disse. Det er fascinerende at HTTP har fått være så enkel som den er, så lenge. Nå blir det mye mer komplekst. Er denne kompleksiteten verdt det? Ikke etter vår mening, sier Buer.

– Men det er veldig greit nå, vi har ikke noe valg. Men det blir ingen wow-effekt av det.

Buer mener at HTTP/3 derimot vil få signifikant betydning, når den kommer om en fem års tid. Ifølge Buer vil den innføre enda mer kompleksitet, men som gir mer mening.

Det er sjelden vanlige brukere registrerer at nettsteder benytter Varnish. Unntaket er nå det dukker opp slike feilmeldinger, hvor «Guru Meditation» helt klart er en referanse til Commondore Amiga.

Konkurranse

Ifølge Buer er det mye som er felles mellom Varnish og de to største konkurrenten, franske HAProxy og russiske Nginx. Sistnevnte er kanskje mest kjent som webserver.

– De tre dominerer til sammen mye av markedet, alle er open source, alle har et kommersielt selskap bak dem. Men de gjør litt forskjellige ting for å tjene penger, sier Buer.

Ifølge Buer er det først og fremst en rekke små forskjeller på de kommersielle og ikke-kommersielle produktene til HAProx og Nginx. Derimot er det én stor forskjellen på Varnish Cache og proprietære Varnish Plus, nemlig mengden av innhold som kan caches. I Varnish Cache er grensen på 100 gigabyte, mens den er på 100 terabyte i den proprietære utgaven.

Dette høres kanskje voldsomt ut, men ifølge Buer er det ganske moderat så snart man begynner å publisere video. Han forteller at Comcast for noen år siden planla å bruke Varnish i forbindelse med Video on Demand, men at dette ikke fungerte i det hele tatt.

«DIY CDN»

– Så for tre år siden satte vi i gang med å løse dette ved å øke mengden av innholdslagring. Den proprietære utgaven versjonen er nå spesielt rettet mot «DIY CDN» [Do It Yourself Content Delivery Network], sier Buer, som legger til at det er mange, blant annet kabelselskaper, som ønsker å distribuere innholdet selv i sitt eget nettverk.

– Ellers er Tesla et godt eksempel, sier Buer.

Nylig ble det offentlig kjent at Tesla Motors benytter Varnish på mange områder.

– De distribuerer store mengder innhold til store mengder brukere, inkludert oppdateringer til bilene, sier Buer, som synt det er stas å ha Tesla som kunde.

Det er likevel ikke bare de som skal drive egne CDN-tjenester som er kunder av Varnish Software.

– Supporten vår er fortsatt utrolig viktig. Omtrent halvparten av kundene signer nok opp på grunn av denne, siden Varnish er en kritisk komponent for mange, sier Buer.

Røde tall

Til tross for at selskapet har en omsetningsvekst på rundt hundre prosent i året, er det ikke profitabelt.

– Vi går bevisst med underskudd, det vil si at vi bytter overskudd mot vekst, sier Buer. Kundeporteføljen beskriver han som «helt OK».

Selv om hovedmarkeringen av tiårsjubileet til Varnish Cache trolig vil skje i september, har feiringen for lengst startet og vil ifølge Buer være et gjennomgående tema for hele året.

Til toppen