bredbånd

Norsk suksess får nettgigantene til å skinne

Møt den ukjente gjengen som senker responstiden på VG, Facebook og Twitter til mikrosekunder. 1,7 millioner nettsteder har tatt i bruk løsningen.

For to – tre år siden var Audun Ytterdal, IT-driftssjef hos VG, på Velocity-konferansen i USA. Der skulle han høste erfaringer fra hvordan store, internasjonale nettsider driftet nettsidene sine, slik at han og resten av gjengen i VG kunne være bedre rustet i fremtiden. På sine vandringer rundt om på området kom han over standen til Facebook, og kom i snakk med de som stod der.

De snakket litt om løst og fast, og Ytterdal nevnte at han hadde laget et verktøy som het Munin for mange år siden, et trendanalyseverktøy. Da han sa at han kom fra VG fikk samtalen brått en uventet vending.

– De visste nemlig veldig godt hvem VG var, for der kom Varnish fra, men de ante ikke at det var en avis. Folk i utlandet, og kanskje spesielt de som driver med større nettsider, ser på VG som stedet der Varnish kommer fra, og ikke en avis.

– De var faktisk så fornøyd med Varnish at de inviterte meg ut på middag, og der ble jeg sittende og pludre med de tekniske sjefene fra Facebook, Twitter og Amazon. Det var ganske rart å sitte der med de tre største entitetene på Internett, og plutselig føle seg så viktig. Selv om VG er stor i Norge og Skandinavia, er den en mygg i resten av verden, sier Ytterdal med et smil.

VG har du hørt om før, men det er slett ikke sikkert du har hørt om Varnish. Likevel, bare det at du leser denne teksten betyr at du nyter av programvaren det er snakk om. Varnish er en HTTP-akselerator, en cache-løsning, og denne brukes av en rekke nettsider verden over, inkludert Mediehuset teks nettsider. I tillegg brukes den av både Facebook og Twitter, samt 1,7 millioner andre nettsteder verden over, og det Varnish meget kort fortalt gjør, er å ta unna ekstreme mengder trafikk uten å belaste serverne i særlig grad.

Bak Varnish finner vi Varnish Software, et norsk programvareselskap med kontorer i Nydalen i Oslo. Historien bak både selskapet og programvaren er som den reneste eventyrfortelling.

Som en kopimaskin

Varnish er en dedikert HTTP-akselerator, og akkurat hva denne programvaren egentlig gjør kan Per Buer, teknologidirektøren og gründeren i Varnish Software, fortelle mye om.

– Du kan si at Varnish er en webserver, men den kjører hverken Java, PHP eller noe slikt. Det den gjør er å hente innhold fra andre servere, som en proxy-server. Den tar imot en henvendelse fra en klient, og så sjekker den om den har en kopi liggende. Hvis den ikke finner dette, går den til CMS-en og får laget en kopi, forklarer Buer.

CMS står for content management system, og er noe som ligger på blant annet webservere. Oppgaven til en CMS er å sette sammen ferdige nettsider, med innhold som ligger på diverse databaser. For eksempel er denne saken du leser nå satt sammen av flere deler, der teksten kommer fra et sted, bildene fra et annet sted og skallet rundt fra et tredje sted. CMS-en kobler dette sammen, og serverer det til deg via nettverksporten din.

Heldigvis går dette veldig raskt om noen andre har sett saken før deg. Den første personen som besøkte denne artikkelen måtte ta hele veien inn til vårt CMS-system, som puslet sammen alle de små brikkene som utgjør denne saken og presenterte den til han eller henne. Men på veien fanget Varnish opp en kopi av det ferdige puslespillet, og lagret den hos seg, noe som sørger for at alle andre som i løpet av dagen leser denne artikkelen slipper å gå veien om CMS-systemet. De får bare det ferdige puslespillet servert på sølvfat.

