donderdag 19 januari 2012

Het hart van Cloud computing

Disclaimer: Dit artikel is nog niet bewerkt en bevat nog ruwe kantjes. Op basis van “engagement” bepaal ik of dit artikel bewerkt zal worden tot een definitieve vorm.

Software as a service (Saas), Platform as a service (Paas), Infrastructure as a service (Iaas) zijn geen cloud computing. De reden hiervoor is simpel. In 1999 heb ik mijn eerste saas gebouwd en dat was een web applicatie gebouwd op classic ASP in combinatie met Microsoft SQL Server. In 2005 heb ik de architectuur gemaakt voor een platform as a service. Met een webapplicatie kun je eigen schermen maken en database velden toevoegen en dit aan een andere partij aanbieden als saas. Dit is gebouwd op wat gevirtualiseerde servers ASP.NET en Microsoft SQL Server. Bij Leaseweb huur ik een paar servers die wat webpagina’s hosten. Is dat infrastructuur as a service? Zeker wel, maar als de fysieke machine uitvalt, is mijn server verdwenen zonder de mogelijkheid om hem ergens anders weer aan te laten gaan.

Saas, paas en iaas zijn mogelijk manieren waarop je cloud computing kunt afnemen, maar dit is dus niet exclusief voor cloud computing. Als je als organisatie deze modellen afneemt betekend dit niet de adoptie van cloud computing. Het betekent dat je een manier hebt gevonden om bepaalde IT gerelateerde zaken uit te besteden, en dit kan specifieke voordelen hebben waar ik volledig achter sta.

Er wordt veel geschreven en gepraat over de definitie van cloud computing. NIST heeft een mooi document geschreven wat dieper in gaat op de karakteristieken, maar zorgt wel voor veel verwarring waardoor het niet goed duidelijk is wat nu het hart van cloud computing is.

Traditioneel
Om de veranderingen te begrijpen moeten we teruggrijpen op wat we weten en kennen. Wat we als organisatie willen bereiken is een verregaande vorm van automatisering. Goede automatisering zorgt ervoor dat je meer werk kunt verzetten met minder arbeid en tegen lagere kosten. Ook moet automatiseren leiden tot minder fouten. De noodzaak om te automatiseren is in een land met grote welvaart hoger dan in een land waar welvaart nog een belofte is. In een welvarend land is de arbeid per definitie een hoge kostenpost. Door de vele administratieve processen bestaat er veel kantoorautomatisering. Dit bestaat uit het verwerken van administratie, financiën, het schrijven van documenten, beheren van agenda’s, versturen van e-mails et cetera. In kleine organisaties worden de werkplek Pc’s vaak met de hand geïnstalleerd en grote organisaties is het vooral belangrijk om een vorm van uniformiteit toe te passen en loont het om het installeren van werkplekken geautomatiseerd te doen. Hoe meer variatie ontstaat hoe meer kosten oplopen om gebruikers te onderhouden en problemen op te lossen. Dit zelfde geldt voor de server kant. Kleine organisaties kopen een server en richten deze in. Steeds vaker zie je dat organisatie server virtualisatie gebruiken om dit een aantal voordelen biedt. Maar door de beperkte schaal komt hier niet alleen veel arbeid bij kijken, ook het onderhoud en beheer is niet bepaald generiek. Upgrades van software welke ook nog moet integreren met andere bedrijfssoftware kunnen wel eens dure projecten worden. En door de tijd heen wordt software legacy. Het is een noodzaak om het aan te houden, maar de kosten stijgen hard mee. Ondanks dat er minder vaak fysieke hardware hoeft worden aangeschaft is veel beheer en probleem oplossen handwerk.

Cloud Computing
Door verder te gaan met het automatiseren van nieuwe servers en virtualisatie gebeuren er een paar dingen. Een cloud provider zoals Microsoft met Azure en Amazon met AWS hebben de automatisering zo ver doorgevoerd dat er nagenoeg geen menselijke arbeid aan te pas komt om nieuwe fysieke servers toe te voegen aan het serverpark. Op generieke manier worden nieuwe servers ingericht zodat ze automatisch in gebruik genomen kunnen worden door middel van virtualisatie. Dit kan alleen maar als je servers beschouwd als “eenheidsworst” ofwel; One Size Fits All. Door hier een interface voor te bouwen heeft Amazon het mogelijk gemaakt dat je server capaciteit bij kunt schakelen door middel van zelfbediening. Door slim om te gaan met het meten van gebruik op het gebied van processor kracht, geheugen, schijfgrootte en bandbreedte kan ook het afrekenen van gebruik geautomatiseerd plaatsvinden.

