Disse maskinene leverer Tek-nettverket til deg
Ble med inn i vårt aller helligste.
Introduksjon
Da Hardware.no ble startet for 15 år siden, fikk nettsiden først et hjem på det kostnadsfrie webhotellet GeoCities. Kort tid senere fikk vi bruke et lite hjørne av en server hos noen vi kjente, i begge tilfeller i bytte mot å fylle nettsiden vår med reklame. En periode var vi faktisk drevet fra en helt vanlig og liten stasjonær PC.
I dag er situasjonen en ganske annen. Toppmoderne serverutstyr, avansert programvare og spennende løsninger sørger for at Hardware.no, og våre søsterpublikasjoner, kan takle alt det de måtte møte.
Leserne våre har gang på gang etterlyst mer innsikt i utstyret som holder Hardware.no gående. I dag skal dere få det – i bøtter og spann. Selv om vi i denne artikkelen vil snakke mest om vårt oppsett og hvordan datasenteret vi bor i fungerer, er teknologien og prinsippene veldig like for alle lignende løsninger.
Toppmoderne datasenter
For et par uker siden skrev vi en artikkel hvor vi fortalte dere hvordan et toppmoderne norsk datasenter fungerer. Det er i dette senteret våre servere står huset, sentralt i Oslo. Anlegget gir serverne tak over hodet og sørger for at de står trygt og stabilt døgnet rundt.
Fiberlinjene som gir nett til bygget kommer inn fra tre steder, og strømmen er supplert fra tre helt uavhengige strømnett: Går det ene ned, får man fortsatt kraft fra de to andre. Og om det ikke skulle være nok, står et arsenal av batterier og en enorm dieselgenerator klar til dyst. Skulle det bryte ut brann, er flere gassflasker klare til å kvele den før skaden blir stor, bare for å nevne noe.
Vil du vite mer om hvordan et slikt datasenter fungerer?
Se den imponerende infrastrukturen som ligger bak »
Splitter nytt oppsett
Over de siste årene har Hardware.no og våre søsternettsteder vokst betraktelig, og vi innså for ett år siden at utstyret vi kjørte på, rett og slett ikke holdt stand lenger. Alt det gamle ble skrotet, og vi kjøpe et splitter nytt oppsett.
Vi i Hardware.no drifter ikke serverne selv. Det er det vår leverandør som gjør, Redpill Linpro. Vi tar oss av å programmere nettsidene våre, mens Redpill Linpro tar seg av alt annet.
Mens Redpill Linpro har sine folk som er eksperter på drifting av maskinvaren, har vi i Hardware.no en flott gjeng med syv teknikere som jobber på heltid for å programmere nye funksjoner og jobbe med nettsidene våre.
Hvert eneste klikk du gjør på våre nettsider sender et signal til utstyret vårt, som på millisekunder kan gi deg svaret du er ute etter. Men i løpet av de få millisekundene skjer det utrolig mye. Over de neste sidene skal vi nå vise deg mekanismene, utstyret og programvaren som er i sving døgnet rundt bak Hardware.no
Bli med over til neste side, så viser vi deg hvordan serverne våre er koblet opp »
Tore Anderson, nettverk- og infrastrukturtekniker i Redpill Linpro, har bidratt med teknisk assistanse i denne artikkelen.
Rommet vi bor i
Bak en serie med låste dører i et døgnovervåket datasenter i Nydalen, finner vi selve serverrommet der vi holder til. Dette er helt nytt, og da vi var på besøk bodde vi nesten helt alene, noe som er grunnen til at skapene ser litt tomme ut på bildene.
På rekke og rad står serverskapene, drøyt to meter høye. Det er disse man fyller til randen med servere og nettverksutstyr, uten store mellomrom.
Iskald væske kjøler luften
Med så mye datautstyr pakket tett sammen, er man avhengig av en kraftig kjøleløsning. Mellom hvert fjerde skap står det et tårn som stikker litt lenger ut enn skapene. Dette er en «In-Row-Cooler». Via datahallens kjøleanlegg føres iskaldt vann inn i disse. Væsken kjøler ned luften, som en serie kraftige vifter blåser rett ut foran serverskapene, slik illustrasjonen til høyre viser. Det er så viftene i hver enkelt server som suger den kalde luften inn i serverskapet, og blåser den over komponentene.
Serverne må også ha strøm, noe de får fra to uavhengige kilder. I taket går det et spesielt skinnesystem som heter Canalis, som gir tilgang til to forskjellige strømkurser. Hver server er så koblet til de to kursene via de røde kontaktene i taket, som leder til hvert sitt hovedtavlerom i datasenteret. Om én av sikringene går, får serverne da fortsatt strøm fra det andre systemet, slik at de kan jobbe uavbrutt.
Overdimensjonert nettlinje
All Internettrafikken inn i datarommet kommer via utstyret på bildet til høyre, først via en Juniper MX 240-kjerneruter. Den har en kapasitet på 960 Gbit/s, men i dag brukes bare 40 Gbit/s av dette.
– I dette datasenteret har vi én 10 Gbit/s-linje mot NIX1, én 10 Gbit/s-linje mot Global Crossing og 20 Gbit/s-linje mot en lignende kjerneruter i ett av våre andre datasentre i Oslo, forteller Tore Anderson i Redpill Linpro.
Han forteller videre at 20 Gbit/s-koblingen er delt i to, via to 10 Gbit/s-linker. Disse to linjene går hver sin vei i fiberringen i Oslo.
– Det er rutet slik at de ikke deler grøft på noe punkt. Vi skal kunne overleve en sløv gravmaskinfører, sier Anderson.
To datasentre jobber sammen
Det andre senteret er nemlig koblet direkte til Telenor, TDC og Level 3, ikke NIX1 eller Global Crossing som datasenteret vi bor i er koblet mot.
Avhengig av hvilket kjernenett i Norge trafikken til og fra våre servere skal gå, vil den enten gå rett ut av datasenteret til NIX og Global Crossing, eller gå via det andre datasenteret for å nå Telenor og Level 3. Det samme gjelder også andre veien, og skjer helt automatisk, med hjelp av en protokoll som heter BGP, forklarer Anderson.
Kjerneruterne er samtidig koblet sammen på tvers av datasentrene, slik at én av dem fint kan gå ned, og den andre ta over.
Øverst i bildet over, ser du to kjernesvitsjer av typen Juniper EX 4500. Det er to fysiske enheter, men de er koblet sammen og kan hver skilte med 40 nettverksporter på 10 Gbit/s hver.
– Inn i disse kobler vi sentral nettverksinfrastruktur, som serverutstyr, brannmurer og andre viktige ting, sier Anderson. Flere av dataskapene har også egne svitsjer øverst, som også er koblet inn her, via to uavhengige kabler til hver fysiske svitsj.
Egenprogrammert brannmur
I bunn av det samme skapet finner vi datasenterets brannmurer. Det er to sorte bokser levert av HP, som kjører på Ubuntu og en egen brannmur-programvare som Anderson selv har kodet.
De to er koblet til kjernesvitsjen via to 10 GBit/s-linker, og tjener normalt hver sine kunder. For kunder av Redpill Linpro som har servere i både dette datasenteret, og det andre, vil de to jobbe sammen med et tilsvarende par brannmurer i det andre datasenteret.
Den øverste av de tre sorte boksene driver andre viktige tjenester som DNS og NTP. En identisk boks står i det andre datasentret, og deler trafikken seg i mellom avhengig av hvem som står nærmest en bruker. Samtidig gir det dobbel sikkerhet, om en av dem skulle gå ned. Dette gjøres med en metode som heter «anycast-ruting».
Den grå boksen øverst på bildet er en slags livline inn til datasenteret. Skulle Redpill Linpro få en stort problem i kjernenettet, slik at de ikke får logget inn på utstyret den normale veien, kan de logge seg inn her via en egen Internettilkobling.
– Da kan vi nå administrasjonsgrensesnittet til ruterne og svitsjene, slik at en eventuell feilretting ikke tar lengre tid fordi vi må kjøre til datasenteret, forteller Anderson.
Bli med over på neste side, så ser vi på serversystemet vårt »
Serverne våre
I ett av skapene i datarommet finner vi serverne som Hardware.no og søsternettstedene våre kjører på. Hele riggen vår bygger rundt et Cisco Unified Computing System – forkortet UCS. Dette er bladservere, og vi har ti stykker av B200 M2-typen. Bildet til høyre viser altså ikke bare våre servere, men også utstyr som tilhører andre.
Dette er et noe spesielt system. Hvert blad består i hovedsak kun av en eller flere prosessorer, en god dose minne og en nettverkskort – og det er det. De er sånn sett helt «tomme», da de kun består av maskinvare uten noen bestemt oppgave. De er rett og slett ren datakraft.
Flere blader jobber sammen
– Det er ikke lagret noe operativsystem eller annen data på bladene, men på et sentralisert lagringssystem som er tilgjengelig via Fibre Channel. Skulle ett blad fysisk ta kvelden, kan vi bare tildele en av de andre bladene den samme profilen, forteller Anderson.
Profilen han snakker om inneholder informasjon om MAC-adresser, VLAN, BIOS-instillinger, fastvare og andre nyttige instillinger. Det er rett og slett identiteten til en server.
Tar en server kvelden, kan ett nytt blad få denne profilen på to til tre minutter, og være klart til bruk.
– Dette er for tiden en manuell operasjon. Vi kunne gjort det automatisk, men av erfaring er det ikke lurt med for mye automatikk. Denne maskinvaren er så stabil at vi enda ikke har hatt ett blad som har dødd, så det er greit å ikke utsette seg for en risiko med en automatisk prosess som kan ta ned servere ut av det blå, uten at noe egentlig er galt, forteller Anderson.
God beskyttelse mot feil
De ti bladene står i kasser med åtte blader hver. Hver slik kasse har fire uavhengige strømforsyninger, som du kan se i blått på bildet til høyre. De fire strømforsyningene er koblet i par til hver sin separate strømkurs i datarommet.
Hvert blad har altså ikke en egen strømforsyning, men de har en egen nettkobling. Hvert lille blad har et spesielt nettverkskort, ett mezzanine-kort, med to 10 Gbit/s-kobling internt i kassen. Den ene koblingen går til en «A»-side, mens den andre går til «B»-siden, for å ha en god backup og dobbel kapasitet.
– Dette kortet er en såkalt – «konvergert adapter» (CNA), som betyr at den ikke bare støtter vanlig Ethernet, men også Fibre Channel over Ethernet. Dette er en overføringsprotokoll som brukes for å få tilgang til lagringsystemet, sier Anderson.
Moduler sender trafikken rett
De to linkene er koblet sammen med to moduler på baksiden av hver kasse. De tar trafikken fra hver kasse med åtte blader inn i en eller flere kabler som er koblet til. Dette er en Fabric Extender, som sørger for at trafikken går til rett blad.
Disse er så koblet til to «Fabric Interconnects» (FI), via de sorte kablene med oransje merking på bildet til høyre.
Disse FI-ene er en slags sentral for Cisco UCS-systemet, og all trafikken til bladene går via denne. Du kan se de som de blå boksene helt øverst i det første bildet på denne siden. Hver av disse har tyve 10 Gbit/s Ethernet-koblinger og seks 8 Gbit/s Fibre Channel.
– FI-ene er også hjernen i dette systemet. All administrasjon, overvåkning, konfigurasjon også videre skjer her. Begge er aktive for å ta unna trafikken, og gir serverne all båndbredden de har, men er konfigurert med automatisk failover, forteller Anderson.
18 harddisker i RAID
Mens UCS-systemet tar seg av all prosesseringen rundt nettstedet vårt, er all informasjon lagret et eget sted, i det som kalles et SAN. Dette er en stor boks som er full av harddisker, og står i et annet serverskap i samme rom. Men for serverne selv fremstår et helt SAN som en lokal lagringsdisk, slik din harddisk fremstår for din egen maskin.
For servere er det imidlertid mye mer avansert. I vårt tilfelle er serverne koblet mot SAN-et via fire linker, som sammen gir oss en teoretisk båndbredde på 32 Gbit/s. Til sammenligning vil selv den mest moderne vanlige PC-en høyst kunne levere teoretisk båndbredde på 0,6 Gbit/s.
Det er her all informasjon som utgjør nettsidene våre er lagret, både operativsystemet vi kjører på, databasen til Prisguide.no, alle innleggene i forumet vårt, og hver lille bit med HTML-kode som utgjør Hardware.no. Kort fortalt er det altså her informasjonen ligger, mens UCS-bladene behandler den og presenterer den til deg når du besøker oss.
Totalt har vi 18 disker, og én ekstra, som er satt opp i RAID 10. De 18 diskene er koblet sammen via to kontrollerkort for å takle feil i systemet, og slik at Anderson og de andre hos serverleverandøren vår kan gjøre vedlikehold på utsyret uten at vi må ta ned nettstedene våre.
– Hver kontroller i lagringsboksen har to ganger 8 Gbit/s-koblinger, som er direkte koblet til FI-systemet, der det går en kabel til hver av de to FI-ene, forklarer Anderson. De to er både direktekoblet og koblet i kryss, noe som øker sikkerheten ved feil.
Bli med over på neste side, så får du se innsiden av serverbladene »
Bilder av serverne
Nå som vi har snakket generelt om serversystemet vårt, er det naturlig å ta en nærmere kikk på hvert enkelt blad. Vi har altså 10 av dem, som alle er identiske. Hvert blad koster grovt regnet rundt 40 000 kroner, og den rene maskinvare-kostnaden på oppsettet vårt er rundt en halv million, uten moms.
Hvert blad har to Intel Xeon E5649-prosessorer på innsiden. Disse har seks kjerner, 12 tråder og kjører på 2,53 GHz. I tillegg har hvert blad hele 96 Gigabyte med minne.
Da vi var på besøk kunne vi ikke nappe ut ett av bladene som Hardware.no kjører på, men ett av de andre bladene ble tatt ut. Dette er helt likt, foruten at det kjører på halve oppsettet av hva vi har. Det er grunnen til at bildene under viser en maskin med kun ett sett minne, og én prosessor.
Bli med over på neste side, så forteller vi deg hvordan serverne jobber »
Bli med over på neste side, så forteller vi deg hvordan serverne jobber »
Superraskt svar
Serverene våre er kraftige, og er i stand til å ta unna en god del mer enn hva de har blitt utsatt for til i dag. Men som nevnt tidligere, serverene er kun maskinvare. Uten skikkelig programvare på toppen, og god konfigurasjon, får de ikke gjort stort.
Som nettsted har vi også en litt annen utfordring: Trafikken vår er aldri jevn. Om natten har vi naturlig nok mye mindre trafikk enn vi har på dagtid, men det er ikke alt. I ny og ne må vi også være i stand til å ta unna flere titalls ganger normatrafikken vår, gjerne i løpet av et lengre tidsrom, uten at nettsidene skal mukke.
Varnish tar unna det meste
Vi tar derfor i bruk et spennende system som VG, ved Poul Henning Kamp, først laget og videre utviklet sammen med Redpill Linpro. Det heter Varnish, og brukes ikke bare av oss, men også nettsider som gjerne er flere hundre ganger større enn Hardware.no, blant annet VG.no.
Varnish er en cache-teknologi, som alene tar unna omtrent 60 prosent av all trafikken vår, når vi inkluderer forumet, og gjerne mye mer om vi bare teller artiklene våre. I minnet til disse Varnish-serverene hurtiglagres alle kriker og kroker av nettstedet vårt etter første gangen noen har forespurt en spesifikk fil.
For å tegne et bilde av hvordan serverene og programvaren jobber, tar vi for oss en helt vanlig forespørsel mot dem. Du taster inn www.hardware.no i nettleseren, og trykker «enter».
Forespørselen din treffer da først av alt én av to av våre fysiske UCS-servere. Disse er identiske og inneholder Varnish, men også HAProxy – en lastbalanser. Her bor de forskjellige IP-adressene som peker til nettsidene i nettverket vårt, og da blant annet Hardware.no. Denne lastbalanseren følger med på trafikken, og sender det videre til Varnish-delen av serveren.
Sparer mye kapasitet
Når du tastet «www.hardware.no» i nettleseren får du opp forsiden, en side som besøkes flere titalls tusen ganger daglig. I stedet for at hver eneste person som skal laste forsiden må sendes dypt inn i server-oppsettet vårt, kaster Varnish-serveren den rett tilbake til deg. Det sparer oss for mye kapasitet, og du får siden tilbake omtrent syv ganger så raskt enn om vi ikke hadde hatt Varnish.
Faktisk er det slik at de fleste som besøker oss nesten ikke rører resten av serverutstyret vårt. De sender en forepørsel, som kommer inn i Varnish-serveren, og blir ferdigbehandlet der.
Dette er en teknologi som er spesielt nyttig når vi får store puljer med trafikk samtidig, noe oppsettet tar unna uten og mukke. Varnish blir bare mer og mer effektivt desto større presset mot én enkelt artikkel er, og uten denne teknologien ville raskt hele oppsettet blitt betydelig tregere – i verste fall ville det stagnert.
For om Varnish ikke kan gi deg svaret på forespørselen, må den lenger inn i serversystemet vårt, til en serie med virtuelle maskiner.
14 virtuelle maskiner
For de siste prosentene med forespørsler som Varnish-serverene ikke kan svare på, har vi åtte blader klare. Fire av disse holder kontroll på databasene våre, som alle kjører på en versjon av RedHat Linux.
De siste fire av totalt ti UCS-blader inneholder 14 virtuelle maskiner som holder styr på hele sjappa. Ni av de virtuelle maskinene kjører Scientific Linux, PHP-rammeverket, Memcached, Nginx, og andre nødvendige applikasjoner.
I tillegg har vi 5 virtuelle maskiner på de samme bladene, som vi hovedsaklig bruker under utviklingen av nettsidene våre. Her kan utviklingsgutta våre leke helt fritt og herje som de vil med nettstedet, teste løsninger og se om alt fungerer før de ruller det ut «live» til deg.
Hvis HAProxy oppdager at en av de ni «offentlige» virtuelle maskinene ikke svarer lenger, tas den automatisk ut av oppsettet. Dette sjekkes hvert eneste sekund, og er det fare på ferde blir Redpill Linpro varslet uansett når det er på døgnet.
Bli med over på neste side, så forteller vi deg hvordan vi har kodet nettsidene våre »
Moderne design
Nettsidene våre er kodet rundt de mest vanlige standardene på nettet. På serversiden holder vi oss i hovedsak til PHP, mens vi mot deg presenterer nettsidene med HTML5, CSS3 og JavaScript med jQuery som rammeverk.
Eget publiseringssystem
Bak alle artiklene vi har på Hardware.no, og våre søsternettsteder, sitter det et eget publiseringssystem som vi har laget selv. Vi kaller det Neo, og det er et system som er skreddersydd for akkurat det vi trenger.
Mange publiseringssystemer for store publikasjoner på nett er i utgangspunktet laget for papiraviser. Flere av de største systemene har så fått en nettmodul, og andre nett-løsninger bakt inn, men er fortsatt laget ut fra et papir-rammeverk. Vårt system er imidlertid kodet fra bunnen av med tanke på nettpublisering, og har en rekke spesialmoduler som er tilpasset oss.
Det er tett knyttet mot både forumet vårt, prisguiden og mer. På den måten kan vi raskt og smidig dele bilder, informasjon om produkter, statistikk og grafer på tvers av systemene.
Det er også lagt opp for å ta livet av så mange tidstyver som mulig. En artikkel opprettes med ett klikk, der vi i én fane av systemet setter ingress og artikkelegenskaper, før vi i en annen fane kan laste opp bilder med drag-and-drop, eller henter de inn fra en tidligere artikkel. I fanen «sider» kan vi skrive hele artikkelteksten, enten i ren HTML eller med en WYSIWYG-editor.
Neo ble første gang utviklet i 2003. PHP ble valgt som rammeverk, fordi vi på den tiden hadde et sterkt miljø rundt språket i utviklingsavdelingen vår, og fordi det er lett å sette seg inn i.
Responsive nettsider
Nettsidene er videre laget rundt to konsepter: Mobiler prioriteres først, og nettsidene er laget med responsivt design.
Som de fleste andre sider på nett, ser vi at bare flere og flere av dere besøker oss fra en mobil enhet. Bare det siste året har denne andelen doblet seg, og står nå for 20 prosent av trafikken vår. Hver gang vi nå lager en ny funksjon på nettsidene våre, lager vi den med utgangspunkt i at den skal fungere bra på mobil, før vi så tilpasser den til vanlige PC-er.
For å gjøre dette på den mest effektivt vis, tar vi i bruk en relativt fersk teknikk – responsivt design. Det er grunnen til at vi ikke sender deg til «mobil.hardware.no» når du besøker oss fra mobil, men til «hardware.no». Det er den samme nettsiden for både mobiler og PC-er, men den tilpasser seg skjermstørrelsen din. Da får du det samme innholdet uansett enhet. Eller sagt på en annen måte, du får ikke mindre fordi du besøker oss fra mobil.
Samme design for alle
Akkurat det er essensen av responsivt design, det er samme design for alle plattformen. Ser vi at du har en skjerm med 960 piksler eller mer i bredden, får du fullversjonen av Hardware.no. Men når skjermstørrelsen er mindre enn dette, begynner vi å brette om siden litt.
Om du nå sitter på en PC, kan du se hvordan dette skjer ved å dra i nettleser-vinduet og krympe bredden på siden. Desto mindre skjermvinduet blir, desto mer av siden vil brettes om og tilpasses. Går du under en viss bredde, erstatter vi også hovedmenyen med et mer touch-vennlig grensesnitt.
Vi løser dette ved å legger til en meta-tag i kildekoden vår. I CSS-fila setter vi da forskjellige punkter for når siden skal brettes om. I dag har vi for eksempel en maksbredde på 800 piksler for nyere telefoner og nettbrett, som Galaxy Note og iPad, og 480 piksler for de fleste andre telefoner, som iPhone og Galaxy SII.
Fordelen med dette for oss, er at vi kan utvikle tjenester og funksjoner parallelt for mobil, nettbrett og PC. Det krever imidlertid at vi på baksiden av det hele må jobbe litt mer, for å få elementene til å laste på en smart måte på alle plattformer. Til mobil må man for eksempel ikke ha bilder med like høy kvalitet, som du får servert på PC.
Dette er en relativt ny teknologi, og vi jobber stadig med å forbedre hvordan den fungerer på akkurat våre nettsider. Snart går vi inn i den andre fasen av utviklingsprosjektet, der vi blant annet skal jobbe med raskere lasting av sidene og flere touch-vennlige funksjoner.
Vi deler kildekoden
PHP-rammeverket som vi har bygget hele nettstedet vårt rundt, har vi gitt ut med åpen kildekode. Du finner det på GitHub, og der ligger det fritt tilgjengelig slik at hvem som helst kan bruke det og bidra i utviklingen.
Søkefunksjonene våre, både for artikler, i forumet, prisguiden og prissøk, tar vi i bruk søkeplattformen Solr. Databasene våres lagrer data med både MySQL og PostgreSQL. Forumet vårt har i lang tid vært bygget på Invision Power Board.
Det er også verd å nevne at vi støtter fremtidens IP-standard, IPv6, fullt og helt i alle ledd. Det betyr at om din maskin, og din nettleverandør, støtter IPv6, når du sidene våre via de nye IP-adressene.
Vil du vite mer om hvordan et datasenter fungerer?
Se den imponerende infrastrukturen som ligger bak »