– Grunnen til at Varnish er såpass kjapp, er at arbeidet som skal gjøres er mye enklere enn det CMS-en gjør. Vi sammenligner oss gjerne med en kopimaskin. Hvis du for eksempel får et ark og en penn, så bruker du kanskje ti minutter å fylle det arket med skrift. Om jeg så får det arket og lager ti kopier med en kopimaskin, så går det veldig mye raskere, men kopimaskinen er ikke flinkere til å skrive enn det du er. Derimot er den veldig rask, siden den har en spesialisert oppgave som består i å ta kopier. Det samme gjelder Varnish, den skal bare kjøre ut en kopi raskest mulig, forklarer Buer.

Når en CMS får en forespørsel kan det godt ta opp mot 200 millisekunder før den får respondert. Varnish vil kunne svare på en forespørsel på 30 mikrosekunder, fordi selve puslespillet av innhold allerede er satt sammen. Det forutsetter dog at noen andre har spurt om å få skrudd sammen akkurat den samme siden før deg.

Boblen som sprakk

Forhistorien til Varnish starter i forbindelse med den store .com-boblen mot slutten av forrige årtusen. Investorene hadde dollartegn i øynene, og løp hverandre i senk for å finne spennende prosjekter som kunne kaste av seg. Det var rett og slett en massiv kapitalinnsprøytning i markedet, og ingen så faresignalene før det bar utfor stupet.

Pengeflommen forsvant, og blant de produktgruppene som ble veldig hardt rammet var de som skulle hjelpe webben å skalere – altså hjelpe webben med å ta unna den stadig voksende trafikken.

– Når disse produktene forsvant var det vanskelig for de som drev store nettsteder å finne de verktøyene de trengte for å skalere videre. NettApp hadde for eksempel et produkt som de kalte for NetCache, og det prosjektet ble stengt ned og videresolgt. Videre hadde vi Citrix med NetScaler, som de droppet satsningen på. Open source-prosjektet Squid fantes også, men de hadde egentlig endret litt fokus fra å være en webakselerator til å bli kontorproxy, forklarer Buer.

Dermed måtte de som drev store nettsider på den tiden gjennom en smertefull driftsperiode. Én av disse var norske VG Nett. Dette var Norges største nettside på den tiden, og er det strengt tatt fremdeles. De hadde sitt svare strev med å holde hodet over vannet rent teknisk.

– VG Nett driftet mer eller mindre hele nettsiden med én mann, og de fikk større og større problemer med å takle den trafikkveksten som fant sted på den tiden. VG Nett var etablert som et eget selskap, og fikk minimalt med drahjelp fra hovedkonsernet, forteller Buer.

VG Nett har holdt det gående på nett siden 1995, og brukte lenge Squid som en cache-løsning for nettsidene. Men på grunn av endringene i markedet og Squid-prosjektets fokus, måtte de se seg om etter andre løsninger, forteller VGs driftssjef:

– På den tiden brukte vi Squid, og det var naturlig å ta kontakt med dem for å høre om vi kunne betale for tilpasning av programvaren slik at den passet oss, men det var ikke aktuelt. Dermed gikk raskt tankene over til at vi like gjerne kunne utvikle selv. Vi fikk satt opp en kravspesifikasjon om hvordan en bra HTTP-akselerator skulle fungere, samtidig som konsernet åpnet lommeboken. Dermed var vi igang, utdyper Ytterdal.

Som sagt så gjort. Hjulet hadde begynt å rulle, men enda skulle det være en lang vei å gå. Ytterdals forgjenger, Anders Berg, startet opp samtaler på kryss og tvers i bransjen. Det er på mange måter nettopp Bergs arbeid som ligger til grunn for at Varnish i det hele tatt ble skapt. Etter relativt kort tid ble kom man i kontakt med en dansk utvikler som hadde vært sentral i FreeBSD-utviklingen, Poul-Henning Kamp.

Kamp var positivt innstilt til å lage en webakselerator og en webserver, og satte i gang med utviklingen. En felles forutsetning var at det skulle være fri programvare, sier Buer:

