Skip to main content
9. febrúar 2012

Þegar kostnaður mætir afköstum

Allir frumkvöðlar í vefbransanum standa frammi fyrir því á einum tímapunkti eða öðrum að hanna og setja upp rekstrarumhverfið fyrir verkefnið sem verið er að vinna að. Þetta er oft á tíðum flókin vinna og það sem kemur út úr henni þarf að skalast frá nokkur hundruð notendum á dag upp í þúsundir og jafnvel tugi þúsunda notenda á tiltölulega skömmum tíma. Þetta þarf að gerast á sama tíma og kostnaður þarf að vera í lágmarki, en afköst að sama skapi í hámarki.

Við stóðum frammi fyrir þessu verkefni fyrir tæpu ári síðan eftir að hafa tekið þátt í Gullegginu á vegum Innovit. GuitarParty.com hafði fengið töluverða athygli í fjölmiðlum og umferð var að aukast. Gallinn var að á þeim tíma var vefurinn hýstur á einum netþjóni og hann var að brenna inni með aldur og afkastagetu. Notendur voru farnir að kvarta undan því að aðgerðir tækju langan tíma og mikið af villum voru að koma upp sem mátti rekja til þess að netþjónninn hafði ekki undan við að afgreiða beiðnir notenda.

Ein afleiðing af hægagangi á vef er að Google PageRank lækkar eftir ákveðinn tíma, sem aftur hefur áhrif á leitarniðurstöður og það getur tekið langan tíma að ná fyrri stöðu ef ekki er brugðist strax við. Google hefur m.a. gefið út á Webmaster Bloggi sínu grein um hvernig þeir séu helteknir af hraða vefja og hversu fljótir þeir eru að afgreiða síður til notenda sinna. Af þeim sökum vegur hraði og viðbragð þungt inn í PageRank algrímið.

Á GuitarParty.com eru um 17.600 síður í dag og af þeim eru tæplega 7.000 sem við metum sem mjög mikilvægar fyrir leitarniðurstöður. Þær innihalda allar töluvert af texta, myndum og lagatextum, bæði með og án gítar- og ukulelegripa. Áskorunin okkar megin var því sú að koma öllu í nýja hýsingu, án þess að leitarniðurstöður yrðu fyrir neikvæðum áhrifum og auka hraða vefsins til þess að auka bæði velvild notenda og bæta PageRankið, sem á þessum tíma hafði sem betur fer sloppið óskaðað út úr rekstrarvandræðunum.
Ef þú veist hvað þú ert með, þá veistu hvað þú þarft

Uppistaða flestra aðgerða á vefnum felst í frekar einföldum aðgerðum þar sem annaðhvort er flett upp í gagnagrunni eða skyndiminni í þeim tilgangi að búa til HTML síðu sem skilað er til notenda. Nokkrar þyngri aðgerðir eru til staðar, sem valda því að vélarnar sem keyra vefinn þurfa að vera nægilega öflugar til þess að geta skilað niðurstöðum þessara þungu aðgerða á stuttum tíma, en jafnframt ekki það öflugar að reiknigetu sé sóað og þar af leiðandi kostnaður aukinn að óþörfu.

Við enduðum með þriggja laga uppsetningu í tölvuskýi (e. cloud) þar sem allir netþjónar eru keyrðir á sýndarvélum. Þar sem mismunandi kröfur voru gerðar til mismunandi þátta kerfisins og kostnaði varð að halda í lágmarki enduðum við með með mis- öflugar og minnismiklar vélar til þess að sinna mismunandi verkefnum.

Neðst er gagnagrunnslagið á eigin netþjóni. Allar greinar, lagatextar og hljómaupplýsingar auk annarra gagna svo sem upplýsingar um notendur og fleira er geymt í þessu lagi. Í miðjunni erum við með “Application” lagið eða notendalagið, en þetta eru að lágmarki tveir netþjónar sem skipta á milli sín öllum útreikningum og samskiptum við gagnagrunnslagið. Þeir virka því að auki sem varanetþjónar fyrir hvorn annan ef eitthvað fer úrskeiðis. Gögn sem sótt eru á gagnagrunnslagið eru þar að auki geymd í skyndiminni í þessu lagi til að hámarka afköst og lágmarka fyrirspurnir í gagnagrunn. Efst er svo “Load balancing” lagið sem sér um að skipta umferð á milli “Application” netþjónanna og sjá til þess að notendur séu alltaf að tala við sama netþjóninn til þess að koma í veg fyrir endurteknar og óþarfa innskráningar.