Het vergroten van de totale server capaciteit betekent gewoon op een standaard manier fysieke servers bijplaatsen. In een filmpje over Microsoft Azure zie je hoe dit tegenwoordig gaat: Een zeecontainer vol met servers wordt over een rails in een “slot” geplaatst. Daar wordt de container aangesloten op stroom, water voor koeling en Air flow. Wat gebeurt er als er een harde schijf stuk gaat, of een server niet meer functioneert? Helemaal niets! Lekker laten zitten totdat een bepaald percentage falende servers bereikt wordt. Dan wordt de gehele container uit het slot gehaald en een nieuwe container geplaatst. Goede spullen worden hergebruikt, oude spullen gerecycled.

Dat je niet precies weet waar je server draait, op welke server je data wordt opgeslagen, of waar je server naar toe gaat als deze labiel wordt is de aard van cloud computing. Een server wordt in feite een generiek apparaat die processorkracht, geheugen en opslagcapaciteit levert. En dat allemaal op basis van automatisering.

Clusters
Virtualiseren betekent dat je een fysieke server opdeelt in een aantal kleinere virtuele servers. Je maakt een server in feite kleiner. En dit terwijl je functioneel gezien servers zou willen clusteren. Je wilt bijvoorbeeld één grote database en dat die servers samen functioneren als één server. Dit doe je in feite met virtualisatie. Het clusteren vind alleen plaats op een ander niveau. Software op de servers zorgt voor het samenwerken, alsof al die servers één zijn.

Goedkoper
Waarom kan cloud computing goedkoper zijn? Hier zijn een hele reeks voorbeelden met aan het eind de klapper. Een cloud provider kan zijn stroom goedkoper inkopen, door slim te bouwen kan er veel stroom voordeel opgedaan worden door de locatie. In het noorden is het koud en dat is gratis koeling. Door de locatie kan ook bandbreedte goedkoper worden ingekocht of er kan zelfs eigen infrastructuur worden aangelegd. Door bulk aankopen wordt hardware tegen de laagst mogelijke prijs aangekocht. De werkelijke besparing zit hem in de automatisering waardoor er weinig menselijke arbeid nodig is per server.

In een traditionele organisatie waarin het inrichten van servers en uitrollen van werkplekken niet volledig geautomatiseerd is en waarbij maatwerk wordt gebruikt voor het gebruik van software. Vaak worden database servers weer anders ingericht dan bijvoorbeeld een storage area network (NAS). Als de database uit de voegen groeit wordt er database server capaciteit handmatig toegevoegd. Dit schaalt niet. Hoe meer werkplekken en servers, hoe meer beheerders, consultants en helpdeskmedewerkers er nodig zijn. Dit is de praktijk die ik zie bij veel organisaties. Netwerk en software lijken dus door de tijd heen te groeien, maar de kosten om dit te beheersen worden progressief hoger.

De werkelijke besparing kan dus alleen maar gerealiseerd worden als er minder arbeid aan te pas komt. Deze week is DynamoDB van Amazon gelanceerd. Deze biedt een database aan als een service. Dit is overigens een “NoSql” database. Dit houdt in dat de structuur niet relationeel is. Als je persoonsgegevens opslaat en je besluit ineens ook kleur ogen op te slaan, dan kan dit zonder dat je na hoeft te denken hoe je de structuur aanpast. Het maakt niet uit hoeveel mensen tegelijk data in de database stoppen of eruit halen. Het maakt niet uit hoe groot je database is. Dit is allemaal geautomatiseerd! Dat is de kracht van cloud computing. Daar zit de winst.

Maar wat moet je daarmee als organisatie? Hoe behaalt jouw organisatie hier zijn winst uit? De techniek van cloud computing staat niet in directe relatie tot de voordelen voor een organisatie. Maar door deze techniek, en hiermee doel ik niet specifiek op DynamoDB, bestaat de mogelijkheid dat één programmeur, of een klein team een applicatie kan ontwikkelen die gebruikt maakt van cloud computing.

Voorbeeld
Ik zal dit illustreren met een voorbeeld. Nalden is een sympathieke Nederlander en medeoprichter van WeTransfer.com. Een gratis dienst waarmee je grote bestanden van maximaal 2 GB gratis kunt verplaatsen naar mensen van jouw keuze. Miljoenen mensen gebruiken deze dienst. Hij hoeft zich echter niet druk te maken als zijn dienst ineens extra aandacht krijgt. Er is zelfs een grote kans dat hij de laatste week niet eens met de site is bezig geweest. WeTransfer.com is gebaseerd op een dienst van Amazon die gebaseerd is op cloud computing. Die dienst is zo goedkoop dat met een beetje reclame geld oplevert om Amazon te betalen en ook wat te verdienen. De achtergrond van de WeTransfer site bestaat uit mooie scherm vullende plaatjes welke dienst doen als reclame.

