Lynrask web med norskutviklet akselerator

VG Multimedia står bak en ny og svært rask webakselerator. Nå er den tilgjengelig som åpen kildekode.

I likhet med mange andre nettsteder med mye trafikk, benytter VG Nett HTTP-akseleratorer, også kalt webcache eller reverse proxy, som avlaster de bakenforliggende webserverne for mesteparten av trafikken. Dette fungerer stort sett godt for nettsteder som leverer de samme websidene til mange lesere.

Fram til nå har VG Nett benyttet en løsning bestående av tolv servere som hver kjører HTTP-akseleratoren Squid. Dette er den mest brukte åpen kildekodeløsningen av sitt slag. Den benyttes også av virkelig store nettsteder som Wikipedia.

Når leserne laster ned en webside fra VG.no, sendes forespørselen først til en lastbalanseringsserver som fordeler forespørslene på de tolv HTTP-akseleratorene. Bak disse igjen finnes vanlige webservere som Apache.

Anders Berg, teknisk ansvarlig i VG Multimedia, fortalte under en pressekonferanse i går at man var lite fornøyde med den squid-baserte løsningen. For selv med tolv kraftige maskiner til å betjene forespørslene, greier man ikke å betjene trafikkøkningen midt på dagen uten at aksesstiden går betydelig opp.

Berg forteller at en mulighet da var å sette inn enda mer maskinvare, men samtidig er det begrenset hvor mye man har mulighet til å kjøpe.

I stedet valgte VG Multimedia å lage sitt eget alternativ. I seks måneder har danske Poul-Henning Kamp, som er kjent for sine bidrag til kjernen i FreeBSD-operativsystemet, jobbet intensivt med programvaren som i går ble lansert under navnet Varnish. I tillegg har norske Linpro har bidratt med utvikling, verktøy, rammeverk og support.

Varnish er utgitt med en BSD-lisens som gjør programvare fritt tilgjengelig til alle typer bruk, og selvfølgelig med åpen kildekode.

Berg fortalte at VG Nett har benyttet åpen kildekode løsninger siden 1995 og at man nå syntes det var på tide å gi noe tilbake til fellesskapet.

- Vi gir også ut kildekoden fordi vi tror at når koden er ute, vil folk gjøre modifikasjoner som vil komme VG til gode. Vi mener dette er en styrke som vil gjøre produktet bedre.

Gir ut kildekoden fordi – tror at når koden er ute, vil folk gjøre modifikasjoner som vil komme VG til gode. En styrke som vil gjøre produktet bedre.

Under gårsdagens lansering fortalte Kamp at Varnish utnytter ressursene i moderne maskinvare i langt større grad enn Squid. Dette gjelder blant annet maskinvare med flere prosessorer og prosessorkjerner og 64-bits systemer. Han kalte Squid et klassisk 80-tall program som kun fokuserer på CPU, minne og disk.

- Mens Varnish gjør omtrent ti systemkall for å levere en cache-hit, bruker Squid trolig 50 til 70 systemkall. Dette er helt greit, men det tar tid, fortalte han.

VG Nett skulle etter planen ha tatt i bruk Varnish i går, under lanseringen. Dette gikk i vasken på grunn av problemer som ikke hadde noe med Varnish å gjøre, men VG Nett har tidligere livetestet VG.no med Varnish. Nedgangen i responstiden skal ha vært overveldende.

Det mest oppsiktsvekkende er likevel det reduserte behovet for maskinvare.

Maskinen som ble benyttet under testen, og som altså serverte hele VG.no alene, var en brukt server Berg hadde skaffet til veie for godt under 10 tusen kroner. Maskinen skal ha hatt 4 GB med minne, hvor av omtrent halvparten ble tatt i bruk under testen. Belastningen på prosessorene skal ha vært omtrent 50 prosent, samtidig med at maskinen håndterte 10.000 forespørsler i sekundet, noe som trafikkmengden var på omtrent 700 Mbit/s. Nå generer VG.no ikke så mye trafikk, så halvparten av dette ble servert til en benchmark-løsning.

Harddisken på maskinen skal knapt ha vært i bruk. Dette er en stor fordel, siden harddisker slites ved bruk.

Berg oppgir at VG regner med å spare mellom 750.000 og en million kroner i løpet av det første ett til halvannet året ved å droppe 10 av de 12 akseleratorserverne man bruker. Man beholder to for å ha en backup-løsning.

Varnish er laget for å kjøres på de fleste nyere Unix-lignende operativsystemer, men i første rekke Linux 2.6 og FreeBSD.

Innholdspolicyen i Varnish blir gjengitt i konfigurasjonsfiler med et programmeringsspråk som er kompilerbart internt i Varnish. Dette gjør det blant annet mulig å skifte ut hele konfigurasjonen i sanntid, uten å måte ta ned systemet. Konfigurasjonen skal også kunne endres automatisk ved gitte hendelser.

Kamp forteller at Varnish har tilsvarende mulighet som Squid til å slette innholdet knyttet til gitte URL-er, mens også muligheter som å slette alle bilder med én kommando. Dette skal kunne skje øyeblikkelig.

Berg forteller at VG fortsatt har mange ideer om ytterligere funksjonalitet, som kanskje vil komme i neste utgave av Varnish. Dette inkluderer komprimeringsteknikker og støtte for ESI (Edge Side Includes), et oppmerkingsspråk som beskriver hvilke websidekomponenter som skal mellomlagres i HTTP-akseleratoren og ikke. Dette gjør det mulig å mellomlagre statisk innhold, mens dynamisk innhold, for eksempel lister over de siste debattinnleggene eller personlige tilpasninger, ikke mellomlagres i samme grad.

Berg håper på at Varnish vil vekke oppmerksomhet også utenfor Norge og at det i stor grad vil kunne erstatte Squid.

I tillegg til å ha bidratt i utviklingen av Varnish, vil Linpro tilby et sett med kommersielle tjenester rundt produktet. Deltakelsen i utviklingen skal ha gitt selskapet spesiell kompetanse, samtidig som det også er engasjert i det framtidige vedlikeholdet av Varnish.

Stein Halvorsen, seniorrådgiver i Linpro, fortalte under pressekonferansen at blant tjenestene selskapet vil tilby, er installasjon av Varnish på kundens egen maskinvare, tilpasning og tuning, samt integrasjon med kundens øvrige systemer.

Dessuten vil Linpro tilby support- og vedlikeholdsavtaler, samt husing av webløsning med Varnish i front.

Kunder som ønsker det, skal også kunne få utviklet ekstra funksjonalitet i Varnish. Mye av dette vil senere bli tilgjengelig også for fellesskapet og kanskje implementeres i en senere Varnish-utgave.

Linpro ser også for seg muligheten for å tilby opplæring og sertifisering for Varnish.

Ved siden av dette, vil Linpro forvalte og ivareta åpen kildekodeprosjektet. Det vil tilby ledelse og infrastruktur, samt ha kontroll over kodebasen.

Linpro vil tilby support for Varnish på blant annet CentOS og FreeBSD. Men det ble oppgitt at programmet skal fungere greit med blant annet nyere Debian- og Ubuntu-versjoner.

Varnish er nå tilgjengelig for nedlasting på denne siden, sammen med mer informasjon.

Til toppen