Min kones bestemor sier innimellom at hun er glad for alt hun er spart for. Bestemødre vet som regel hva de snakker om. En av tingene jeg er glad for at jeg er spart for, er behovet for å skaffe meg 100 millioner venturedollar for å kjøpe 50.000 nye servere. Noen som ikke er spart for slikt, er Facebook.
50.000 nye servere... Et slikt tall får meg til å tenke på flere ting. At det er mye penger. At det genererer varme. At det forbruker mye strøm. At serverfarmer innen 2020 vil slippe ut mere CO2 enn verdens flyselskaper til sammen (ifølge McKinsey og New York Times).
Det jeg tenkte mest på var likevel San Fransisco-turen i forrige uke. Der traff jeg en fyr som i det minste ville begynt å tenke på hvordan han kunne løst dette problemet uten å kjøpe en eneste maskin (selv om 50.000 maskiner sikkert er et problem stort nok at man ikke unnslipper kjøp): Under resturant-cruiset på turens dag 2 ble jeg sittende til bords med en svært hyggelig og pratsom australier som jobber i Linden Labs (de som har laget Second Life). Mannen jobbet hovedsaklig med ikke-tekniske ting i selskapet, men var likevel glødende opptatt av teknologi.
Noe av det han snakket mest om var skalering. Etter at jeg hadde fortalt at jeg hadde styreverv i det største norskeide communityet, ville han vite hvordan vi hadde skalert softwaren. Jeg forklarte i grove trekk det Nettby og drifterne i VG hadde gjort for å takle trafikknivåer på rundt 300 millioner sidevisninger i uka og 45.000 samtidig påloggede, osv. Alt dette på det jeg mente var et beskjedent antall servere, og fremdeles med rom for vekst. Derfor, hevdet jeg, burde vi være i stand til å skalere videre på en grei måte.
"So now you can scale worldwide without problems?" spurte fyren interessert.
Når spørsmålet ble stilt med en slik dimensjon, måtte jeg jo innrømme at det visste jeg ikke. I alle fall visste vi ikke det før vi hadde prøvd. Australieren var tydelig lite imponert over dette, og etter litt frem og tilbake konkluderte han høflig at vi nordmenn var heldige, siden skalering etter hans syn åpenbart ikke noe vi trengte å tenke på (!).
Dette var omtrent der desserten ble servert, og etter noen skjeer med noe alt for søtt lurte han på om vi hadde vurdert å bruke Amazons web services. Han var selv svært opptatt av Amazons S3-teknologi for lagring og samme selskaps EC2-teknologi for skalering. Det førstnevnte er såvidt jeg forstår en slags lagringstjeneste, mens det sistnevnte lar deg som webutvikler benytte Amazons serverpark til å lage applikasjoner som er "tøyelig": I takt med trafikken tildeles applikasjonen din ressurser, men ikke før du faktisk trenger ressursene. 1, 10 eller 1000 maskiner? Det trenger du ikke ta stilling til i det hele tatt. Og når trafikken avtar, reduseres allokeringen. Hele veien betaler du bare for faktisk brukt CPU-kraft.
Jeg sa at det hadde vi aldri tenkt på. Det jeg derimot hadde tenkt på, helt privat, var om jeg burde prøve å lage noe på toppen av Google App Engine -- Googles løsning på det samme problem, men løst ved å være helt lukket i spesifikasjonene: Applikasjonen din vil kjøre så lenge du kjører den på Googles plattform; du må bruke Python som programmeringsspråk og lagring og database er begrenset til Googles egne formater.
Men en så lukket og begrenset løsning var han ikke interessert i. Amazons løsning, derimot, var han fra seg av begeistring for, fordi det løste det som etter hans og mange andres syn er hovedproblemet med skalering av webapplikasjoner:
Vanligvis skalerer man en serverpark for trafikktoppene. Til hverdags kan man greie seg med en håndfull servere, kanskje, men ved trafikktopper trenger man kanskje det ti- eller hundredobbelte. Entusiasmen hans skyldtes det faktum at man nå ikke trengte å skalere for toppene; det tok Amazons EC2 seg av, og man ble utelukkende fakturert for den CPU-kapasiteten man hadde forbrukt mens toppene stod på. Resultatet var at nå kunne startups starte med enda mindre cash enn før.
Dette -- cloud computing -- var fremtiden for kosteffektiv skalering, slo min bordkamerat fast.
Jeg er som sagt glad for alt jeg er spart for. Men hvis man kan spare tid, penger, ressurser og kanskje også tildels miljøet på å tenke i disse baner, er det åpenbart ingen grunn til å spare seg for å være interessert i tjenester som Amazons.
Er det noen av dere som leser dette som har prøvd slike tjenester og har gjort gode (eller dårlige) erfaringer med dem?
Nicholas Carr har en bok ute som handler endel om Cloud computing. Han sammenligner strøm vs servere. Han mener at man kommer til å få selskaper som leverer kapasitet akkurat som strøm i fremtiden.
Boka heter "The Big Switch". Den kom ut for noen mnder siden.
Viritualisering kunne jo funke for vg. Regner med at load er relativt liten på natten i Norge. Kunne leid ut kapasiteten til andre selskaper i andre tidsoner. Australia / Asia har jo dag når Norge har natt og akkurat stikk motsatt behov enn Norge. Også en måte å tjene penger på.
Uansett så har det poppet opp endel "cloud computing" selskaper i de siste. Engineyard.com er en av dem. Jeg synes dog at inngangsprisen er litt høy...
Vil man se selskaper som klarer å vokse enda fortere i fremtiden pga cloud computing? (Bygger man noe på toppen av Google Apps så kan man omtrent skalere inn i evigheten over natten).
Posted by: MM | May 14, 2008 at 06:49
The banks used to hire IBM Mainframes and usually some still do (Z Series). They get the machines totally fully loaded, 512 GB memory and at a minimum 64 CPUs just as an example. Then they for 29-30 days out of the month, they just use 1 GB memory and perhaps 2 cpus and they pay more in electricity than for the computer. Then 1-2 days out of the month when everything needs to be booked, handled, payed and whatever else banks do at end of months they run the machines like there is no tomorrow and pay some more for renting these machines.
Since IBM has already payed for designing these machines and they are down to just material cost these machines are cheap for IBM as they make everything in the machine. The banks pay for the machine over perhaps 6-7 years. In the end everyone wins.
Cloud computing sure reads like a mainframe manual, doesn't it ?
Posted by: Trausti Thor Johannsson | May 14, 2008 at 09:43
Vi har jo sett litt på dette i Schibsted (inkludert VG ;-)
I første omgang ser dette ut til å passe til engangs oppgaver der du skal gjennomføre en større jobb, og gjerne vil slippe investeringen i HW.
Et artig eksempel er hva NY Times gjorde når de skulle digitalisere arkivet sitt
http://open.blogs.nytimes.com/2007/11/01/self-service-prorated-super-computing-fun/
Lignende prosjekter vil være gode tester for hvordan det er å jobbe med cloud computing. Vi kommer helt klart til å følge denne utviklingen videre...
Posted by: Dag Wigum | May 14, 2008 at 15:19
Husker i gamle dager når jeg jobbet i "Byrået" (Statistisk sentralbyrå):
Der offet IT avdelingen seg for at det ble kjøpt for små, og følgelig for få UNIX servere, og at de nå måtte drifte et snes servere.
Sett i forhold til tall som figurerer her så virker det mye som barnemat, dog skal det bemerkes at i Byrået så ble hver enkelt server driftet individuelt, med hver sine applikasjoner / baser.
Er det noen som har greie på hvilke server det er snakk om her når Facebook snakker om 10.000 stk?
Matematikken sier at det er servere i 50.000 kroners klassen (ink installasjon, noe som da skulle tilsvare en slags middelklasse.
Posted by: Gjermund | May 14, 2008 at 22:07
Interessant med EC2. Mobiltjenesten mobil.sesam.se er hostet hos Amazon.
En av problemstillingene er at man ikke får fast IP-addresse og må benytte dynamiske DNS løsninger. Dette fører til unødig mye latens. Regner med at Amazon løser dette etterhvert.
Posted by: Michael Link | May 19, 2008 at 13:47