– Det passet VG helt utmerket, siden norske medier i sin alminnelighet har vært flinke til å dele på erfaringer innen infrastruktur og utvikling, og heller konkurrere på innhold. For VG tror jeg nok det var en fordel at dette skulle være åpen programvare, for da ville andre bruke den og utvikle den videre. Dermed kunne VG også nyte godt av andres videreutvikling.

Prosjektet Varnish startet i 2005, og navnet kommer fra det franske navnet vernissage (kunstutstilling), som stammer fra ordet vernis eller varnish på engelsk. Det ble brukt fordi at varnish (lakk) gir en skinnende overflate, som får ting til å se bedre ut enn det egentlig er. Og det er nettopp det som er rollen til programvaren: Varnish skal få CMS-systemet ditt til å fremstå som raskere og mer responsivt enn det er.

Fra midten av 2006 begynte ting å skje. De første kodesnuttene hadde sett dagens lys, og det var klart for testkjøring. Fra VG Nett sendte man forsiktig rundt én prosent av leserne rett til en Varnish-server, uten at leserne ante noe som helst. VG betalte også Linpro for å portere programvaren over til Linux, siden Varnish i første omgang ble skrevet for FreeBSD. Linpro gjorde også en del annen jobb i forbindelse med lanseringen. I september 2006 var alt endelig klart, og Varnish 1.0 kunne offentliggjøres.

– Det var neppe så mange som la merke til det. Det var bare et par norske IT-blekker som plukket opp historien, men at VG brukte det gjorde det jo spennende. For VG var det en stor suksess, de gikk fra tolv servere og ned til tre, og under tester gikk det greit unna på bare én server. Hastigheten gikk samtidig opp, og vi har opplevd det samme på flere andre nettsteder. Leserne skjønte ofte ikke hva som skjedde, men vi har fått tilbakemelding på at de følte at det hadde skjedd noe positivt med nettsidene, forteller Per Buer.

VG Nett er også godt fornøyd med Varnish, hvilket kanskje ikke er så rart med tanke på at programvaren ble utviklet med VG for øye i sin tid:

– Varnish fungerer svært bra, og vi ville nok valgt Varnish igjen selv om det i dag finnes flere alternativer som for eksempel Apach TrafficSever og Nginx. Vi kunne også brukt F5 BiGIP-boksene som vi bruker for lastbalansering i front, disse får du nå egne cache-moduler til. Problemet er at dette er dyrt og ikke nødvendigvis like godt egnet til å cache store datasett med like god kontroll som Varnish. Bare spør Altinn, sier Ytterdal med et glis.

Var utviklet for VG

Etter at VG hadde fått på plass Varnish fortsatte utviklingen hos Linpro som et eget prosjekt, små forbedringer kom hele tiden på plass, men det var ikke til å stikke under en stol at programvaren i bunn og grunn var utviklet med tanke på VG. For alle andre enn VG kunne det være en særdeles omstendelig prosess å skulle benytte Varnish.

I 2008 kom 2.0 versjonen, og for gjengen bak prosjektet var det en viktig milepæl. Varnish var nå klar for verden, i en versjon som ikke utelukkende var for VG Nett. Det som virkelig skulle gi Varnish en skikkelig pangstart var de to nettjenestene Twitter og Facebook.

– 2.0-versjonen var den første versjonen som fungerte overalt. Det som skjedde da var at to store nettsteder tok i bruk Varnish. Twitter brukte det til søket sitt, som til tider hadde en veldig ujevn last. Ved å sette Varnish foran fikk Twitter stabilisert lasten på en helt annen måte, og slapp de tradisjonelle forsinkelsene, forklarer Buer.

Det er tydelig at dette er noe som Buer liker å snakke om. Han forteller med stor iver og glød, og fremstår som berettiget stolt over det Varnish har greid å oppnå.

– Facebook tok det i bruk internt på serverparken sin, som på den tiden «bare» hadde rundt 100 000 servere. Disse serverne har en del egen programvare som skaper mye intern trafikk, for eksempel trafikk som bestemmer hvilke servere som skal gjøre forskjellinge oppgaver. Etterhvert fikk også API-ene i bakgrunnen problemer med å skalere, og de forsøkte seg da med Varnish, forteller Buer.

