Tagsoftware development

De voordelen van cloud computing: het business-plaatje

Een blij wolkje, thanks to http://mezzoblue.com

Redenen om blij te worden

Nu dat we weten wat cloud computing is, zou ik het graag even hebben over de voordelen ervan. Waarom zou iemand cloud computing gebruiken of waarom juist niet? Op deze vragen probeer ik in deze en een volgende blogpost een antwoord te formuleren. Vandaag bekijken we de (business) voordelen van cloud computing [1, 2, 3, 4, 5]. Wat heeft een cloud te bieden aan zijn gebruikers en leveranciers en wat zijn de motivaties voor beiden om voor cloud computing te kiezen?:

Pay-per-use”: Het belangrijkste voordeel is het “pay-per-use” betalingsschema, soms ook aangeduid met “pay-as-you-go”. Een klant moet enkel betalen voor hetgeen hij verbruikt heeft binnen een bepaalde tijdsperiode. Bovendien moet dit verbruik niet uniform verdeeld zijn over de tijd. Zo kost het evenveel om 100 (virtuele) computers gedurende één uur te laten rekenen als één computer gedurende honderd uren. Je kan dit vergelijken met een huurmodel. De huurprijs gaat meestal per uur, per byte of per CPU-cyclus. Een neveneffect hiervan is dat het programmeurs aanspoort om efficiënter te programmeren (efficiëntere code => minder CPU cyclussen => minder kosten) wat ook de schaalbaarheid van de applicatie ten goede komt.

De gemiddelde ‘huurprijs’ per uur van één virtuele server in een cloud ligt meestal hoger dan als je zelf investeert in de aankoop van hardware voor een gelijkaardige server [2]. Waarom zou je dan kiezen voor cloud computing als het duurder is? Enerzijds omdat een applicatie meestal niet van elk IT-middel (bandbreedte, rekenkracht of opslagcapaciteit) evenveel gebruik maakt. Omdat je enkel moet betalen wat je gebruikt, kan het goedkoper uitkomen. Andere redenen liggen in de verschillende andere voordelen die cloud computing biedt. De meesten hiervan zijn een gevolg van dit “pay-per-use” betalingsschema.

Geen initiële investering of verbintenis nodig: Naast “pay-per-use” is een ander groot voordeel het ontbreken van een initiële investeringskost en een lange verbintenis aan een bepaalde leverancier. Hierdoor kunnen ook kleine bedrijven eenvoudig beschikken over een hoogwaardige IT-infrastructuur om hun applicaties op te draaien met een beperkter risico (zie verder). Veel innovatieve bedrijven zoals bijvoorbeeld Dropbox hebben hun bestaan hieraan te danken. Het ontbreken van een initiële investering maakt het ook mogelijk om sneller applicaties beschikbaar te stellen (kleinere “time-to-market”) of sneller te reageren op een veranderende markt (bv. de opkomende mobiele applicaties).

Dankzij de lage instapkosten biedt cloud computing ook veel potentieel voor derdewereldlanden. Zo besteedde de regering van Ethiopië het beheer van 250 000 laptops voor het onderwijssysteem uit aan een cloud dienstenleverancier 1. De laptops zijn allen verbonden met een cloudplatform waardoor ze eenvoudig studentengegevens en lesmateriaal kunnen delen zonder dat er een duur en performant datacentrum voor gebouwd moest worden. Vanuit het centrale beheer van de dienstenleverancier worden ook telkens de laatste nieuwe software en lespakketten beschikbaar gesteld.

