Grunnleggende

Hva er en server, egentlig?

Egil Skjelbred

Ordet «server» dukker opp overalt. I nyheter om nedetid, i tekniske samtaler, i produktbeskrivelser for hjemmenettverk, i klager fra spillere om at «serveren er nede igjen». Likevel har de fleste aldri sett en, og enda færre vet egentlig hva den gjør. Det høres ut som noe stort og mystisk, kanskje en slags superdatamaskin gjemt bort et hemmelig sted.

Virkeligheten er langt mer jordnær. Ordet stammer opprinnelig fra det engelske «to serve», å servere, akkurat som en servitør serverer mat. Det er faktisk en ganske presis beskrivelse av hva den gjør, selv om de færreste tenker på det slik i det daglige.

I bunn og grunn bare en datamaskin

En server er faktisk ikke noe mystisk. Det er i bunn og grunn bare en datamaskin, akkurat som din egen bærbare eller stasjonære, bygget av mange av de samme delene: en prosessor, minne, lagringsplass, en nettverkstilkobling. Forskjellen ligger ikke i hva den er, men i hva den er satt opp til å gjøre.

Din egen datamaskin er laget for at du skal sitte foran den, klikke, skrive, se på skjermen. En server er derimot bygget for å gjøre noe ganske annet: stå på hele tiden og svare på forespørsler fra andre maskiner, uten at noen sitter og bruker den direkte med mus og tastatur. Den venter, og når noen spør om noe, svarer den.

Kelneren som aldri tar pause

Tenk på en server som en kelner på en restaurant. Du, altså nettleseren din, setter deg ved bordet og bestiller noe, kanskje en bestemt nettside eller et bilde. Kelneren tar imot bestillingen, går til kjøkkenet, henter det du ba om, og bringer det tilbake til bordet ditt.

Forskjellen fra en vanlig kelner er at denne kan betjene tusenvis, i noen tilfeller millioner, av bord samtidig. Døgnet rundt. Uten pause, uten kaffepause, uten å noensinne gå hjem for kvelden. Mens en menneskelig kelner blir stresset og treg når restauranten fylles opp, er en server bygget for nettopp denne typen belastning fra første dag.

Det finnes riktignok en grense. Blir det for mange bord på én gang, selv for denne kelneren, begynner ting å ta lengre tid. Bestillinger står i kø, noen må vente, og i verste fall gir kjøkkenet opp helt. Det er akkurat dette som skjer når en nettside «går ned» fordi altfor mange besøker den samtidig, for eksempel når billetter til en populær konsert slippes klokken tolv på dagen og tusenvis prøver å bestille i samme sekund.

Kjøkkenet bak kulissene

Fortsetter vi restaurant-analogien litt lenger, kan vi tenke på selve nettsiden eller tjenesten som kjøkkenet. Noen ganger er alt du ber om allerede ferdig laget og bare venter på hylla, som en ferdig bakt kake. Da går det raskt, kelneren henter og serverer med en gang.

Andre ganger må noe faktisk lages fra bunnen av basert på akkurat det du spurte om, som en rett som tilberedes etter bestilling. Ber du for eksempel om søkeresultater basert på et bestemt ord du skrev inn, må serveren først finne fram riktig informasjon, sette den sammen på riktig måte, og først da sende svaret tilbake. Det er derfor noen sider laster raskere enn andre, selv om begge tilsynelatende gjør noe ganske likt. Én henter en ferdig kake, den andre lager middagen fra bunnen av på bestilling.

Mange nettsteder kombinerer faktisk begge deler for å spare tid. Det som sjelden endrer seg, som en logo eller en meny-liste, lages på forhånd og lagres ferdig, mens det som er personlig eller stadig i endring, som varekurven din eller de siste kommentarene på et innlegg, lages fra bunnen av hver eneste gang. Det er en balansegang mellom hastighet og friskhet, litt som et kjøkken som forbereder grunnsausen på forhånd, men steker selve kjøttet først idet bestillingen kommer inn.

Hvorfor de ser annerledes ut

I praksis er servere ofte bygget spesifikt for denne jobben, og ser derfor ikke ut som datamaskinen du har hjemme. De står i rekker i store, kjølte rom kalt datasentre, uten skjerm eller tastatur koblet til, siden ingen sitter foran dem i utgangspunktet. Skal noen fikse noe, kobler de gjerne til eksternt fra sin egen datamaskin, akkurat som å styre kjøkkenet fra en annen del av bygget.

