Google App Engine, del 1: Lättillgänglig Cloud Computing

Med Google App Engine så kan vem som helst utveckla sina egna webbapplikationer och köra dem på Googles massiva serverinfrastruktur. Detta är en stor fördel för utvecklare eftersom att det inte är några problem med scaling om en applikation plötsligt blir väldigt populär och får väldigt många användare. Applikationer på Google App Engine körs nämligen inte på en speciell server, utan fördelas bland Googles tusentals servrar över hela världen. Detta är alltså lättillgänglig Cloud Computing.

Använd Googles infrastruktur

Google har sedan länge en av de största IT infrastrukturerna i världen. De har tusentals datorer i stora serverfarmer runt om i världen och de har enorma mängder bredband till sitt förfogande. Redan tidigt så utvecklade de sitt eget operativsystem för att lätt kunna använda standarddatorer och inte dyra servrar. Det är denna infrastruktur som nu är tillänglig via Google App Engine. I Google App Engine ingår inte bara en servermiljö, utan också en lagringsmiljö. Denna kallas Data Storage och är Google App Engines motsvarighet till en databas. Där kan man lagra stora mängder data för att sedan komma åt denna data snabbt.

Varför erbjuder Google denna tjänst?

Genom att erbjuda tillgång till denna infrastruktur så kan Google bli en plattform för många kommande innovativa och populära webbapplikationer, och på så sätt konkurrera med bla Facebook och Amazon. Facebook har redan varit framgångsrik med sitt API och genom att många har utvecklat Facebook Apps så har Facebook blivit en viktig platform för nya applikationer. Google vill nu göra samma sak, samtidigt som de genom Google App Engine kan öka användandet och värdet av sina övriga tjänster. Till saken hör nämligen att det är väldigt lätt att använda Googles autentisering, dvs man kan logga in med sin GMail address i en applikation som kör på Google App Engine (istället för att registrera sig speciellt för den applikationen). Så ju fler framgångsrika applikationer som kör på Google App Engine, ju mer ökar användandet av Googles autentisering, ju mer vet Google om oss och desto mer pengar kan de tjäna på oss via annonser. En annan stor fördel för Google är att nya utvecklare lär sig själva Googles system, vilket gör att på lite längre sikt så blir det enklare för Google att hitta kunnig personal att anställa.

Amazon har flera webbservices som till viss del konkurerar med Google App Engine. Den stora skillnaden mellan Google App Engine och Amazons lösning är att Amazon har delat upp sin plattform i flera separata delar. De har S3 för datalagring, EC2 för processer etc. Där har Amazon en fördel genom att deras webservices kan användas för att komplettera nästan vilken applikation som helst. Google erbjuder istället allt i ett, så för att ta full nytta av Google App Engine så måste applikationen köra på Google App Engine, lagra data där och använda många av Googles APIer.

Man får mycket gratis

För tillfället så stödjs endast programmeringspråket Python, så alla applikationer som ska köras på Google App Engine måste vara skrivna i Python. Man utvecklar sin applikation lokalt genom att använda Google App Engines lokala server som till stora delar efterliknar den miljö som man sedan kör i produktion. När man är klar så produktionssätter man den till Google App Engine. Där får man rätt mycket resurser gratis – 500 MB lagringsutrymme och tillräckligt med processorkraft och bandbredd för 5 miljoner sidvisningar/månad. För tillfället så är Google App Engine i beta och det finns ingen möjlighet att få tillgång till fler resurser, men Google jobbar på en lösning där man ska kunna betala för fler resurser om man behöver det. Som av en slump så är priserna som Google har publicerat väldigt lika Amazons priser för S3 och EC2, men några cent billigare.

Exempel på Google App Engine applikationer

Ett mycket känt exempel på en applikation som snart kör på Google App Engine är microblogging plattformen Jaiku.com som Google köpte för något år sedan. Jaiku håller på att sakta men säkert flytta över till Google App Engine, och detta arbete kan följas på [Jaikus blog]((där jag för övrigt har användarnamnet “andreaskrohn” och jag har invites över om någon vill ha)). Detta är ett starkt bevis på att Google själva stödjer Google App Engine som plattform. (Jag har för övrigt användarnamnet “andreaskrohn” på Jaiku och jag har invites över om någon vill ha.)

Några svenska exempel är Slurpbox, Todolistr och Onlinr. Clas Rydergren har implementerat Frisims feedCache på Google App Engine och skrivit ett intressant inlägg om sina erfarenheter av det på Frisims utvecklingsblogg.

Mer om Google App Engine

Detta är del 1 i en artikelserie om Google App Engine. De kommande delarna handlar om hur man lätt kan använda Google App Engine utan programmeringskunskaper, hur man utvecklar för Google App Engine och slutligen vilka begränsningar som finns och hur man tar sig runt dem.