Advance DreamBox Forum

Besturings systemen => Virtualisatie => Topic started by: arjanhs on July 07, 2010, 09:57:13 AM

Title: Cloud computing: logisch vervolg op virtualisatie
Post by: arjanhs on July 07, 2010, 09:57:13 AM
Iedereen lijkt tegenwoordig clouddiensten en -producten te verkopen. In werkelijkheid gaat het meestal om oude wijn in nieuwe zakken: cloud computing is vooral een concept voor de inrichting en het gebruik van toekomstige datacenters, als we die dan tenminste nog zelf hebben. Een voorloper als Amazon laat zien hoe we it-resources in de toekomst kunnen organiseren en afnemen.

Wat precies onder cloud computing wordt verstaan, hangt af van degene aan wie je het vraagt. Of beter gezegd: van wat hij verkoopt. Zoals wel vaker is elke leverancier met dit nieuwe buzzword aan de haal gegaan: tegenwoordig wordt elke dienst waar een internetverbinding aan te pas komt, een clouddienst genoemd. Leveranciers herschikken hun bestaande productportfolio onder de nieuwe cloudvlag, wat puur uit marketing-overwegingen wordt gedaan en ook wel 'cloud washing' wordt genoemd.

Zelfs de specialisten blijken behoorlijk in verwarring over wat nu wel en niet onder de term cloud computing valt. Sommigen menen dat cloud computing niet bestaat, terwijl anderen juist zeggen dat de cloud alles omvat wat we nu al doen. Tegenstrijdiger kan het haast niet.