Dus jij als internet gebruiker kunt zonder moeite zijn dienst gebruiken die niets kost en er hip uitziet. Deze dienst was onmogelijk te realiseren zonder cloud computing. Er zou bij grote vraag capaciteitsproblemen ontstaan, en heel veel capaciteit realiseren is te duur.

Dus cloud computing voor jou als eindgebruiker is niet direct interessant. De diensten die bouwen op cloud computing en jou van een mooie web applicatie voorzien voor een interessante prijs is dat wel.

De crux is dus niet om als ondernemer cloud computing te adopteren, maar om diensten toe te passen die door cloud computing gemakkelijk, goedkoop en zonder veel arbeid te gebruiken zijn.

Zelfbediening
Hoe kan WeTransfer.com miljoenen mensen bedienen? Omdat de dienst geautomatiseerd is. Er is geen menselijke handelen nodig om nieuwe klanten te krijgen, aan te sluiten en te bedienen. Klanten bedienen zich zelf.

Om deze enorme hefboom zelf ook te kunnen gebruiken zal je dus als ondernemer moeten afvragen wat jij kunt doen om zelfbediening mogelijk te maken. De voorbeelden die ik schets liggen voor de hand, toch is zelfbediening niets iets van vanzelf ontstaat.

Zo heb ik voor een partner een Software as a service webapplicatie ontworpen. Deze wordt ingezet voor personeelszaken. Dossiers van medewerkers, ziek en verzuimmeldingen, roosterplanning en urenregistratie kunnen hiermee gedaan worden. Zij kunnen deze dienst 24 uur per dag gebruiken 365 dagen van het jaar. Deze applicatie werkt op basis van zelfbediening. Voor het inloggen van klanten hoeft het bedrijf zelf niets te doen. Klinkt goed, maar hier komt het addertje onder het gras. Een nieuwe klant kan zichzelf namelijk niet aanmaken. Voordat de klant de applicatie kan gebruiken moet deze worden ingericht. Afdelingen worden aangemaakt en de organisatie wordt op zodanige wijze ingericht dat het voor de klant zo min mogelijk moeite kost om met de software te starten. Maar voor elke klant is dus wel arbeid nodig voordat deze zichzelf kan helpen.

Hier ligt de kans.

Als mijn partner per week tien klanten erbij krijgt moet hij er mensen aan gaan nemen omdat hij anders tijd te kort heeft. Als klanten zichzelf aan konden sluiten en de applicatie in konden richten kan hij wel 1000 klanten per dag aan!

Neem zelf eens de tijd om na te denken hoe zelfbediening jouw organisatie een boost kan geven, ik kan daar eventueel een handje bij helpen.

Veiligheid
Wellicht lachen de mogelijkheden gedreven door cloud computing je toe. Maar is het wel veilig? Als er één grote drempel is om dingen te doen in de cloud (gedreven door cloud computing) dan is het veiligheid. Heel diep hier op in gaan zou dit artikel veel te lang maken, maar ik zal een paar handvatten aanreiken die de mogelijkheden en risico’s wat tastbaarder maken.

Allereerst een vergelijking die David Geens maakt in een uitbereiding van zijn eBook “Het is cloudy vandaag”. Hij vraagt de lezer; “Wat is het veiligste: uw juwelen thuis in een sigarenkist bewaren of in een kluis in een bankkantoor?”

Buiten de discussie die je kunt voeren (je kunt thuis ook een kluis bouwen) zullen veel mensen terecht vermoeden dat juwelen veiliger zijn bij de bank. Zo is het ook met IT. Bijna alle MKB bedrijven doen aan automatisering en hebben eigen servers, maar een cloud provider heeft meer verstand van beveiliging.

Google versleuteld praktisch alle data. En niet met één sleutel. Nee, elke klant heeft een eigen sleutel. Mijn data is dus voor iemand anders niet te lezen. Pik een server uit een Google datacenter en gegarandeerd dat je er niets mee kunt. Medewerkers van Google kunnen ook niet bij jouw sleutel. Sommige Google medewerkers kunnen wel bij jouw sleutel en dus je data, maar moeten een procedure volgen voordat ze dit mogen. Dit soort beleid is vastgelegd in standaarden en Google gaat daar serieus mee om. Dat Google onderwerp is van kritiek over privacy is een andere discussie. Deze vindt meer plaats op het gebied van social media en het vastleggen van Wi-Fi punten. Maar data van documenten en bedrijfsgegevens zijn goed afgeschermd tegen oneigenlijke toegang. Dit betekent niet google apps gebruiken direct veilig is voor jouw organisatie! Dat ligt niet aan Google, maar aan de gebruikers. Als iemand jouw gebruikersnaam en wachtwoord weet kan hij overal bij. Als medewerkers makkelijk te raden wachtwoorden gebruiken, of deze delen met anderen, dan is je veiligheid natuurlijk direct weg.

