Moln i praktiken, del 1

Det här är det första av två blogginlägg som handlar om hur vi kan dra nytta av molnteknik. Först en liten teknisk överblick och beskrivning av nuläget och i nästa inlägg lite mer om möjligheter och vad jag tror om hur vi kommer att påverkas.

Även om moln (cloud computing) har varit på tapeten ett tag nu så börjar det dra ihop sig för .NET-utvecklare världen över. Windows Azure ska lanseras lagom till PDC 2009 (17-20 november) och ett nytt operativsystem (nåja) möter världen. Men ok - Microsoft är, sin vana trogen, inte först ut med ny teknik. Det var en bokhandlare som visade vägen när molnet skulle tas ner på jorden - Amazon med sitt Elastic Cloud (idag EC2 och datatjänsten S3). Såhär i efterhand känns det möjligen naturligt eftersom Amazon med webbplatsens besökarantal varit tvunget att uppfinna nya och åter nya lösningar för att kunna skala. Idag finns andra spelare på planen som SalesForce och Google med Google AppEngine. Dessutom finns nya molnaktörer som Engineyard och RightScale, men de erbjuder lite olika saker. Vad skiljer dem åt och hur kan man dra nytta av tekniken? Och kommer webbprojekt förändras framöver på grund av detta? Läser man bloggar och artiklar så verkar molntjänster handla om allt från att köpa Sharepoint per månad till döden för hostingleverantörer. På grund av begreppsförvirring kanske vi ska prata lite mindre om moln och lite mer om IaaS, PaaS och SaaS. Men vad betyder det då? Låt oss reda ut begreppen.

Med moln eller cloud computing menas egentligen “datorteknik som samverkar i stor skala för att leverera en tjänst”. Men naturligtvis brukar man vanligtvis vara mer konkret. Vanligtvis menar man att hyra vissa grundläggande nättjänster för att erbjuda nya nättjänster på högre nivå. Att allt kallas moln nuförtiden är förstås också en trend, men det är rimligt att reda ut vilka lager och begrepp som man brukar tala om i dessa sammanhang:

IaaS (Infrastructure as a Service)

Precis som namnet antyder handlar det om att man köper datorkraft som en tjänst. Får jag låna lite processor och disk ett tag så får du lite pengar. Det här är alltså precis vad Amazon ägnar sig åt och en nyckel till framgång är effektiv virtualisering.

I praktiken är det också få leverantörer som storskaligt kan erbjuda den här tjänsten - det kostar att köpa stora mängder hårdvara. Ett litet exempel på behovet hos sökmotorföretag: Jason Zanders berättade på TechEd Barcelona förra året att Yahoo, Google och Microsoft tillsammans står för mer än 50% av dagens serverinköp. I praktiken innebär köp av IaaS idag att du hyr virtualiserade maskiner i någon form, där de fysiska servrarna står placerade i ett av ganska få stora datacenter världen över. Rigorös bevakning fordras förstås på plats och kalla länder är heta eftersom kylningen är billig. Grönland och framförallt Island är utöver nämnda skäl också poppis på grund av närhet till dagens två mest IT-intensiva kontinenter, så en liten ljusglimt är det nog i finanskrisens mörkerland.

Men för att kontrastera ovanstående påstående lite grann: att köpa datorkraft som tjänst måste ju inte göras via datacenter. SETI@home använder vanliga desktopdatorer och Skype och BitTorrent använder P2P-teknik. Kanske stundar en framtid där vissa molnleverantörer också betalar enskilda aktörer som tillhandahåller datorkraft och där “molnet” utgörs av ett mer spritt P2P-nätverk? Det borde kunna vara en naturlig utveckling för exempelvis Skype, lite i linje med hur Amazon blev molnleverantör.

PaaS (Platform as a Service)

Ni anar kanske vart vi är på väg? Visst - det är ett lager ovanpå IaaS (vad kan komma sen?). Här börjar det bli lite mer spännande och här börjar de etablerade leverantörernas erbjudanden spreta ordentligt. Ok - vad är då plattformstjänster? Jo, den typ av grundläggande tjänster som utvecklare drar nytta av när applikationer byggs. Det kan exempelvis röra sig om smidiga lösningar för datalagring, sökning, e-posthantering, single sign-on, statistik, API-exponering via datattjänster och testverktyg. Hårdvara är fortfarande hårdvara om än i mängder, men mjukvara kan variera i det oändliga.