(http://ic.tweakimg.net/ext/i/imagenormal/1278335155.jpeg)

Iaas, saas en paas
Infrastructure-as-a-service

In dit artikel gaan we uit van de manier waarop de term 'cloud' in de wereld van de it-infrastructuur wordt gebruikt. We komen daar ook regelmatig de term infrastructure-as-a-service, oftewel iaas, tegen. Daarbij moet je denken aan alles wat je in het datacenter vindt: serversystemen, storage arrays en netwerkcomponenten. Het gaat echter niet om de spullenboel op zich, maar om de manier waarop we die organiseren, gebruiken en beheren.

Het sleutelwoord daarbij is flexibiliteit. Het maakt voor it-toepassingen niet meer uit waar ze precies draaien. In de cloud is er een basisinfrastructuur beschikbaar waarop applicaties worden uitgevoerd. Dat kan in een rekencentrum binnen een bedrijf zelf zijn, zoals nu meestal het geval is, maar ook bij een dienstverlener.
Software-as-a-service

Met deze definitie maken we gelijk onderscheid met allerlei andere vormen van flexibele en externe it-voorzieningen. Software-as-a-service, of saas, omhelst het aanbieden van softwaretoepassingen over het internet. Concreet betekent dit niet meer dan dat gebruikers naar een portal gaan waar ze inloggen om hun werkzaamheden via een webinterface uit te voeren. De gegevens blijven gewoon op de systemen van de aanbieder staan.

Het meest kenmerkende van saas is echter niet die webinterface. Ook talloze interne applicaties zijn de afgelopen jaren immers van client-server naar webservice omgebouwd. Nieuw aan saas is vooral het betaalmodel. Waar je voorheen een licentie voor het gebruik van een bepaald pakket kocht, betaal je nu abonnementskosten, bijvoorbeeld per maand per gebruiker.

Het bekendste voorbeeld van een saas-aanbieder is Salesforce.com. Zij bieden crm op afstand aan. Applicatie-ontwikkelaars kunnen bovendien op force.com hun eigen toepassingen bouwen, een dienst die weer onder 'paas' of platform-as-a-service valt. Een Nederlands voorbeeld is Twinfield, een online aanbieder van boekhoudsoftware voor het mkb.
Utility computing

Ook utility computing moet hier genoemd worden. In feite is dat wat je overhoudt op het moment dat je cloud computing zo plat mogelijk slaat en daar een prijskaartje aan hangt. De naam is afgeleid van 'public utility', het Engelse woord voor nutsdienst.

Sun, tegenwoordig onderdeel van Oracle, kwam een paar jaar geleden met zijn network.com-portal. Daar kon je verwerkingskracht en opslagcapaciteit afnemen voor respectievelijk een dollar per processor per uur en een dollar per gigabyte per maand.

Helaas voor Sun was er geen belangstelling voor deze dienst. Het waren dan ook vooral de eigen partners waarmee het bedrijf zich probeerde te profileren. De twee meest gehoorde bezwaren tegen network.com waren het gebrek aan aanvullende diensten en de hoge prijzen. Inmiddels is de portal ook niet meer bereikbaar.

(http://ic.tweakimg.net/ext/i/imagenormal/1278336646.jpeg)

Virtualisatie
Servervirtualisatie

Het moge duidelijk zijn dat het concept van cloud computing niet zou bestaan zonder virtualisatie. Vanuit infrastructuur-perspectief bezien is cloud computing niet meer dan een logisch vervolg op de virtualisatietrend van de afgelopen jaren.

De eerste stap daarin was de virtualisatie van de servers. Vijf jaar geleden zaten alle datacenters vol 'pizzadozen', oftewel 1U-servers, waarvan maar een fractie van de capaciteit werd benut. Die situatie was ontstaan omdat systeembeheerders voor elke nieuwe toepassing een nieuwe server installeerden. Met name het stabiel houden van applicaties onder Windows, dat immers niet als multitasking-besturingssysteem was ontworpen, maakte deze opzet noodzakelijk.

Toen kwam de hypervisor van VMware. Deze maakte het mogelijk complete besturingssystemen naast elkaar op dezelfde computer te draaien. Nadat eerst Xen en vervolgens Microsoft daar een gratis alternatief naast zetten, verschoof dat belang naar de management stack. In combinatie met de virtualisatie van opslag en netwerken is dat precies wat cloud computing mogelijk maakt.
Virtualization automation

Servervirtualisatie heeft het operating system met de daarop draaiende applicatie enerzijds en de onderliggende hardware anderzijds van elkaar losgekoppeld. Die ontwikkeling is de motor achter de opkomst van bladesystemen. HP en IBM hebben feitelijk de oude pizzabox-servers op hun kant gezet en samengepakt in grote chassis. Door koeling, voeding en i/o te delen, werd de hardware zowel zuiniger als compacter. Om al die virtuele machines te kunnen draaien, zijn virtualisatieservers wel een heel stuk zwaarder dan hun voorgangers. Ze hebben vaak twee of vier processors en een flinke sloot geheugen.

Bladesystemen moet je in dit verband dan ook zien als grote blokken geconcentreerde rekenkracht. Ze worden bovendien per chassis beheerd. Waar een applicatie precies draait, is niet meer van belang. De managementsoftware laat je virtuele machines kopiëren, starten, stoppen en verplaatsen, zoals bij VMotion. Daarmee is het concept van het afzonderlijk identificeerbare serversysteem aan het verdwijnen.

(http://ic.tweakimg.net/ext/i/imagenormal/1094196162.png)

Met het doorontwikkelen van de management-software zien we dat het beheer van de virtuele machines steeds verder geautomatiseerd wordt. Zo kan bijvoorbeeld op basis van policy's worden besloten dat virtuele machines over meer servers worden verspreid als blijkt dat een bepaalde applicatie meer capaciteit nodig heeft. In de stille uurtjes kunnen virtuele machines juist weer worden samengepakt op een kleiner aantal systemen, zodat de niet gebruikte hardware uitgeschakeld kan worden, wat energie bespaart. Voor horizontaal schaalbare applicaties - denk aan webservers - zou je, afhankelijk van de drukte, ook het aantal actieve virtuele machines automatisch kunnen laten opschalen.

Dynamiek

Cloud computing draait dus om de dynamiek die ontstaat als je de executie van virtuele machines automatiseert. Waar een applicatie, al dan niet op een virtuele machine, precies draait, weet je uiteindelijk niet eens meer. In de management-interface worden alleen de virtuele machines en hun gevirtualiseerde resources beheerd. De plaatsing op de fysieke infrastructuur wordt op basis van de ingestelde policy's verzorgd door de achterliggende software.

Dat is waar de termen interne, externe en hybride cloud vandaan komen. Als je als beheerder de onderliggende hardware toch niet ziet, dan maakt het ook niet meer uit welke vorm die heeft en waar die zich bevindt. Je kunt er bijvoorbeeld voor kiezen om een basis-infrastructuur in het eigen rekencentrum aan te houden voor de snelheid en voor kerntoepassingen. Voor minder belangrijke processen of als fallback kun je die aanvullen met capaciteit van een externe dienstverlener.

Toekomstmuziek en publieke clouds
Toekomstmuziek

De cloud-infrastructuur zoals die in dit artikel wordt geschetst, is voor de meeste toepassingen nog toekomstmuziek. Wel is het een belangrijke trend om in het achterhoofd te houden als je met je datacenter bezig bent. Deze boodschap wordt vooral door HP uitgedragen. Dit bedrijf is momenteel leider in de markt voor bladesystemen en heeft zelfs de ambitie uitgesproken om in de toekomst al zijn systemen te 'verbladen'.

Een veelgehoord advies is om, anticiperend op deze ontwikkeling, de huidige infrastructuur alvast als een cloud te organiseren. In de praktijk betekent dat: zoveel mogelijk virtualiseren.

Server-virtualisatie is echter het 'laaghangende fruit'; de volgende fase is de virtualisatie van de desktop - en dat is ingewikkelder. De hardware wordt nu immers van de desktop verplaatst naar het rekencentrum. Alleen de interface wordt over het netwerk naar thin clients gebracht. Hierbij vinden echter nog volop ontwikkelingen plaats, met name als het om de protocollen voor grafische applicaties gaat.

Hetzelfde geldt voor het ontkoppelen van applicaties en operating system. Bij de virtualisatie van de desktop wordt niet alleen de fat client in tweeën geknipt. Ook de verschillende applicaties worden van elkaar en van het besturingssysteem gescheiden. Dat betekent dat toepassingen als aparte packages worden beheerd en tezamen met de gebruikersspecifieke instellingen met een besturingssysteem worden gecombineerd op het moment dat een gebruiker daar om vraagt. Dit heet application streaming.
Publieke clouds

De Elastic Compute Cloud- of EC2-dienst van Amazon geeft een goed beeld van hoe een publieke cloud er uit kan zien. Gebruikers kunnen virtuele machines in het op Xen gebaseerde AMI-formaat naar de cloud uploaden. Beheer daarvan geschiedt via een web-interface, de zogeheten AWS Management Console. Voor de geautomatiseerde aansturing is een api in de vorm van een web-service beschikbaar - en afrekenen doe je met je creditcard.

(http://ic.tweakimg.net/ext/i/imagenormal/1228993523.png)

Over het aantal gebruikers van zijn AWS-diensten wil Amazon niks kwijt. In het laatste jaarverslag geeft het bedrijf alleen aan dat deze diensten harder groeien dan ooit. Naar verluidt gaat het inmiddels om vele tienduizenden, misschien een paar honderdduizend gebruikers. Veel daarvan zijn bovendien geen startups of kleine bedrijven die geen eigen infrastructuur willen onderhouden: het gaat ook om grote ondernemingen die AWS op projectbasis inzetten.

Diegenen die daar aan gerekend hebben, komen echter tot de conclusie dat de Amazon-cloud voor permanent gebruik duurder is dan een eigen infrastructuur. Bovendien zijn er klachten met betrekking tot stabiliteit en beschikbaarheid; virtuele machines hebben regelmatig last van trage netwerkverbindingen, crashes en 'noisy neighbours' - virtuele machines van anderen die op dezelfde fysieke server draaien en zoveel capaciteit gebruiken dat jouw diensten trager worden. Ten slotte is ook mail een probleem: omdat de cloud inmiddels is gebruikt om spam te versturen, zijn de Amazon-adressen door online spam-filters geblokkeerd.

Randy Bias van CloudScaling maakte eind vorig jaar een inschatting van Amazon's EC2-business. Volgens hem heeft het bedrijf daarvoor veertigduizend servers draaien, waarvan twintig procent voor eigen gebruik door Amazon is gereserveerd. Op de rest draaien naar schatting tachtigduizend virtuele machines, goed voor een jaarlijkse omzet van een kwart miljard dollar.
Platform-as-a-service

Microsoft biedt met Windows Azure een Windows-variant om applicaties in zijn  datacenters te draaien. Deze leverancier richt zich in zijn marketingboodschap met name op kostenbesparingen doordat gebruikers niet meer hoeven na te denken over systeembeheer en patch management.

Nadeel van deze twee paas-aanbieders is dat je hiermee nog steeds afhankelijk bent van de leverancier. Sterker nog: omdat je bij het programmeren de specifieke mogelijkheden van deze omgevingen zal gebruiken, zit je met je applicatie muurvast aan een aanbieder. Bij iaas speelt dat niet: een virtuele machine kun je immers gemakkelijk bij een andere dienstverlener onderbrengen.

Omdat je voor het gebruik van clouds geen initiële investeringen in hardware hoeft te doen, lijken biede mogelijkheden op dit moment met name interessant voor startups met meer goede ideeën dan middelen.
Reservecapaciteit

Het is niet toevallig dat bedrijven als Amazon, Microsoft en Google als eerste met dergelijke diensten komen. Ze opereren op een zo grote schaal dat ze enorme hoeveelheden computer-resources als reservecapaciteit moeten aanhouden. Bovendien kunnen ze vanwege die schaal hun infrastructuur enorm efficiënt beheren. Met name Google staat bekend om zijn goedkope, op maat gemaakte hardware.

In feite is dit het omgekeerde model van de externe cloud: waar interne-cloudeigenaren hun tekort aan resources kunnen aanvullen met externe capaciteit, zetten grootverbruikers van verwerkingskracht hun overcapaciteit in de markt. De schaalgrootte van hun bestaande operaties stelt hen bovendien in staat om dat goedkoop te doen. Scott McNealy heeft wel eens gezegd dat de Sun Cloud in feite bestaat uit nieuwe systemen die zo hun burn-in-test krijgen. Vervolgens wordt de hardware uiteraard alsnog tegen nieuwprijs aan de klant geleverd.

Dichter bij huis zijn het de datacenter-dienstverleners en de grote it-leveranciers die daadwerkelijk met cloud-diensten komen. Deze diensten passen immers prima in een portfolio van hosting, housing en colocatie. Of deze diensten succesvol zullen zijn, is eigenlijk al geen vraag meer; de vraag is vooral wie de clouddiensten met de beste prijs-prestatieverhouding kan leveren.