Overdragen van risico’s: Een derde belangrijk voordeel is dat de klant verschillende grote risico’s overdraagt naar zijn dienstenleverancier. Deze voordelen zijn vooral van belang indien de klant het cloudplatform van de dienstenleverancier gebruikt om zelf applicaties ter beschikking te stellen. Om de voordelen te illustreren, beschouw ik het voorbeeld van een reisbureau dat een online reservatiesysteem beschikbaar stelt:

  • Het risico op ondercapaciteit: Het gebruik van het online reservatiesysteem varieert sterk in de tijd. Tijdens de periodes van de vroegboekkortingen (januari-februari) en van de last minutes (juni-juli) zijn er twee grote pieken in het aantal gebruikers. Het datacentrum van het reisbureau moet dus voldoende capaciteit hebben om deze pieken op te vangen. Indien de piek onverwachts groot is of de populariteit van het reisbureau sterk is toegenomen, zal het datacentrum overbelast geraken en zal het online reservatiesysteem tijdelijk niet beschikbaar zijn. Hierdoor zullen verschillende klanten niet bediend kunnen worden waardoor ze mogelijk (permanent) naar de concurrentie gaan. We maken niet rechtstreeks verlies maar we hebben wel een grote opportuniteitskost. Cloud computing laat echter toe om heel snel en dynamisch en soms ook automatisch de IT-capaciteit te doen toenemen. En door de (schijnbaar) oneindige beschikbare capaciteit van een cloud, kan elke piek worden opgevangen.
  • Het risico op overcapaciteit: Buiten de piekperiodes of door een daling van de populariteit heeft ons reisbureau echter weinig online reservaties. Veel van de capaciteit van het datacentrum wordt niet gebruikt ondanks dat het wel bijdraagt aan de kosten voor onderhoud, elektriciteit, koeling… Bovendien kan het geld dat geïnvesteerd werd in de (over)capaciteit van het datacentrum nu niet ergens anders voor gebruikt worden. We zouden het datacentrum kunnen afbouwen, maar het vervroegd afschrijven van de servers brengt ook een kost met zich mee. In het cloud computing model is het niet alleen mogelijk om snel de IT-capaciteit te doen toenemen, maar ook om deze kosteloos (en soms ook automatisch) te doen afnemen als de piek voorbij is. Op deze manier neemt cloud computing het risico op overcapaciteit weg.
  • Het risico op hardware problemen: Ook het risico op hardware die het laat afweten, wordt bij de dienstenleverancier gelegd. Het is zijn verantwoordelijkheid om zijn dienst, en bijgevolg ook het online reservatiesysteem van het reisbureau, beschikbaar te houden volgens de overeengekomen SLA (Service-Level Agreement).
  • Het risico op cyberaanvallen: Gelijkaardig aan het vorige risico, is het de verantwoordelijkheid van de dienstenleverancier om cyberaanvallen die de goede werking van de dienst in gevaar brengen, af te wenden. Een cloud dienstenleverancier zal meestal ook gespecialiseerde software en hardware gebruiken om dergelijke gevallen te voorkomen. Een kanttekening die ik hierbij moet maken, is dat een cloud dienstenleverancier mogelijk de applicatie van een klant offline haalt om de applicaties van zijn andere klanten die op dezelfde cloud (en dus hardware) werken, te beschermen.

Het overdragen van risico’s brengt een zekere kost met zich mee. Het is ook hierdoor dat de gemiddelde huurprijs van een virtuele server in een cloud meestal hoger ligt dan de gemiddelde kost van de eigen servers. Maar omdat cloud dienstenleverancier op zeer grote schaal werken, kunnen kleine tot middelgrote bedrijven met een eigen datacentrum nooit hetzelfde niveau van bescherming en beschikbaarheid halen.

Eenvoudige toegang: Cloud gebaseerde applicaties in het SaaS model zijn altijd en overal ter wereld beschikbaar, iets wat voor hun lokale tegenhangers zeker niet altijd geldt. Omdat de documenten die deze cloud applicaties gebruiken zich ook in de cloud bevinden, is het delen van of samenwerken aan deze documenten veel eenvoudiger.

Economy of scale: Als je een dienst beschikbaar maakt via de cloud (eventueel gebruikmakend van een dienst van een andere cloudleverancier), is het beheer van je applicatie veel eenvoudiger en is de potentiële markt veel groter. Bovendien ontwikkel je je applicatie best zodat het gebruik ervan zo weinig mogelijk interactie vraagt met jou als dienstleverancier. Hierdoor kan je veel meer klanten (op een automatische manier) bedienen wat zorgt voor meer winst dankzij “economy of scale”. Bovendien is het dan mogelijk om je dienst goedkoper aan te bieden met een kleinere winstmarge. Dit samen met de lage instapkosten dankzij het pay-per-use betalingsschema, zorgt voor nog meer klanten die voordien een dergelijke dienst niet konden veroorloven (deze groep klanten wordt ook wel “the long tail” genoemd). Uiteindelijk levert dit nog meer schaalvoordelen op.

Eenvoudigere ontwikkeling, beheer en levering: Bij de ontwikkeling van on-premises software (software die bij de klant geïnstalleerd wordt), is de diversiteit aan hardware, besturingssystemen en applicatieomgevingen een factor die leidt tot extra moeilijkheden. Maar ook deze IT-infrastructuur en de besturingssystemen moeten worden onderhouden. Elke update aan één van deze systemen heeft gevolgen voor alle applicaties die op deze systemen steunen met mogelijk extra aanpassingen en uitgebreide tests tot gevolg. SaaS applicaties zijn specifiek ontwikkeld voor één cloudplatform waardoor de diversiteitsmoeilijkheden verdwijnen. Daarnaast kunnen updates aan SaaS applicaties eenvoudiger worden uitgevoerd en zijn deze automatisch beschikbaar voor alle klanten. Ook in het IaaS en PaaS model worden nieuwe hardware- en softwaretechnologieën automatisch beschikbaar als deze door de dienstenleverancier geïnstalleerd worden.

