De Cloud computing hype Kees de Jong Cloud computing is hot en de verwachtingen zijn hoog gespannen. Is de Cloud computing hype van voorbijgaande aard of luidt het een nieuw computer tijdperk in? In dit artikel wordt Cloud Computing in historisch perspectief geplaatst en vergeleken met eerdere IT-hypes. De conclusie is at enterprise architecten er verstandig aan doen om de mogelijkheden van Cloud Computing voor hun organisatie te onderzoeken.
Inleiding Cloud computing trekt momenteel volle zalen. Dat is niet vreemd want volgens de technologie hype curve van Gartner bevindt de Cloud hype zich momenteel rond zijn hoogste punt en zijn de verwachtingen ten aanzien van Cloud computing hoog gespannen.
Figuur 1 Gartner Hype Cycle, Cloud computing bevindt zich op of net na de Peak of inflated expectations (Bron: Gartner)
www.via-nova-architectura.org
Augustus 2010
1
Het is dan ook niet verwonderlijk dat potentiële gebruikers, maar vooral ook leveranciers zich vol overgave storten op deze nieuwe „technologie‟. Volgens de hype curve kunnen we echter verwachten dat de komende tijd de overspannen verwachtingen in hoog tempo zullen kelderen om uiteindelijk geleidelijk aan weer te gaan stijgen naar een redelijk verwachtingsniveau. De Cloud hype roept déjà vu gevoelens op naar eerdere hypes zoals die rond Object Oriëntatie (OO) en meer recentelijk de Service Georiënteerde Architecturen (SOA). Ook daar waren in het begin de verwachtingen hoog gespannen door het Walhalla dat ons te wachten stond door het gebruik van deze nieuwe technologieën. Deze hoge verwachtingen werden echter gevolgd door een dal van desillusie waarna er een periode aanbrak van een realistische kijk op de mogelijkheden van deze technologieën. Alhoewel het om drie verschillende hypes gaat liggen ze wel in elkaars verlengde en zijn ze met een rode draad verbonden.
De OO-Hype De OO hype beloofde ons o.a. dat programmatuur veel sneller en eenvoudiger zou kunnen worden gebouwd en dat hergebruik (o.a. door (multi-)overerving) een hoge vlucht zou nemen. Hordes C-, Pascal- en Fortran-programmeurs togen, in de regel niet gehinderd door al te veel kennis van OO-concepten en technieken, aan het werk om de gevraagde wonderprogramma‟s, veelal na een stoomcursus OO, te ontwikkelen. Het resultaat van deze noeste arbeid in de beginperiode van OO vinden we nu terug in vele legacy applicaties. Zeker qua hergebruik heeft OO niet datgene gebracht wat er van verwacht werd en ook de verwachte winst op programmatuurgebied is maar gedeeltelijk gerealiseerd. OO heeft echter wel een doorbraak betekend in het denken over applicatie architecturen. MVC Een belangrijk ontwerpprincipe bij OO is dat een object een duidelijk omschreven, afgebakende en samenhangende verantwoordelijkheid moet bezitten. Dit leidde o.a. tot de ontwikkeling van applicatie architecturen die bestaan uit lagen die bevolkt worden door objecten met eenzelfde soort verantwoordelijkheid. De moeder van deze applicatie architecturen is het Model View Controler (MVC) patroon dat stamt uit 1979 en voor het eerst gebruikt werd in SmallTalk (één van de eerste OO talen).
www.via-nova-architectura.org
Augustus 2010
2
Figuur 2 Model View Controller design pattern. De doorlopende lijnen representeren een directe associatie, die onderbroken lijnen een indirecte associatie (bijv. Een „ observer‟ relatie) Bij MVC zijn de applicatie verantwoordelijkheden verdeeld over 3 lagen: In de Model laag bevinden zich de business objecten waarin de business logica (zoals berekeningen) is geïmplementeerd. In de View laag bevinden zich de objecten die de presentatie van de gegevens verzorgen. In de Controller laag bevinden zich objecten die verantwoordelijk zijn voor het afhandelen van de applicatie logica. Deze objecten implementeren de logica van use cases. De objecten in de verschillende lagen communiceren met elkaar via een vast patroon:
Controller objecten kennen View en Model objecten en communiceren daar mee View objecten kennen alleen Model objecten Model objecten kennen geen andere objecten.
Nu, vele jaren na de hype, zien we dat bijna alle nieuwe applicaties ontwikkeld worden met object georiënteerde programmeertalen zoals Java en C# en dat het MVC patroon nog steeds springlevend is en volop wordt gebruikt, zoals in de Java frameworks Struts en Spring. Het ICT-gilde is ondertussen ook in staat om de kracht van object georiënteerde concepten en technieken effectief toe te passen. Design patterns, met als bekendste voorbeeld het boek van Gamma et al [Gamma, 1995]. hebben daaraan een belangrijke bijdrage geleverd. Voor het ontwikkelen van (web)services worden voornamelijk OOprogrammeertalen gebruikt omdat deze technologieën naadloos op elkaar aansluiten.
De SOA-Hype SOA, die op dit moment in de hype curve na het dal gestaag omhoog gaat, is complexer dan OO. Bij OO ging het nog om een redelijk afgebakend probleemdomein (namelijk object georiënteerd programmeren). Bij SOA is de afbakening van het probleemdomein veel minder duidelijk.
www.via-nova-architectura.org
Augustus 2010
3
In zijn basis is SOA echter een architectuurconcept dat voortbouwt op de hiervoor genoemde applicatie architectuur. Het grote verschil is dat een aantal verschillende objecten uit een applicatielaag samengevoegd worden tot één service, met een afgebakende verantwoordelijkheid en die min of meer onafhankelijk kan opereren van andere services (loosely coupled en self supporting). Objecten van de ene service communiceren niet rechtstreeks met objecten van een andere service, maar doen dit indirect door het versturen en ontvangen van berichten via de interface van de service. Hierdoor is een service op meerdere plekken bruikbaar (herbruikbaar) en relatief eenvoudig te vervangen door een andere service met dezelfde interface (uitwisselbaar). Legoblokjes Op het hoogtepunt van de SOA hype was de verwachting dat je met services en gebruikmakend van de booming internet technologie op kinderlijk eenvoudige wijze een applicatie in elkaar zou kunnen klikken, net zoals je met legoblokjes allerlei verschillende constructies kan bouwen. De functionaliteit van legacy applicaties kon met behulp van services „bevrijd‟ worden waarna deze, het liefst met een BPM oplossing, in allerlei business processen gebruikt kon worden. SOA beloofde organisaties een bijna onbeperkte wendbaarheid en business mensen de ongekende luxe om met enkele simpele muisklikken een applicatie te realiseren die het nieuwe of gewijzigde business proces perfect zou kunnen ondersteunen. De immer trage en dure IT-afdelingen zouden grotendeels overbodig worden en verbannen worden naar de krochten van de organisatie. Veelkoppig monster In de praktijk blijkt het realiseren van een SOA echter een veelkoppig monster te zijn dat ver af staat van het eenvoudig bij elkaar klikken van een applicatie. Een veelheid aan onvolledige standaarden, concepten en technieken zoals: webservices, enterprise service bus, legacy ontsluiting, rules engines, Identity management, workflow management, business process management (BPM) en nog een hele rits andere nieuwigheden bleken nodig te zijn om enige mate van de beloofde wendbaarheid te realiseren. Van het simpel bij elkaar klikken van een applicatie was in de regel al helemaal geen sprake. Vele, onder de vlag van SOA opererende projecten gingen dan ook roemloos ten onder aan de explosieve mix van onkunde en onervarenheid van softwareontwikkelaars, de naïviteit en goedgelovigheid van (business) managers, de zeer rooskleurige verkoopbabbels van leveranciers, de ronkende praatjes van analisten en consultants, en het grote aantal onvolwassen standaarden, technieken en tools. Daarnaast valt te vrezen dat een substantieel aantal projecten, die wel een applicatie hebben opgeleverd, uiteindelijk slechts de legacy applicaties van de nabije toekomst hebben gecreëerd.
www.via-nova-architectura.org
Augustus 2010
4
Springlevend Toch heeft dit alles niet geleid tot een roemloos einde van SOA. Integendeel, SOA is springlevend en niet meer weg te denken uit de IT-wereld. Zowel bij ontwikkelaars, leveranciers als klanten is er een realistisch beeld van de (on)mogelijkheden van een SOA. In TOGAF versie 9, het wereldwijde architectuur framework van de OMG, speelt SOA een prominente rol. Daarnaast zijn de begrippen „service‟ en „interface‟ de belangrijkste kernelementen in ArchiMate, de OMG standaardtaal voor het beschrijven van Enterprise Architecturen.
Figuur 3 Complexe SOA architectuur met verschillende lagen. De lollies representeren de interfaces van de services. Over de lagen heen spelen een groot aantal aspect services. Een enterprise service bus 'knoopt' alles aan elkaar. De blijvende belangstelling voor SOA, mede gevoed door de succesverhalen, geeft aan dat de concepten en ideeën die er achter schuilgaan, net als toentertijd bij OO, meerwaarde opleveren voor bedrijven die deze concepten en ideeën effectief in hun (enterprise) architectuur kunnen toepassen. Alhoewel SOA de kinderschoenen is ontgroeid valt er, zeker op het gebied van aan SOA gerelateerde (WS-)standaarden, nog wel veel te verbeteren. Na een periode van vele overnames is de markt van SOA tool-leveranciers tot rust gekomen en alle grote leveranciers hebben op dit moment een uitgebreide SOA-suite. De grote COTS software leveranciers op hun beurt dragen allen de strategie uit dat hun producten service georiënteerd zijn of worden.
www.via-nova-architectura.org
Augustus 2010
5
De Cloud Hype Waar SOA op haar hoogtepunt organisaties een bijna onbeperkte wendbaarheid in business proces ondersteuning beloofde, zo belooft Cloud computing een onbeperkte en onbegrensde flexibiliteit met betrekking tot software, platforms en IT-infrastructuur en een substantiële verlaging van de kosten hiervan. Cloud computing is geen architectuurconcept zoals SOA maar een manier om een architectuur fysiek te realiseren. Met name een service georiënteerde architectuur kan met behulp van Cloud computing goedkoper en flexibeler worden ingericht. De term Cloud stamt uit de beginjaren van het internet waarin in architectuur plaatjes het internet vaak werd aangeduid door middel van een wolkje. Volgens de The National Institute of Standards and Technology(NIST) kan Cloud computing worden gedefinieerd als: “A model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.” Alles inkopen Bij Cloud computing ga je er vanuit dat je (bijna) alles wat nodig is op automatiseringsgebied niet zelf bezit, maar online (via het internet) als een commodity service naar behoefte inkoopt. Het kenmerk van Cloud computing services is dat ze on-demand en op pay-per-use basis afgenomen kunnen worden. Een onderneming hoeft bijvoorbeeld geen duur serverpark meer aan te schaffen en te beheren, maar koopt deze service in op basis van haar actuele behoefte. Als de behoeft toeneemt neemt de server capaciteit ook toe en als de behoefte daalt neemt de server capaciteit af; daarbij betaal je alleen wat je werkelijk gebruikt net als bij water, gas en elektra. Cloud computing komt niet uit de lucht vallen. Met name de technische ontwikkelingen op het gebied van internet (o.a. bandbreedte), grid computing en virtualisatie hebben Cloud computing mogelijk gemaakt. Drie Groepen Cloud computing services Grofweg kunnen de Cloud computing services in drie groepen worden ingedeeld: 1. 2.
Infrastructuur as a service (IaaS) Het betrekken van processor, opslag, netwerk capaciteit en andere fundamentele computing resources van de IaaS provider. Platform as a service (PaaS) Het deployen van een custom applicatie op het platform van de PaaS provider. Meestal stelt de provider ook het gereedschap ter beschikking om de applicatie te ontwikkelen en te testen.
www.via-nova-architectura.org
Augustus 2010
6
3.
Software as a service (SaaS) Het gebruiken van een applicatie van de SaaS provider via het internet en (meestal) via een webbrowser.
Er zit een gelaagdheid in de Cloud services. De onderste laag wordt gevormd door IaaS services, deze worden gebruikt door, of zijn onderdeel van PaaS services die op hun beurt weer gebruikt kunnen worden door SaaS services.
Figuur 4: Cloud services lagen structuur Kenmerken van echte Cloud computing services Om in aanmerking te komen voor de term Cloud computing moet een service aan de volgende kenmerken voldoen: 1. 2.
3.
4.
5.
On-demand self-service Een klant kan zelf Cloud faciliteiten zoals servertijd en netwerkopslag naar behoefte regelen Ruime netwerk toegang Diensten worden beschikbaar gesteld via het netwerk en kunnen gebruikt worden op een groot aantal verschillende cliënt platforms zoals mobiele telefoons, laptops, PDA‟s, etc. Locatie onafhankelijke resource pooling De computer resources van de provider worden gedeeld door alle klanten van de provider. De resources worden naar gelang van de behoefte van de klanten dynamisch verdeeld. Klanten hebben in de regel geen controle over, of kennis van, de exacte locatie waar de resources zich bevinden. De provider maakt in de regel gebruik van een multi company (multitenant) model. Elasticiteit Door de provider wordt de mogelijkheid geboden om snel up en down te scalen. Voor de klant lijkt het daarbij of de aangeboden dienst een onbeperkte limiet heeft en de dienst op elk moment in elke hoeveelheid afgenomen kan worden. Bemeterde service/Pay per use Diensten worden berekend op basis van werkelijk gebruik. Voorbeelden hiervan zijn bemeterde opslag, bandbreedte en rekencapaciteit, en het aantal actieve gebruikersaccounts.
Cloud computing komt niet uit de lucht vallen en past in de al jarenlang voorschrijdende ontwikkeling waarbij zowel applicaties als infrastructuur steeds meer gedeeld worden en vanaf steeds meer locaties (van lokaal naar globaal) door steeds meer verschillende type gebruikers (bijv. medewerker, klant, partner, etc.) te gebruiken zijn.
www.via-nova-architectura.org
Augustus 2010
7
Figuur 5: Applicatie architectuur ontwikkeling Zoals al eerder vermeld bevindt de Cloud hype zich op het hoogste punt van de hype curve en de verwachtingen zullen de komende tijd dan ook dalen. Daarbij zullen waarschijnlijk de volgende aandachtsgebieden een rol gaan spelen:
Beveiliging Aangezien je als Cloud gebruiker geen zeggenschap hebt over de infrastructuur bestaat het gevaar dat bedrijfsinformatie op straat komt te liggen. De beveiliging die de meeste Cloud providers leveren beperkt zich alleen tot encryptie en user name, password beveiliging. Voor bepaalde toepassingen is dit niet voldoende. Een potentieel groot gevaar schuilt in de aantrekkingskracht op Hackers die Cloud computing kan hebben. De „beloning‟ voor het hacken van een Cloud provider is vele malen groter dan van de meeste andere organisaties.
Controle Door gebruik te maken van een Cloud dienst verlies je de controle daarop. De kans bestaat dat de provider je om de één of andere reden afsluit van de dienst. Het kan ook zijn dat de provider de dienst niet meer wil of kan leveren bijvoorbeeld omdat het bedrijf failliet gaat. Kosten Alhoewel er voorgespiegeld wordt dat de kosten van een Cloud oplossing lager zullen zijn zal dat zeker niet al alle gevallen zo zijn. Het maken van een business case waarin alle kosten opgenomen zijn is essentieel. Er kan gevoeglijk worden aangenomen dat er bedrijven zullen zijn die op basis van rooskleurige sprookjesverhalen gebruik zullen gaan maken van Cloud diensten. Deze wacht echter een harde financiële landing wanneer de rekening wordt gepresenteerd. Vendor lock in Veel Cloud providers gebruiken proprierty platforms. Op het moment dat
www.via-nova-architectura.org
Augustus 2010
8
je gebruik gaat maken van de diensten van zo‟n provider kun je niet zo maar één-twee-drie overstappen naar een andere provider. Compliance Veel providers leveren niet of niet de noodzakelijke logging en audit trail informatie die vanuit wet- en regelgeving of vanuit de eigen organisatie geëist wordt. Service-level-agreements (SLA) Veel Cloud providers hebben geen tot zeer beperkte SLA‟s. Daarnaast leveren zij niet de informatie die nodig is om na te gaan of de SLA wordt gehaald. Het gaat daarbij om afspraken over kwaliteit, prioriteiten, verantwoordelijkheden, garanties, vergoeding bij calamiteiten, etc.
Publieke, Private, Community en Hybride Clouds Beveiliging wordt door de meeste organisaties gezien als het grootste risico bij het inzetten van Cloud computing.
Figuur 6: Cloud computing aandachtspunten (bron: IDC enterprise Panel, August 2008 n=244) Figuur 6 laat zien dat er naast beveiliging een groot aantal andere onderwerpen zijn die gezien worden als belangrijk aandachtspunt en risico bij het inzetten van Cloud computing. Het is dan ook niet verwonderlijk dat er Cloud-achtige oplossingen worden ontwikkeld die wel zoveel mogelijk de voordelen maar zo min mogelijk de nadelen hebben van een echte Cloud. Hierbij moet gedacht worden aan Private Clouds en Community Clouds. Deze zijn in tegenstelling tot de publieke Clouds alleen toegankelijk voor een beperkt aantal vooraf geautoriseerde gebruikers. Hybride Clouds, een combinatie van Private, Community en Publieke Clouds kunnen natuurlijk ook voorkomen en zullen waarschijnlijk in de nabije toekomst de toon zetten. Cloud computing wordt niet alleen door bedrijven omarmd als een methode om kosten te reduceren, ook de federale overheid van Amerika wil Cloud computing hiervoor inzetten. Federale instanties moeten in 2011 rapporteren in hoeverre zij gebruik maken van Cloud computing (en waarom niet) en in
www.via-nova-architectura.org
Augustus 2010
9
2013 dient elke federale organisatie een Cloud computing roadmap en strategie te hebben ontwikkeld. Conclusie Enterprise architecten doen er verstandig aan om de mogelijkheden van Cloud computing voor hun organisatie te onderzoeken omdat er daarmee potentieel aanzienlijke kostenreducties kunnen worden behaald. Daarbij is het verstandig om niet te veel hooi op de vork te nemen en te zoeken naar „low hanging fruit‟ of te experimenteren in een niet bedrijfskritisch domein voor een eerste gebruik van Cloud computing. Cloud computing is wel bruikbaar, maar nog lang niet volwassen. Cloud computing is niet simpel, als het namelijk simpel was dan hadden we het allemaal allang gehad.
Kees de Jong Onafhankelijk consultant
[email protected]
Referenties [Armbrust, 2009]
Armbrust, M., et al.: Above the Clouds: A berkeley View of Cloud Computing, 2009, UCB/EECS-2009-28
[Gamma, 1994]
Gamma, E., et al.: Design Patterns: Elements of Reusable Object-Oriented Software, 1994, ISBN 0-201-63361-2
[Linthicum, 2010]
Linthicum, David S.: Cloud Computing and SOA Convergence in Your Enterprise, 2010, ISBN-13: 978-013-600922-1
[Mell, 2009]
Mell, P. and Grance, T.: NIST definition of cloud computing, National Institute of Standards and Technology, October 7, 2009
www.via-nova-architectura.org
Augustus 2010
10