Ook in dit kader zal ik een treffend voorbeeld geven. Stel je hebt PietDeVries@Gmail.com als e-mail adres. Als je bij een webshop wat koopt maak je een account aan met PietDeVries@Gmail.com en een wachtwoord. Als je hierbij hetzelfde wachtwoord gebruikt als bij je Gmail dan heb je een potentieel probleem. En ik zou de mensen die hun wachtwoorden voor meerdere diensten gebruiken niet de kost willen geven. Dan heb je aan de voedselbank niet genoeg. Stel dat die webshop gehackt wordt, dan zal dit hergebruik van wachtwoorden ontdekt worden en nog geautomatiseerd ook. Maar het kan ook zijn dat de webshop eigenaar niet koosjer is en zelf met jouw wachtwoord aan de haal gaat.

Dit is een serieus probleem en als ondernemer moet je hier iets mee naar je medewerker.

Maar gelukkig zitten SaaS aanbieders zoals Google ook niet stil. Zij weten ook wel dat gegevens opslaan in de cloud vragen oproept. Zo heeft Google bijvoorbeeld tweeweg verificatie opgezet. Met alleen je gebruikersnaam en wachtwoord kom je er niet in. Je moet iets op te telefoon installeren en autoriseren wat je nodig hebt om in te kunnen loggen. Dit werkt net als zo’n kastje wat je gebruikt als je gaat internetbankieren. Dit is dus wel veilig. Al weet iemand jouw wachtwoord, dan nog komt hij er niet in. Je moet dan wel altijd je telefoon bij je hebben, maar dat is een fundamenteel aspect van veiligheid. Meer veiligheid gaat altijd ten koste van gebruiksvriendelijkheid.

Cloud computing is niet fundamenteel veilig, maar grote cloud providers zijn gewilde doelwitten voor hackers en veel grote cloud providers hebben verregaande maatregelen genomen om oneigenlijk toegang tot data tegen te gaan. Er is een ISO certificering, 27001, die gaat over een standaard hoe er met veiligheid wordt omgegaan. Daarbij is er een Sas 70 Type II audit certificaat -een derde partij die controleert of de onderneming zich ook echt aan de ISO 27001 houdt- welke toch wel het gevoel geeft dat de cloud aanbieder zijn zaakjes op orde heeft. Hierbij wel twee kanttekeningen. Sommige lokale cloud providers schermen wel met deze standaarden, maar bezitten ze niet. Zij ontlenen hun uiting vaak omdat zij zelf weer cloud providers gebruiken die wel deze certificering bezitten. Bij de wet ben je in principe verplicht zelf te controleren dat een leverancier waar je data hebt opgeslagen zich aan zijn afspraken houdt met betrekking tot de bescherming van persoonsgegevens. Bij heel veel SaaS aanbieders is overigens niets te vinden over veiligheid. Dat is een slechte zaak.

Punt is dat veiligheid nog zeker een aandachtspunt is, maar dat de ontwikkelingen zich snel opvolgen en het al maar beter wordt.

Conclusie
Cloud computing is heel technisch. Computers op een zodanige manier laten samenwerken dat je niet weet waar je data of server zich bevindt is een prestatie van formaat. Als organisatie heb je vaak niet direct te maken met cloud computing maar met een dienst of webapplicatie die van cloud computing gebruik maakt. Cloud computing is dus geen doel, maar een indirect middel om bepaalde voordelen te behalen in prijs, gemak en betalen voor wat je daadwerkelijk gebruikt zonder langlopende contracten. En dit allemaal op een schaalbare manier.

Over wetten en veiligheid is het laatste woord nog niet gezegd, maar er zijn goede indicatoren dat dit slecht een tijdelijke drempel is.

Om daadwerkelijk grote voordelen te behalen met cloud computing is visie nodig. De techniek doet het wel, het gaat om het vinden van een hefboom waardoor er minder arbeid nodig is om doelen te bereiken.

Cloud computing maakt het mogelijk om als eenling of klein team een krachtig middel in te zetten waarmee miljoenen gebruikers bediend kunnen worden over de hele wereld.