Hoe kies je het beste cloud model?

De voor-en nadelen van alle cloud modellen op een rij

Worstel je met de vraag of cloud-hosting de beste oplossing voor je bedrijf is en hoe je het juiste cloud-model kiest? Deze problematiek speelt bij meer van onze klanten. In dit artikel leg ik uit waar je rekening mee moet houden als je voor de cloud kiest. Bovendien licht ik de verschillen per model toe, zodat je als developer eenvoudiger de juiste keuze maakt.

Cloud-leveranciers investeren voortdurend in hun platform, in Microsoft Azure of Amazon AWS. Bovendien moedigen ze bedrijven aan om software voor de cloud te ontwikkelen, te hosten, of om zelfs rechtstreeks in de cloud te werken. Hierdoor komen er steeds meer services beschikbaar in de cloud.

Desondanks durven veel bedrijven de cloud nog niet te omarmen. Dat komt voornamelijk omdat ze er nog niet genoeg vanaf weten, niet goed weten hoe om te gaan met privacygevoelige data of gewoonweg de stap niet maken omdat de concurrent het ook niet doet. Dat is zonde, want bedrijven lopen hierdoor interessante kansen mis.

Hieronder laat ik zien dat er alle reden is om de cloud te omarmen. Eerst leg ik kort uit wat de cloud precies inhoudt en welke modellen er zijn. Daarvan benoem ik de voor- en nadelen. Hierna ga ik in op de kosten voor beheer en onderhoud van ieder model. Vervolgens bespreek ik de belangrijkste overwegingen bij de keuze tussen de modellen. Ik sluit af met een aantal tips.

Wat is “de cloud” eigenlijk?

De cloud is, simpel gezegd, een wereldwijde online opslagunit waar software en gegevens samenkomen. Als afnemer kun je CPU-kracht, geheugen en opslag claimen en die gebruiken voor het uitvoeren van applicaties. Zijn er extra resources nodig om een applicatie goed te laten functioneren? Dan kun je de applicatie zowel horizontaal als verticaal opschalen.

  • Horizontaal schalen is vergelijkbaar met het bijplaatsen van een extra server zodat de load van de primaire server ontlast wordt. Er wordt ook wel gesproken over schalen in de breedte.
  • Verticaal schalen is het schalen van de server met extra hardware. De server blijft operationeel en er komt extra CPU-kracht of geheugen bij om de load op te vangen. Dit heet ook wel schalen in de hoogte.

In ieder cloud-model is zowel horizontaal als verticaal schalen mogelijk. Er zijn drie verschillende cloud-modellen:

  1. SaaS - Software as a Service
  2. PaaS - Platform as a Service
  3. IaaS - Infrastructure as a Service

SaaS - Software as a Service

Bij SaaS wordt alleen de software gefaciliteerd. Bekende voorbeelden zijn Office365, Visual Studio Team Services en SharePoint online.
Het-SaaS-cloud-model.png

Voordelen

  • SaaS is schaalbaar: naarmate de bedrijfsbehoefte groeit, kan de capaciteit eenvoudig worden aangepast door de softwareleverancier.
  • De software is snel en eenvoudig te gebruiken vanaf elk apparaat.
  • De aanloopkosten zijn lager omdat er geen investering in hardware of software nodig is.
  • De softwareleverancier zorgt voor alle technische aspecten, jij hebt er geen omkijken naar.
  • Beveiligings- en back-upstrategieën zijn standaard aanwezig. Bij een storing op de primaire server neemt de secundaire server het bijvoorbeeld meteen over.
  • Je hebt automatisch beschikking over de laatste software-updates.
  • De maandelijkse kosten zijn gebaseerd op het daadwerkelijke verbruik per maand.
  • Je hebt geen onderhouds- en beheerkosten.

Nadelen

  • SaaS is generieke software: de leverancier kan maar beperkte aanpassingsmogelijkheden bieden.
  • De beveiliging van de cloud-omgeving is afhankelijk van de softwareleverancier. Als bedrijf heb je hier geen controle over.
  • Je bent afhankelijk van de softwareleverancier. Gaat de leverancier bijvoorbeeld failliet? Dan kan het zijn dat de toegang tot het cloud-platform verloren gaat.
  • Slaat de softwareleverancier de data op buiten Europa? Dan moet er extra aandacht worden besteed aan dataprivacy. Denk aan een mogelijkheid om de data te exporteren.

PaaS - Platform as a Service

Bij PaaS is het mogelijk om een complete ontwikkel- en deploymentomgeving op te zetten. Je kunt met de services die Microsoft Azure biedt applicaties op het platform hosten zonder dat er onderhoud of operationele handelingen nodig zijn. Voorbeelden van PaaS-services zijn: Azure AppService, SQL Azure en Azure Search.
Het-PaaS-cloud-model.png