Med Facebook og Twitter som misjonærer i Silicon Valley var mye gjort. Ryktebørsen gikk varm, og mer eller mindre alle fikk med seg at Varnish var «the Shit», som Buer selv påstår. At de ble en snakkis i Silicon Valley ga et solid oppsving i antall nettsteder som tok i bruk teknologien, men hjemme i Norge var det derimot ingen som visste at både Facebook og Twitter brukte norsk teknologi – ikke engang Buer selv:

– Vi fikk faktisk ikke vite at Twitter eller Facebook brukte oss før et par år senere, og da kan du godt si at det var et par brikker som falt på plass.

Etter den tiden har prosjektet vokst og vokst, og fra å være et nisjeprodukt har det gått til å bli en del av infrastrukturen på Internett.

I 2011 var det duket for Varnish 3.0, der en av de store nyhetene var modulstøtte. Dette åpnet opp muligheten for at tredjeparter kunne utvide Varnish. Denne støtten var det likevel ikke alle som så poenget med, deriblant Poul-Henning Kamp som utviklet det hele.

– Poul-Henning så ikke helt poenget, så jeg tror han bare implementerte det for å slippe masingen fra meg. Likevel har vi sett at det er få som gidder å gjøre endringer i koden, selv om de har lov til det. Vi senker på en måte terskelen veldig med å implementere denne støtten, forteller Buer

– En annen positiv ting er at det utvikler et eget miljø. Nå er det ikke slik at vi lemper arbeidet over på andre, for fremdeles kommer 99 prosent av endringene fra oss eller hovedutvikleren Poul-Henning Kamp. Det vi derimot opplever er at miljøet er relativt raske til å oppdage småfeil i programvaren, og det er veldig nyttig for oss, forteller Buer.

Gir bort programvaren gratis

Selv om Varnish kan erstatte en rekke webservere og potensielt spare deg for store summer, så er programvaren helt gratis. Til nå er det hele 1,7 millioner nettsider verden over som bruker Varnish. Det virker kanskje rart å gi bort noe sånt, men da må man huske på at det slett ikke er sikkert at det hadde vært 1,7 millioner nettsteder som brukte programvaren dersom den ikke hadde vært gratis.

– Det startet med at det var VGs avgjørelse å gi det bort, ettersom det var en av forutsetningene fra hovedutvikleren, og vi hadde ikke så mye å si i den saken. Varnish Software ble startet etter at Varnish-prosjektet var godt i gang, sånn at vi på mange måter gikk om bord på et tog som var i fart. Likevel er det helt sikkert at vi også hadde gitt det bort dersom det hadde vært opp til oss. Det vanskeligste i dag er å få oppmerksomhet, og slikt er verdt mye.

– En god måte å få oppmerksomhet på er å gi ting til folk, sier Buer.

– Et godt eksempel er the New York Times, som tok i bruk programvaren vår for kort tid siden. Dette ga oss innpass hos en sentral aktør, noe vi neppe hadde greid ellers. Om vi greier å tjene penger på ti prosent av de som bruker oss, så har vi en fornuftig forretningsmodell, forklarer Buer.

– Vi må bare innse at vi ikke kan tjene penger på alt. 90 prosent av de som bruker Varnish er ikke av økonomisk interesse for oss. Det må være nettsider som tjener godt med penger, og der bruken av Varnish er kritisk. Wikipedia er for eksempel ikke interessant for oss, siden de ikke har noe penger å snakke om, utdyper Buer.

– Det er ingen kostnad for oss at 90 prosent bruker Varnish uten å betale for det, så lenge vi har noen som kan betale slik at vi får det til å gå rundt, sier Buer.

Tar godt nok unna

Selv om Varnish fungerer som en kopimaskin er det naturlig nok en grense for hvor mange kopier den kan dytte ut i sekundet. Akkurat hvor denne grensen går er ikke Buer sikker på, men har likevel flere betraktninger rundt temaet.

