Management

Cloud

Publieke clouddiensten vooral geschikt voor projecten

7 december 2011

De leveranciers leggen respectievelijk in hun Elastic Compute Cloud (EC2), Google App Engine (GAE) en Windows Azure dan ook niet de nadruk op prijs en beschikbaarheid maar op toegankelijkheid en schaalbaarheid. Hoewel deze diensten alle drie gebruikersapplicaties hosten, doen ze dat steeds op een hele andere manier.

EC2 valt onder de IaaS-vlag (Infrastructure-as-a-Service). Daarbij worden gestandaardiseerde virtuele machines op de infrastructuur van Amazon gedraaid. Windows Azure is een applicatieontwikkelomgeving waarbij .NET wordt uitgebreid met cloudspecifieke libraries en services. De nadruk ligt daarbij op hybride infrastructuren van lokale en online systemen. De App Engine ten slotte biedt een ontwikkel- en deploymentomgeving voor cloudgebaseerde web-applicaties geschreven in de taal Python. Daarmee vallen die laatste twee in de PaaS-categorie: Platform-as-a-Service.

Elastic Compute Cloud

Klanten van Amazon kunnen virtuele machines met daarop hun eigen applicaties uploaden naar de cloud. Voor deze zogenaamde Amazon Machine Images (AMI’s) wordt een op Xen gebaseerd formaat gebruikt. Alle tools voor het maken van deze images zijn beschikbaar op de website van Amazon. De meeste mensen zullen echter van start gaan met een van de voorgebakken AMI’s. Amazon zelf biedt vooral oudere versies van Linux en Windows aan. Voor recentere images of andere platforms kan men terecht bij een van de andere AMI-aanbieders.

Na het bouwen of selecteren van de juiste AMI’s is het slechts een kwestie van opstarten. Daarvoor kan gekozen worden uit zeven verschillende virtuele hardwareconfiguraties, variërend in verwerkingskracht en geheugencapaciteit. Om de beschikbaarheid te verhogen kunnen de instanties (de draaiende AMI’s) op verschillende locaties worden ondergebracht. Amazon heeft rekencentra in vijf verschillende regio’s: twee in de VS, twee in Azië en een in Ierland. Daarbinnen zijn weer verschillende Availability Zones beschikbaar: gescheiden en onafhankelijke datacenters. Ten slotte kunnen de instanties weer verder worden georganiseerd in verschillende Security Groups. Zo kunnen verschillende beveiligingslagen worden gebouwd.

Google App Engine

Waar Amazon zijn klanten een platform voor complete virtuele machines aanbiedt, doet Google dat voor losse webapplicaties. De App Engine (GAE) is een online ontwikkel- en deploymentomgeving voor gedistribueerde webapplicaties. Naast Python worden inmiddels ook Java- en Go-programma’s ondersteund. Google levert zelf een Software Development Kit (SDK) voor alle drie de talen en een plug-in voor de Eclipse IDE (Integrated Development Environment). Ook andere talen die naar Java-bytecode kunnen worden omgezet, kunnen op GAE worden uitgevoerd.

Google levert een eigen Python framework, maar in principe kunnen alle raamwerken die zich conformeren aan de Web Server Gateway Interface (WSGI) worden ingezet. Deze standaard is vergelijkbaar met CGI (Common Gateway Interface) maar specifiek bedoeld voor Python-programma’s. Java-toepassingen werken op basis van de Servlet-interface.

Windows Azure

Het Azure-platform is een hele constellatie van software en diensten. De kern is Windows Azure, een Windows-systeem- en -ontwikkelomgeving voorzien van extra faciliteiten voor gebruik in de cloud. Waar Amazon met standaardbelastingunits werkt, hanteert Microsoft vijf verschillende virtuele machine-instanties. Gebruikers betalen per uur.

Naast een geclusterd en gevirtualiseerd .NET-platform zijn er diverse smaken opslag beschikbaar: Blobs, Queues, Table (NoSQL) en SQL Azure (Database). Die laatste is een cloudversie van SQL Server. Daarmee concurreert SQL Azure met de relationele cloudstorage van Amazon. Hun Relational Database Service (RDS) ondersteunt zowel MySQL als Oracle.

De derde pijler onder Azure is de AppFabric-middleware, waarmee lokale en online Windows-systemen aan elkaar kunnen worden geknoopt. Windows-domeinen en netwerken kunnen met elkaar worden verbonden. Daarnaast zijn er AppFabric API’s beschikbaar voor Java en Ruby.

Het programmeren van Azure-toepassingen doe je vanuit Visual Studio tegen het .NET Framework (en ASP.NET) aan. C# is dan de meest voor de hand liggende programmeertaal, maar in principe kunnen alle CLI-talen (Common Language Infrastructure) worden gebruikt: onder andere C/C++, Python, Ruby en JavaScript. Maar Microsoft ondersteunt ook Java en PHP/Eclipse.

Azure integreert met de Online Services van Microsoft: Office, Exchange en SharePoint (de Business Productivity Online Suite (BPOS), opgevolgd door Microsoft Office 365). Daarmee is dit een voorbeeld van Software plus Services (S+S), waarbij lokale software wordt gecombineerd met online diensten.