Voordelen

  • PaaS is schaalbaar: de capaciteit kan worden aangepast naarmate de bedrijfsbehoefte groeit. Zowel horizontaal als verticaal schalen kan hier van toepassing zijn. Afhankelijk van de abonnementsvorm die de service hanteert, behoort ook automatisch schalen tot de mogelijkheden.
  • Het platform wordt tijdens de gehele applicatielevenscyclus van de cloud-toepassing gebruikt: bouwen, testen, deployment, managen, monitoren en updaten.
  • De clouddiensten hebben een hoge betrouwbaarheid. Zijn er storingen in de cloud? Dan wordt er direct een andere server gestart om de cloudapplicatie actief te houden, zonder dat er sprake is van downtime.
  • Cloud-ontwikkelaars halen een hogere productiviteit. Features en bugs kunnen sneller worden opgepakt, wat de time-to-market verkort.
  • De maandelijkse kosten zijn gebaseerd op het daadwerkelijke verbruik per maand.
  • Er zijn geen onderhouds- en beheerkosten voor de onderliggende software en virtualisatie van besturingssystemen. Onderhoud en beheer is alleen nodig voor de eigen ontwikkelde software.
  • Je kunt eenvoudig een nieuwe omgeving opzetten met “infrastructure as code”. Wordt een omgeving niet of nauwelijks gebruikt? Dan kan het resourcegebruik worden verlaagd of de omgeving worden verwijderd.

Nadelen

  • Ontwikkelaars moeten bekend zijn met het gebruik van PaaS-componenten.
  • Er is extra aandacht nodig voor dataprivacy wanneer de data buiten Europa wordt opgeslagen.
  • Doordat er verschillende services beschikbaar zijn om tot dezelfde oplossing te komen, kan de complexiteit van de infrastructuur behoorlijk toenemen.
  • Niet alle CPU-kracht en geheugen wordt toegewezen aan de cloudapplicatie. Dat komt omdat er veelal op een gedeeld platform gehost wordt, waardoor een andere applicatie mogelijk gebruikmaakt van dezelfde resources.
  • Voor integratie met bestaande systemen is een maatwerkoplossing nodig.

IaaS - Infrastructure as a Service

IaaS lijkt het meest op een on-premise hostingimplementatie zoals die in het verleden binnen het eigen bedrijf of in een datacenter opgezet zijn. Het gaat hier met name om het gebruik van virtuele servers.
Het-IaaS-cloud-model.png

Voordelen

  • Je hebt volledige controle over de virtuele machine: software die niet in een PaaS-omgeving kan worden geïnstalleerd, kan dat hier wel.
  • De gehoste applicaties hebben alle CPU-kracht en geheugen ter beschikking om complexe operaties uit te voeren.
  • Integratie met andere clouddiensten of on-premise enterprise-infrastructuur is eenvoudig.

Nadelen

  • IaaS kost in verhouding met de andere cloud-modellen het meest: elke CPU-cyclus en al het gebruik van geheugen en opslag  wordt doorberekend aan de afnemer.
  • Dataprivacy is een aandachtspunt wanneer de data buiten Europa wordt opgeslagen.
  • Als afnemer ben je zelf verantwoordelijk voor het inregelen van een beveiligings- en back-upstrategie.
  • Je hebt geen controle over waar de virtuele machine nu precies wordt gehost in het datacenter.
  • Het configureren van de infrastructuur kost meer tijd.
  • Softwaredeployments naar een virtuele machine gaan lastiger.

Wat kost het?

Voor zowel SaaS, PaaS als IaaS geldt: je betaalt wat je gebruikt. De kosten voor een clouddienst zijn evenredig naar het gebruik ervan. De lead-ontwikkelaar of architect moet daarom vooraf goed nadenken over de keuze voor een cloud-model en bijbehorende services.

Beheer en onderhoud

In elk cloud-model is onderhoud en beheer nodig. Soms is dit de verantwoordelijkheid van de afnemer, soms van de leverancier. Wie in welk model waarvoor verantwoordelijk is, zie je in onderstaand schema.
Overzicht-verantwoordelijkheden-bij-verschillende-cloud-modellen.png

On Premises

In beheer en onderhoud het duurst. Hierbij komen nog de kosten voor de aanschaf van de hardware waarop de software moet draaien. Daar staat tegenover dat je de volledige controle hebt over de omgeving.

IaaS

Wat betreft beheer en onderhoud de op een na duurste oplossing. Je neemt de virtuele servers af bij Microsoft en hoeft daarom geen hardware aan te schaffen. Microsoft is verantwoordelijk voor de hardware en de virtualisatie. Jij bent verantwoordelijk voor alle services die van toepassing zijn op de infrastructuur.

PaaS

