Under de senaste 10 till 15 åren har vi lärt oss att man skall bygga sina applikationer stateless, vilket alltså innebär att man tydligare separerar logiken och data som logiken använder sig av. Fördelen med detta är att man på ett enklare sätt kan utöka den datorkraft som behövs för att köra logiken på. Man kan helt enkelt skala ut sin applikation.

Detta mönster började med skrivandet av klasser, men fick nog sitt genombrott med webbapplikationer, som i princip måste vara stateless, och till webbtjänster där man verkligen måste implementera med detta mönster.

Men nu är det dags att gå vidare. Att även tänka att våra datorresurser, virtuella miljöer eller fysiska i sig själva skall vara stateless. (För er som varit med ett tag är inte detta egentligen något nytt, men det har blivit mycket tydligare i och med cloud computing.)

Varför måste de vara stateless?

Det finns flera skäl till detta:

  • Möjligheten att mycket snabbt skala ut sin applikation när belastningen ändras. Och här vill jag speciellt understryka snabbt.
  • Bygga applikation som förväntar sig att datorer på ett eller annat sätt kraschar. För det gör dem, hur bra de än är.
  • Bättre ekonomi. Varianten om man inte kör stateless på datornivå är att man måste skala upp när belastningen ökar och att skala upp, köpa mer avancerad datorkraft är mycket dyrare än att köpa fler datorer.

Det är av denna anledning som Microsoft har satsat sina hästar på PaaS istället för Iaas. Iaas simulerar egentligen bara den interna datormiljön i molnet, medan PaaS går till nästa nivå och varsamt pekar på att applikationerna som körs där skall vara stateless och alltså lättare att skala ut och få de fördelar som jag beskrev ovan.