Windows Azure is op dit moment beschikbaar in meer dan veertig landen. De systemen draaien in Microsofts eigen datacenters, soms in containers. In de helft daarvan wordt ook SQL Azure aangeboden. Microsoft biedt ook een marktplaats waar programmeurs en gebruikers softwarecomponenten, complete applicaties, data, webservices en diensten kunnen verhandelen.

Afrekenen

Betalen geschiedt voor al deze diensten op basis van verbruik. Bij registratie moet direct een creditcard worden opgegeven. De berekening van de kosten is wel steeds heel verschillend.

Amazon hanteert voor de verbruikte CPU cycles de EC2 Compute Unit (ECU). Verschillende instanties verbruiken een bepaald aantal ECU’s per uur. Daarnaast worden kosten in rekening gebracht voor het dataverkeer naar internet en tussen verschillende regio’s.

Bij Google is de eerste gigabyte aan opslag en het verkeer voor ongeveer vijf miljoen pageviews gratis. Daarboven betaal je voor verwerkingskracht, opslag, transacties en verkeer.

Microsoft ten slotte laat zijn ontwikkelaars de eerste drie maanden gratis kennismaken met het Azure-platform. Hun Free Trial biedt 750 uur per maand aan verwerkingskracht op een Small-instantie, twintig gigabyte aan opslag en een SQL Azure database van één gigabyte. Daarboven en daarna betaal je per uur voor een server en per gigabyte per maand voor opslag. Daar komen dan nog aanvullende kosten voor databases, verkeer, verbindingen, transacties en caching bij.

Dat laat gelijk zien hoe moeilijk het is om op voorhand de kosten van deze cloudplatforms te bepalen. Er moet niet alleen worden betaald per virtuele machine en per gigabyte aan opslag en verkeer, maar bijvoorbeeld ook voor specifieke API calls. En daarmee raken we aan een modelmatig probleem: de opbrengsten van (kostentechnisch) efficiënte cloudapplicaties liggen bij de eigenaar terwijl de kosten daarvoor bij de (externe) programmeur liggen.

Die meerkosten vallen overigens weer in het niet bij het werk dat het porten van een bestaande applicatie naar de cloud met zich mee zou brengen. Waar je op je eigen infrastructuur veelal relationele databases zult gebruiken, wil je in de cloud liever met de horizontaal schaalbare NoSQL-databases aan de slag. Dat vraagt echter wel een hele andere (nieuwe) opzet van je software.

Service levels

Belangrijkste reden om applicaties in de cloud onder te brengen, is dat aanbieders een belangrijk deel van het onderhoud, het beheer en de deployment overnemen, net als load balancing, caching, clustering, fail-over, back-up, monitoring en logging. Opvallend genoeg leggen leveranciers niet de nadruk op prijs en beschikbaarheid maar op toegankelijkheid en schaalbaarheid van hun platform. Analisten zijn dan ook niet onverdeeld positief over de volwassenheid van de huidige proposities. Diensten liggen er regelmatig uit, en hun eigen, universeel geldende service level agreements (SLA’s) zetten aanbieders bepaald niet aan tot verbeteringen.

Zo biedt Amazon 10 procent korting als de beschikbaarheid over het afgelopen jaar onder de 99,95 procent daalt. Microsoft levert dezelfde uptime, maar dan wel op basis van een redundante server. Worden de beloofde niveaus deze maand niet gehaald, dan krijgt een gebruiker volgende maand 10 procent korting. Dat wordt 25 procent als de uptime een nog hele orde van grootte daaronder ligt.

Ook Google biedt 10 procent korting als de beschikbaarheid onder de 99,95 procent zakt. Een uptime twee ordes van grootte lager (99 procent) resulteert in een korting van 25 procent, en een beschikbaarheid lager dan 95 procent in een korting van 50 procent. Om dat laatste concreet te maken: dat gebeurt pas wanneer de Google App Engine in een maand minstens anderhalf etmaal volledig onbereikbaar was.

Spin-offs

Conclusie is dan ook dat deze clouddiensten met name geschikt zijn voor niet-kritische toepassingen en projecten. Schaalbaarheid is hun belangrijkste eigenschap, en dat is niet toevallig. En welk platform je dan kiest, hangt erg af van de expertise en de systemen die je al in huis hebt, en in hoeverre de nieuwe applicaties met lokale services moeten integreren. Mogelijk kunnen de bestaande cases daarbij een aanwijzing zijn. Microsoft noemt als klanten onder andere 3M, NASA, SugarCRM, T-Mobile en Xerox, veelal traditionele klanten. Amazon wordt onder andere gebruikt door Foursquare, Reddit, Hootsuite, Quora en Netflix, allemaal van de dotcom-generatie. En Google ten slotte laat weten wel klanten te hebben maar behalve de projectsite van Accenture ter gelegenheid van het huwelijk van de Britse prins William geen namen te kunnen noemen.

 
Lees het hele artikel
Je kunt dit artikel lezen nadat je bent ingelogd. Ben je nieuw bij AG Connect, registreer je dan gratis!

Registreren

  • Direct toegang tot AGConnect.nl
  • Dagelijks een AGConnect nieuwsbrief
  • 30 dagen onbeperkte toegang tot AGConnect.nl

Ben je abonnee, maar heb je nog geen account? Laat de klantenservice je terugbellen!