Beperken van de ecologische voetafdruk: Cloud computing steunt op het gedeeld gebruik van IT-middelen. Hierdoor zijn er in het totaal minder IT-middelen nodig en dus ook minder energieverbruik. Bovendien is het ook goedkoper en energiezuiniger om data en berekeningen te transporteren dan het transporteren van de energie nodig voor die berekeningen [1, 2].

Enorme rekenkracht: Een laatste belangrijk voordeel van cloud computing is het feit dat het kleine en middelgrote bedrijven in staat stelt om zeer complexe en rekenintensieve bedrijfsanalyses of data mining uit te voeren zonder een grote investering in de benodigde hardware. Indien de berekeningen gemakkelijk paralleliseerbaar zijn, kunnen ze bovendien ook in veel kortere tijd worden uitgevoerd (bv. je verdeelt de berekening over 100 virtuele servers die je 1 uur huurt).

Elke van deze voordelen kan een argument zijn om voor cloud computing te kiezen. Maar er zijn ook verschillende redenen om niet voor cloud computing te kiezen. Dat is dan ook het onderwerp voor mijn volgende post waarin ik de belangrijkste valkuilen van de cloud zal bespreken. Heb ik iets over het hoofd gezien en weet je zelf nog andere voordelen van cloud computing? Of nog andere opmerkingen of suggesties? Twijfel dan niet om onderaan een berichtje achter te laten!

Referenties

[1] S. Marston, Z. Li, S. Bandyopadhyay, J. Zhang, and A. Ghalsasi, “Cloud computing – The business perspective,” Decis. Support Syst., vol. 51, pp. 176 – 189, Apr. 2011.

[2] M. Armbrust, A. Fox, R. Griffith, A. D. Joseph, R. Katz, A. Konwinski, G. Lee, D. A. Patterson, A. Rabkin, I. Stoica, and M. Zaharia, “Above the clouds: A berkeley view of cloud computing,” Feb 2009.

[3] Q. Zhang, L. Cheng, and R. Boutaba, “Cloud computing: state-of-the-art and research challenges,” Journal of Internet Services and Applications, vol. 1, pp. 7 – 18, May 2010.

[4] B. Hayes, “Cloud computing,” Commun. ACM, vol. 51, pp. 9 – 11, July 2008.

[5] F. Chong and G. Carraro, “Architecture strategies for catching the long tail,” tech. rep., Microsoft Corporation, 2006. http://msdn.microsoft.com/en-us/library/aa479069.aspx.

LaTeX Template for Use Cases

This is just a quick post about a \LaTeX template I recently created. I’m currently doing a project on Software Architecture (designing a big and complicated application) and we had to write lots and lots of use cases. I searched the Internet for a nice \LaTeX template or environment to write my use cases in, but I couldn’t find one. Therefor I created my own usecases package that adds an environment to write use cases in. I based my package on this post. You can download the template, style file and an example PDF HERE.

To use the package, please follow these steps:

  1. Drop the file usecases.sty in the same folder as your root \LaTeX file.
  2. Include the usecases package in the preamble of your root file with the command:
    \usepackage{usecases}
  3. Within your document, you can now use the usecase environment (make sure to take a look at the template file)

I’ll also give you a short manual:

  • \begin{usecase} ... \end{usecase}: These commands define the use case. All the following commands should be within this environment.
  • \addtitle{Use Case X}{Title}: This should be the first command you use in the use case environment. You can use it to show the use case number and the title.
  • \addfield{Property:}{Value}: With this command, you can add a line with a use case specification. For example preconditions, postconditions, scope…
  • \additemizedfield{Property:}{\item Value}: This command is similar to the \addfieldcommand but the values (must) appear in a bullet list.
  • \addscenario{Scenario Name:}{\item Xth step}: Here you can specify the main (or an alternative) use case scenario. There are examples of both in the template.

In the file usecases.sty you can easily change the style for the use cases. The template you can download is based on the use case template presented in the book Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development (3rd Edition) by Craig Larman. Don’t expect too much of this template, I just created it for my project.

I hope this is useful to someone!

DOWNLOAD TEMPLATE >>>

© 2017 Tom's Webspace

Theme by Anders NorénUp ↑