Vefurinn inniheldur einnig töluvert magn af myndum, bæði af listamönnum, grafík sem tengist vefnum og svo mynd af hverjum einasta gítarhljóm sem hægt er að ímynda sér. Undir venjulegum kringumstæðum væru þessi gögn afgreidd af “Application” netþjóni sem statískt efni eða sérstökum static þjón sem væri sérstaklega uppsettur til að afgreiða frá sér efni af þessum toga. Síðari kosturinn er í flestum tilfellum ákjósanlegri, þar sem engin afkastageta er nýtt í útreikninga eða umbreytinga á efni og því hægt að afgreiða fleiri skjöl á hverri sekúndu heldur en ef þetta væri skilið eftir í miðlaginu með öllum útreikningunum sem þar fara fram.
Flöskuhálsar

Þessi uppsetning reyndist okkur mjög vel í nokkrar vikur og umtalsverð afkastaaukning kom fram í öllum almennum aðgerðum hjá notendum. Hinsvegar kom í ljós, þegar við fórum að greina afkastaaukninguna betur, að við vorum með flöskuháls í afgreiðslu mynda, sérstaklega þegar notendur voru farnir að kalla á myndir á milli heimsálfa. Eftir nánari skoðun á því kom í ljós að við gátum nýtt okkur CDN þjónustu hjá Akamai til þess að færa statískt efni eins nálægt notandanum og kostur er á og þannig tekið allar myndir af static þjóninum. Þessi breyting endaði á því að vera tilfærsla á kostnaði en fimmfaldaði afköst við niðurhal á forsíðu vefsins, bæði almennum notendum og Google róbótanna til mikillar gleði.
Framtíðin

Eftir því sem umferð um vefinn eykst jafnt og þétt og notendum fjölgar verður þörf á að skala það umhverfi hér hefur verið lýst. Þessi hönnun auðveldar slíkt ferli og gerir það að verkum að einstaklega þægilegt er að skala einstaka netþjóna, netþjónalög eða allt umhverfið ef svo ber undir. Gagnagrunnslagið má skala á marga vegu, og flestar hefðbundnar lausnir ganga upp í þeim málum. Hægt er að setja upp klasa af gagnagrunnsþjónum sem sjálfkrafa uppfæra gögn hver hjá öðrum eftir því sem gögn berast (e. replication) eða jafnvel skipta stórum töflum niður á netþjóna (e. sharding).

Notendalagið má skala með því að stækka þá netþjóna sem fyrir eru og/eða fjölga netþjónum. Engin sérstök takmörk eru fyrir því hversu marga netþjóna er hægt að keyra í þessu lagi nema að sjálfsögðu kostnaðarhliðin.

“Load balancing” lagið má skala með því að auka afkastagetu netþjónsins og mun slík skölun að öllum líkindum duga ansi langt þar sem hugbúnaðurinn er mjög sparsamur á vinnsluminni. Ef hins vegar þörf er á að fjölga netþjónum í þessu lagi af einhverjum ástæðum verða til ný vandamál sem eru fyrir utan efni þessarar greinar.
Lokaorð

Á þeim tíma sem liðið hefur frá þessari breytingu hefur umferð aukist umtalsvert og hlutfall erlendra notenda hækkað jafnt og þétt, án þess að nauðsynlegt hafi verið að bæta við netþjónum eða breyta uppsetningunni að einhverju leyti og teljum við að vefurinn sé með þessari uppsetningu tilbúinn til þess að takast á við mikla notendaaukningu um allan heim og mikla aukningu á fjölda notenda sem nýjar vörur, eins og gítarkennslan á vefnum er ætlað að skapa.

Kjartan Sverrisson

Sævar Öfjörð Magnússon

Arnar Tumi Þorsteinsson

Höfundar eru stofnendur GuitarParty.com

GuitarParty.com er stutt af Tækniþróunarsjóði.

Skoðað: 5464 sinnum

Blaðið Tölvumál

Forsíða Tölvumála

Leita í vefútgáfu Tölvumála

Um Tölvumál

Tölvumál - tímarit Skýrslutæknifélags Íslands er óháð tímarit um tölvutækni og hefur verið gefið út frá árinu 1976.

Vefútgáfa Tölvumála birtir vikulega nýja grein á vef Ský og árlega er gefið út veglegt prentað tímarit undir nafninu "Tölvumál" þar sem fjallað er um tölvutækni frá ýmsum sjónarhornum og er þema blaðsins jafnan valið snemma árs og útgáfa að hausti.

Ritnefnd Ský sér um að afla efni í Tölvumál og geta allir sem áhuga hafa sent inn efni.

Um ritnefnd Tölvumála