– Det varierer veldig hvor mye Varnish greier, men programmet bruker de ressursene det får fra operativsystemet. Operativsystemet må greie å dytte unna de forespørslene som Varnish svarer på. Jeg snakket forresten med VG Nett her om dagen, etter at de hadde en topp i trafikken. Da hadde hver av de seks Varnish-serverne deres tatt unna 25 000 henvendelser i sekundet, noe som gikk helt stabilt. Det er ikke utenkelig at det kan knake litt i sammenføyningene om det går over et slikt nivå, men om det er operativsystemet eller Varnish er vanskelig å si. Problemet er at det ikke finnes noen større nettsider som lar oss arbeide med trafikken deres i sanntid, utdyper Buer.

VG Nett har på sin side ikke hatt noen spesielle problemer med egne servere på grunn av trafikkmengden. Utfordringen er heller at den heftige trafikken skaper problemer for andre aktører.

– På VG.no har vi daglig rundt 1,4 millioner unike besøkende, men dette kan doble seg på spesielle dager. Disse står for 11 millioner sidevisninger, og når det virkelig står på kan vi runde 60 millioner på én dag. I ren trafikk runder vi gjerne tre til fire gigabit per dag, men dette kan øke til rundt ti på travle dager. Er vi under angrep er det enda mer, kanskje rundt 20 gigabit. I tillegg har vi videoer da, rekorden der er 146 gigabit, og det er såpass mye at ISP-ene i Norge ringer oss og lurer på hva som skjer, siden andre i Norge begynner å slite, forteller Ytterdal med et smil.

For å vurdere trafikkapasitet er man avhengig av reell trafikk. Kunstig generert trafikk er en mye lettere last, og vil kunne gi resultater som langt overstiger den reelle ytelsen.

– Syntetisk har vi ikke noe problem med en million henvendelser i sekundet, og det er i grunnen nok til å håndtere Internett for hele Norge. Reelt sett hadde vi likevel ikke vært i nærheten. Det er i teorien ingen begrensninger på trafikkmengden, men operativsystemet må som sagt kunne holde følge. For mange vil det også være en begrensing i nettlinjene, siden de ikke greier å ta unna trafikken kjapt nok, avslutter Buer.

Veien videre

Varnish Software har rukket å bli totalt 21 ansatte, fordelt over en rekke land og nasjonaliteter. De fleste av de ansatte sitter på kontoret i Nydalen, men noen sitter også på kontorer i London, New York, Karlstad og Zurich. De 21 ansatte kommer fra 15 forskjellige land, noe Buer mener bare er positivt for selskapet.

– Det var ikke noe bevisst valg fra starten av, men det er utrolig trivelig med så mange kulturer. Det gjør det spennende å gå på jobb. IT-bransjen har nok høyere innvandring enn resten av arbeidslivet, og det er gjerne problemfri innvandring. Det er typisk ferdig utdannete folk som sliter med å finne seg jobb der de kommer fra, og så ender de opp her da. Vi krever ikke at folk snakker norsk, og det tror jeg er viktig. Nesten alle kundene våre kommer fra utlandet, og da betyr det lite om folk herfra kan norsk, sier Buer.

Lokalene til Varnish er både lyse og trivelige, og de fleste ansatte sitter på tomannskontorer. Dørene er likevel alltid åpne, og det ble diskutert flittig rundt om i tiden vi var der. Varnish Software tok over lokalene før jul, og de har allerede rukket å gjøre seg bemerket.

– Vi har, som dere sikkert så, et lysende serverskap stående inne på et av rommene her. Det er faktisk ikke i bruk, det bare ser sånn ut. Vi puttet inn masse julelys som blinker, for å gi inntrykk av at det skjer noe der. Det som er litt artig er at vi greide å ta ned hele IPv6-nettet når vi tuklet med strømforsyningen til julelysene. Du kan gjerne si at Powertech, som stod for nettlinjene, ikke var så imponerte, humrer Buer avslutningsvis.

Powered by Labrador CMS