De op een na goedkoopste oplossing op het gebied van beheer en onderhoud. Microsoft is verantwoordelijk voor de hardware, het virtualiseren van machines en de besturingssystemen. Jij neemt alleen services af die worden aangeboden op een van de virtuele servers en die direct bruikbaar zijn voor ontwikkelingen. Deze cloud-oplossing is met name interessant voor ontwikkelaars. Zij hebben dan ook de verantwoordelijkheid voor de applicatie en de componenten die gebruikt worden.

SaaS

De goedkoopste oplossing als het gaat om beheer en onderhoud. Microsoft verzorgt al het beheer en onderhoud, jij kunt de software slechts gebruiken. Je hebt dus niet de mogelijkheid om de software aan te passen.

Welk cloud-model moet ik gebruiken voor mijn klantoplossing?

SaaS kun je meestal overslaan, tenzij de klant geïnteresseerd is in Office365, Visual Studio Team Services, SharePoint online of een ander web-gebaseerde SaaS-oplossing. Als dit niet het geval is, dan kun je het PaaS-first-principe toepassen. Hierbij kijk je allereerst of PaaS geschikt is voor het vraagstuk van je klant. De volgende vragen helpen je om een keuze te maken tussen PaaS of IaaS:

Gaat het om een nieuwe of bestaande applicatie?
Bij een bestaande applicatie moet je eerst kijken of deze afhankelijk is van bijvoorbeeld een ander softwarepakket of het besturingssysteem. Zo ja, dan is IaaS, zonder software-aanpassing, de beste optie. Wil je toch kiezen voor PaaS? De applicatie kan dan PaaS-ready worden gemaakt door de afhankelijkheden van het softwarepakket of het besturingssysteem te scheiden van de applicatie.
Bij een nieuwe applicatie kun je direct kiezen voor een PaaS-oplossing, op voorwaarde dat een softwarepakket zoals Kentico, EPiServer of Sitecore wordt gebruikt. Anders moet er gekeken worden of het gekozen softwarepakket PaaS-ready is.

Zijn er processen die veel CPU of geheugen nodig hebben?
Complexe berekeningen kunnen veel CPU-kracht of geheugen vragen. Meestal is dit een langdurig proces, denk aan het verwerken van transacties. Als er geen sprake is van complexe processen, is een PaaS-oplossing een goede keuze. In het geval van complexe processen gaat de voorkeur uit naar een IaaS-oplossing in de vorm van een virtuele machine of een (klassieke) worker role.

Is er privacygevoelige data aanwezig?
Bij privacygevoelige data kan het zijn dat je klant deze in het eigen datacenter wil hebben. Dat kan met een hybride cloud. Dit is bij voorkeur een PaaS- of anders een IaaS-oplossing waarbij de privacygevoelige data on-premise staan, terwijl de applicatie in de cloud wordt gehost. Zo profiteer je dus ook van alle voordelen van de cloud.
Microsoft-Azure-Expressroute.png

Cloud first ontwikkelen of niet?
Grote softwareleveranciers als Sitecore, EPiServer en Kentico maken hun software steeds meer cloud-compatible. Deze CMS-systemen worden dan als PaaS of IaaS gehost in de cloud, waarmee de leveranciers je de aanschaf van hardware en het inrichten ervan uit handen nemen. Wanneer nodig kan er zowel horizontaal als verticaal worden opgeschaald, wat het functioneren van de applicatie ten goede komt. Meebewegen met de grote jongens is in dit geval een must, en daarom ontkom je niet aan cloud-ontwikkeling.

Ik sluit af met een aantal tips:

  • Houd rekening met het gebruik van bestaande software. Controleer altijd eerst of het mogelijk is om bestaande software in de cloud te hosten. In een PaaS-omgeving heb je bijvoorbeeld geen toegang tot de root van de harde schijf.
  • Als lead-ontwikkelaar of architect is het ontzettend belangrijk dat je op de hoogte bent van de cloud-infrastructuurmogelijkheden.
  • Maak vooraf een architectuurplaat met kostenoverzicht en argumentatie. Op die manier is het voor zowel je klant als medeontwikkelaars duidelijk hoe de infrastructuur van de applicatie eruitziet en kan het bedrijf een goed afgewogen besluit nemen. Een handige tool voor kostenindicaties is Microsoft Azure Calculator.
  • Probeer, waar mogelijk, cloud-patronen te hanteren of te combineren.
  • IaaS kan altijd, maar toets je oplossing eerst aan het PaaS-model.

Interessante bronnen:

Meer weten over cloud-hosting?

Pascal is een van onze cloud-experts en de auteur van dit artikel. Twijfel je over de beste keuze voor jouw organisatie? Stuur Pascal een mailtje, hij helpt je graag op weg.

Blijf op de hoogte!

Met onze Aviva updates krijg je belangrijk nieuws, interessante artikelen en handige tips als eerste direct in je mailbox. Meld je direct aan!