vrijdag 5 oktober 2012

De winst van Cloud Computing

Cloud computing biedt in theorie onbegrensde groeimogelijkheden maar wordt tot op heden vooral beperkt door bandbreedte. De kosten en beperkingen van het netwerk worden vaak onderschat of simpelweg vergeten. En dit geldt niet alleen voor de bovenkant, de toegang van cliënt naar de cloud applicaties, maar ook naar de achterliggende opslag.


Iets om bijvoorbeeld rekening mee te houden is dat veel aanbieders van cloud computing wel aantallen gigabytes bieden maar geen garanties in IOPS, het aantal lees- en schrijfacties naar de opslag. En dat kan, zeker als opslag gedeeld wordt uiteindelijk voor vervelende verrassingen in de prestatie van applicaties zorgen. En de schaalbaarheid proberen te vergroten door de werklast te verdelen over verschillende computers verschuift probleem alleen maar naar de onderkant, vaak de database die de bron van informatie is voor vele processen en services.

Data(base) bottleneck
Schaalbaarheid van onderliggende database bepaalt dus ook in grote mate de elasticiteit van een oplossing, zelfs in de theoretisch oneindig schaalbare cloud. Nu zijn er verschillende oplossingen om de schaalbaarheid van databases te vergroten zoals clustering (Azure), caching (Google) en de op file gebaseerde oplossingen zoals noSQL (Amazon). Het gebruik van deze technieken vraagt echter aanpassing van de onderliggende datalaag. En hoewel inspanning en kosten hiervan grotendeels bepaald worden door beoogd doelplatform van cloudleverancier zal het duidelijk zijn dat een dergelijke migratie geen sinecure is. Het zijn dus vooral de applicaties die niet alleen de mogelijkheden van cloud computing bepalen maar vooral ook de migratie kosten. En zeker voor bestaande applicaties kunnen de investeringen voor een transitie naar de cloud weleens de uiteindelijke besparingen overstijgen.
Hardware gebonden
Probleem met de toegang tot de opslag komt echter ook voor bij het virtualiseren van de infrastructuur. In plaats van dit op te lossen door aanpassingen te maken aan applicaties wordt dit vaak opgelost met I/O cachekaarten of flashdisks. Er wordt dus vaak voor een hardware oplossingen gekozen waardoor er uiteindelijk een afhankelijkheid met het platform is. Ook eisen als schaalbaarheid en herstelbaarheid worden nog teveel vanuit de 'box' ingevuld waarbij beperkingen van de techniek bepalend zijn voor de mogelijkheden. Zo klonen we bijvoorbeeld servers meermaals en voegen een vorm van load balancing toe om de werklast te verdelen. En op dezelfde manier proberen we ook de betrouwbaarheid van applicaties te vergroten waardoor dus het aantal servers blijft groeien. Uiteindelijk dus allemaal niet zo heel erg efficiënt en het is dan ook niet zo vreemd dat it nog steeds als een kostenpost gezien blijft worden.
Paradox
Om echt te kunnen profiteren van het nieuwe computerparadigma van cloud computing zijn dus aanpassingen aan applicaties onvermijdbaar. Want het blijven invullen van behoeften zoals bijvoorbeeld mobiliteit met deeloplossingen als terminal services en vdi maakt de architectuur niet overzichtelijker. Dat bemoeilijkt niet alleen de holistische visie erop maar ook aansluiting op infrastructuren van derden voor een hybride locudoplossing. Want uiteindelijk kan natuurlijk niet alles naar de cloud gebracht worden maar veel van de dertien-in-een-dozijn services wel. Maar om te bepalen wat je kunt besparen met cloud computing is inzicht in de kosten van de service nodig en juist dit ontbreekt vaak bij organisaties. Want veel infrastructurele zaken zoals stroom, koeling, netwerk, beveiliging maar ook beheer worden namelijk nog niet in rekening gebracht van de gebruiker waardoor cloud computing goedkoper lijkt maar niet hoeft te zijn.
Architectuur verschillen
Natuurlijk behoeft niet iedere applicatie een schaalbare infrastructuur en is dit alleen interessant voor de Enterprise applicaties die door duizenden tegelijk gebruikt worden of enorme aantallen transacties moeten verwerken. Veel bestaande applicaties zijn ook nimmer ontwikkeld met schaalbaarheid als uitgangspunt. Probleem is echter dat de meeste wel ontwikkeld zijn vanuit een andere architectuur, namelijk die van netwerk computing. Terwijl cloud computing juist een grote gelijkenis heeft met grid computing. Hierbij zorgt virtualisatie voor de dynamisch schaalbare resources en het grid voor federatie van middelen, uniforme api's maar ook generieke toegangsmechanismen. Het 'cloud enablen' van applicaties gaat dus niet alleen om aanpassingen in de datalaag maar ook van de middleware, zeg maar de service bus die voor het grid van cloud computing zorgt.
Platformdefinities
En het zijn deze bouwstenen die de afhankelijkheid weg nemen met onderliggend platform en de grenzen van het datacenter laat vervagen. Natuurlijk kunnen we de infrastructuur virtualiseren maar dat is nog geen cloud computing, tenminste niet platform as a service. Misschien dat daarom bij uitbesteding ook zo vaak verwarring is over de definitie platform. Zo wordt de ene keer de middleware en database als onderdeel van het platform gezien en de andere keer juist weer als applicaties. Hierdoor wordt de belofte van cloud computing - een schaalbare en flexibele oplossing waarbij grenzen niet door techniek maar de economische aspecten bepaald worden - dus niet altijd waar gemaakt. Want pas als applicaties aangepast worden aan de nieuwe architectuur van cloud computing kunnen eisen als schaalbaarheid en betrouwbaarheid hoger in de stack, binnen de software zelf ingevuld worden.
Servicegericht
Dan is er niet alleen meer dynamiek in de infrastructuur maar gaan de kosten pas werkelijk omlaag. Bijvoorbeeld door alleen het herstelpunt en hersteltijd van de kritische services te verbeteren via database synchronisatie in plaats van alles via gebruikelijke 'one-size-fits-all' oplossing met replicatie van gecentraliseerde opslag. Of door het elimineren van ruim aanwezige overlap in functionaliteiten binnen de bestaande infrastructuur door te rationaliseren. Maar omdat kosten voor de baten uit gaan wordt meestal gekozen voor het vrijwel ongewijzigd laten van applicatielandschap. En dus zijn steeds meer toevoegingen aan de architectuur nodig om de wensen van de organisatie zoals mobiliteit en flexibiliteit te kunnen blijven ondersteunen waardoor kosten van ict blijven stijgen. Dit mede omdat omslag van kosten teveel gebaseerd zijn op servers in plaats van service en er dus nog veel verborgen kosten zijn.

Geen opmerkingen:

Een reactie posten