Mijn collega Pascal Greuter postte onderstaand bericht vandaag. Interessant voor iedereen die zich bezighoudt met Cloud Computing.
Standaardisatie van cloud
Shared service centers worden de laatste jaren steeds meer gemeengoed de overheidssector. Met name gemeentes delen vaker één loket voor gezamenlijke diensten. Maar ook in het bedrijfsleven zijn shared services centers in opkomst: onder meer bij woningcorporaties, waarin veel organisaties ook werken met ongeveer dezelfde processen. Voorbeelden hiervan zijn financiële processen, maar ook het planmatig onderhoud kan worden gedeeld binnen zo’n dienstencentrum. Cloud computing biedt mogelijkheden om samen te werken tussen organisaties en deze processen te standaardiseren, maar er zijn wel een aantal zaken om rekening mee te houden.
Wanneer processen gestandaardiseerd worden heeft dit namelijk gevolgen voor de architectuur. Bij de ontwikkeling van de cloud-architectuur moet er gezorgd worden voor een zeer gestandaardiseerde architectuur. Er ontstaan dan generieke componenten die voor meerdere platformen ingezet kunnen worden. Voor een softwareontwikkelaar heeft dit ook gevolgen; er moet verschoven worden naar generieke oplossingen. Ook is er een verschuiving nodig van customer intimacy naar operational excellence.
Cloud architectuur
Bij cloud computing moeten processen gestandaardiseerd worden en het beheer moet onder controle zijn. De effecten van een storing bij cloud computing is namelijk vele malen groter dan bij lokaal geïnstalleerde software. Wanneer er bij een shared service center bijvoorbeeld een storing is, heeft dit misschien wel invloed op twintig organisaties die dan niet verder kunnen werken. Er moet dus veel aandacht zijn voor beschikbaarheids- en security-eisen. Bij aanpassingen aan het systeem, een hack of een bug is de impact op de architectuur vele malen groter dan bij een on-premise oplossing.
Bij traditionele architectuur is er vaak discussie over de keuze voor ‘best of brand’ of ‘best of breed’. Cloud computing betekent automatisch een keuze voor ‘best of breed’. Het applicatie-integratievraagstuk dat het laatste decennium veel ICT-afdelingen heeft beheerst krijgt met cloud computing een extra dimensie. Om de complexiteit van applicatie-integratie te beheersen moeten er nieuwe eisen worden gesteld aan de architectuur.
Bij het bouwen van een traditionele applicatie, kon er namelijk van uit gegaan worden dat systeembeheer ook de beveiliging regelt. De medewerkers die zich bezig houden met de infrastructuur zorgden ook voor de veiligheid. Bij cloud computing moet een ontwikkelaar daar verder over nadenken, de architectuur is namelijk open en je kunt niet meer alleen op je systeembeheerder vertrouwen. Als softwareontwikkelaar ben je dus steeds meer belast met security-vraagstukken en is er dus ook kennis over de infrastructuur nodig. Echter, veel softwareontwikkelaars beschikken niet over dezelfde kennis als beheerders, waardoor ze deze problematiek niet altijd kunnen overzien.
Non-functional requirements
Bij traditionele softwareontwikkeling wordt pas in de laatste fase, bij de overdracht naar de beheerorganisatie, nagedacht over de non-functional requirements. Wat zijn de eisen voor beschikbaarheid en de performance? Wanneer er software wordt ontwikkeld voor de cloud, dan moet hier al in de eerste fase van het project over nagedacht worden. Het is daarbij belangrijk om te bepalen of de software voor 100.000 of voor 10 gebruikers is. Per situatie gelden namelijk hele andere eisen. Bij traditionele softwareontwikkeling zijn hier, ook op basis van budget, verschillende keuzes mogelijk. Bij cloud computing is het effect veel groter en moet er dus gestreefd worden naar honderd procent beschikbaarheid, er is dus maar één keuze.
Een systeem moet zoveel mogelijk online zijn en de downtime moet worden geminimaliseerd. Echter, hoe minder downtime, des te hoger de beheerkosten zullen zijn. Omdat bij cloud computing en shared services veel meer personen met dezelfde applicatie werken is dit iets om in de beginfase van de ontwikkeling al over na te denken. De architectuur moet heel anders ontworpen worden. Op dag één moet al nagedacht worden over de mate van beschikbaarheid en de fail over. Ook de impact van een storing is belangrijk; gaat het om één medewerker of om honderden medewerkers? In het laatste geval is de urgentie bij een uitval een stuk hoger. Bij cloud computing moeten hier in de architectuur al veel meer eisen aan gesteld worden. Dit moet bij traditionele architectuur natuurlijk ook, er moet dan ook op de non-functional requirements gelet worden, alleen heeft een uitval dan een stuk minder gevolgen.
Wanneer er minder tijd wordt besteed aan een goede cloud-architectuur worden de problemen veel meer zichtbaar. Het is daarom van essentieel belang dat hier al bij de start over wordt nagedacht. Wordt dit niet voldoende gedaan, dan kunnen de gevolgen in het geval van een storing niet te overzien zijn. De impact van een storing is het aantal gebruikers dat geraakt wordt, vermenigvuldigd met de urgentie van de storing. Bij cloud computing is dit een groot aantal gebruikers en iedere cloud computing-storing heeft daardoor meteen een grote impact. Een goed doordachte cloud-architectuur is daarom van essentieel belang.