Disse rommene holdes kalde med hensikt. En datamaskin som jobber døgnet rundt uten pause genererer mye varme, og for mye varme ødelegger elektronikk over tid. Datasentre bruker derfor enorme mengder energi bare på kjøling, i tillegg til selve driften. Mange servere er også satt opp i par eller grupper, slik at hvis én skulle slutte å virke midt på natten, tar en annen umiddelbart over jobben, uten at gjestene ved bordet i det hele tatt merker at noe har skjedd.

Hvem eier egentlig kelneren

En vanlig misforståelse er at hver eneste nettside har sin egen fysiske server et sted. I dag leier de fleste, store som små, i stedet plass hos selskaper som spesialiserer seg på nettopp dette, ofte kalt hosting-selskaper eller skyleverandører. Det ligner litt på å leie et bord på en delt restaurantkjøkken-lokasjon i stedet for å bygge sitt eget kjøkken fra grunnen av.

Store nettsteder med enormt mange besøkende har som regel egne dedikerte kjøkken, mens mindre nettsider ofte deler kjøkken med mange andre samtidig, uten at gjestene noensinne legger merke til det. Så lenge kjøkkenet har nok kapasitet til alle som spiser der, går det helt fint.

Denne delte modellen kalles gjerne delt hosting, og fungerer omtrent som et matmarked der flere små restauranter deler samme lokale, samme strøm og samme vann, men holder hver sin meny og hver sine gjester adskilt. Blir én restaurant i lokalet plutselig veldig populær og bruker opp mesteparten av strømmen, kan det i sjeldne tilfeller gå litt utover naboene i samme bygg. Det er derfor større nettsteder etter hvert ofte flytter til sitt eget dedikerte kjøkken, rett og slett for å ha full kontroll over egen kapasitet uten å påvirkes av hva naboene driver med.

Forskjellige kjøkken for forskjellige menyer

Ikke alle servere gjør den samme jobben. Noen er satt opp for å servere selve nettsiden du besøker, en webserver. Andre tar imot og sender e-post, en mailserver. Andre igjen holder styr på hvor spillfigurene dine befinner seg akkurat nå i et flerspillerspill, en spillserver, og må svare enda raskere enn de fleste andre typer, siden selv et lite etterslep merkes umiddelbart som hakking eller forsinkelse i spillet.

Det ligner litt på et kjøkken som spesialiserer seg på nettopp én type mat i stedet for å prøve å lage alt samtidig. En pizzeria er raskere og bedre på pizza enn en restaurant som prøver å tilby hele verdens kjøkken på én meny. Samme prinsipp gjelder for servere. Er du satt opp for å gjøre én ting veldig godt, gjør du gjerne den ene tingen raskere enn en server som må håndtere alt mulig samtidig.

Når kelneren blir angrepet

Noen ganger sender noen bevisst tusenvis eller millioner av falske bestillinger til samme kjøkken samtidig, i håp om at det hele kollapser under presset. Dette kalles et DDoS-angrep, distributed denial of service, og er litt som om en gjeng ondsinnede gjester fylte restauranten med tomme bestillinger bare for å hindre at ekte gjester noensinne får maten sin.

Kelneren, altså serveren, klarer ikke å skille de falske bestillingene fra de ekte raskt nok, og bruker all sin tid og kapasitet på søppel i stedet for faktiske gjester. Store nettsteder har derfor egne systemer som fungerer litt som dørvakter, satt til å luke ut mistenkelige bestillinger før de i det hele tatt når fram til selve kjøkkenet, slik at de ekte gjestene fortsatt får maten sin selv midt under et angrep.

Hvorfor er dette nyttig å vite

Når noen sier at «serveren er nede», betyr det bare at kelneren har sluttet å svare et øyeblikk, ikke at internett i seg selv har forsvunnet. Problemet ligger et konkret sted, ofte hos ett bestemt selskap, og påvirker som regel bare den ene tjenesten, ikke resten av nettet.

Og når en nettside føles treg fordi «mange bruker den samtidig», er det denne samme kelneren som plutselig har fått hundre bord å betjene på en gang, og rett og slett trenger litt mer tid på hver bestilling. Forstår du dette, blir det lettere å skille mellom hva som faktisk er feil hos deg, og hva som er en flaskehals langt unna, hos en kelner du aldri ser, men som jobber i det stille hver eneste gang du åpner en nettside. Neste gang du restarter ruteren din fordi «internett er tregt», er det verdt å spørre seg om problemet i stedet sitter et helt annet sted, langt unna, i et kjølig rom du aldri kommer til å besøke.