Den kanske viktigaste, och vanligaste, plattformstjänsten är förmodligen datalagring. Både Microsoft (SQL Azure), Google och Amazon (S3) erbjuder den om än med olika stöd. Amazon går hitills kortast och Microsoft längst i sina olika ambitioner. Förenklat kan man säga att Amazon erbjuder möjligheten att spara och söka efter godtyckliga objekt. Microsoft gjorde en kovändning från sin första ambition och erbjuder nu mer eller mindre än enklare version av SQL Server som körs i molnet. Det innebär alltså möjlighet att köra ganska avancerade frågor och  Google ligger någonstans mittemellan. Gemensamt för Amazon och Microsoft är fokus på REST, d.v.s. möjligheten att hämta och skicka data så enkelt som möjligt, med vanlig HTTP som kan göras i vilken webbläsare som helst. Du ska helt enkelt på ett lätt sätt kunna hämta data från molnet med en enkel webbläsare i format som JSON och XML.

SaaS (Software as a Service)

När vi närmar oss nästa lager närmar vi oss användaren än mer. Om vi hårddrar målgrupperna en aning är målgruppen för IaaS driftansvariga, PaaS utvecklare och för SaaS slutanvändare eller inköpare. Inom SaaS hittar man tydliga företagsriktade tjänster som t.ex. CRM-system att hyra, SAP-implementationer och Exchange. Men utöver detta kan man nämna exempelvis Google Maps och Google Apps. Ska man dra konceptet till sin spets är webben till sin natur SaaS-baserad. I SaaS kan man alltså mosa in mängder av Internettjänster. Poängen är snarare att de betalas via hyra och driftas av tredje part.

Men SaaS inkluderar också i viss mån tendensen att flytta ut applikationer från skrivbordet till Internet. Istället för att köra Office, kan jag använda Google Docs. Istället för bildbehandlingsprogram kan jag använda Splashup, Picasa och Flickr. Det här är en spännande marknad som Microsoft med Windows Azure satsar på genom Live Services. En stor utmaning med en mer flytande gräns mellan webb och desktop är hur applikationer hanterar offline- och onlinelägen och hur man åstadkommer en mer integrerad användarupplevelse. Här finns mycket att göra och värt att hålla ögonen på är, utöver nämnda Live Services, tekniker som JavaFX, AIR/Flash och Silverlight. Även HTML 5 är spännande i och med vad det innebär för mer kompetenta och åtkomliga SaaS-tjänster.

Med begreppen på plats vill jag gärna utmåla några fokusområden som jag tror kan bli särskilt intressanta. Mer om det i nästa inlägg, men följande punkter tror jag blir svåra att missa.

1. Skalbar och billig hosting (IaaS)

2. Möjligheten att snabbt skapa ett lätt serverlager för RIA med befintliga PaaS-tjänster

3. Affärsmöjligheter med SaaS

4. Bygga bättre applikationer snabbare och billigare med bra PaaS-tjänster

Men som sagt - mer detaljer om det i nästa inlägg

Etiketter: azure cloud ec2 google iaas moln paas s3 saas

30 October 2009
Moln i praktiken, del 2 « Isotop skriver:

[...] förra inlägget talade jag lite om vad molnteknik innebär och om IaaS, PaaS och SaaS. Dessutom nämnde jag fyra [...]

2 November 2009
uberVU - social comments skriver:

Social comments and analytics for this post... This post was mentioned on Twitter by staeke: Lite om moln: http://bit.ly/3QT5yg...

13 November 2009
TechEd Europe 2009 i Berlin « Isotop skriver:

[...] manuell konfigurering. Läs gärna mer om Windows Azure och molntekniken i Staffan Eketorps inlägg Moln i praktiken, del 1 och Moln i praktiken, del [...]

Skriv en kommentar