Iedere ontwikkelaar de juiste cloud [Dutch]

Featured on Computable.nl on Oct 14, 2013.

Het kiezen van het juiste platform, anders gezegd de juiste publieke cloud dienstverlening, is essentieel om de productiviteit van ontwikkelaars alsmede de kwaliteit van het geleverde werk te maximaliseren. Met het vervagen van de scheidslijnen tussen IaaS, PaaS en SaaS verdient het aanbeveling om de keuze te baseren op zowel de detailkenmerken van de beschikbare dienstverlening alsook de kenmerken van de ontwikkelaars binnen de organisatie.

Applicatieontwikkelaars maken gebruik van publieke cloud platforms met gevirtualiseerde infrastructuurcomponenten, frameworks, runtime environment, tools en consoles die hen in staat stellen om zeer snel applicaties te ontwikkelen, testen, deployen en onderhouden. Onder publieke cloud platforms verstaan we de in hoge mate gestandaardiseerde dienstverlening op basis van publiekelijk beschikbare en toegankelijke cloud oplossingen voor het ontwikkelen, testen, draaien en beheren van applicaties. Dergelijke dienstverlening maakt gebruikt van een multi-tenant infrastructuur resource pool, biedt self-provisioning, snelle elasticiteit en maakt het mogelijk het gebruik van resources te meten. Misschien zijn deze laatste twee zinnen voor velen van ons overbodig, maar in ons ict-wereldje waarin we de veelal irritante neiging hebben om overal maar ‘buzzwords’ op te plakken vinden we het belangrijk om aan deze breed gebruikte NIST-definitie van cloud computing te refereren.

Het kiezen van het juiste platform, anders gezegd de juiste set aan publieke cloud diensten, is een essentiële keuze om de productiviteit van ontwikkelaars alsmede de kwaliteit van het geleverde werk te maximaliseren. Publieke cloud diensten worden veelal onderverdeeld in de welbekende drie smaken Infrastructure-as-a-Service (IaaS), Platform-as-a-Service (PaaS) en Software-as-a-Service (SaaS). Een onderverdeling die weliswaar zijn waarde heeft, zoals ieder model c.q. iedere poging tot structureren wel zijn waarde heeft, maar die steeds moeilijker in stand te houden is.

Scheidslijnen vervagen

De scheidslijnen tussen IaaS, PaaS en SaaS vervagen steeds meer nu aanbieders van, in dit geval op applicateontwikkelaars gerichte, publieke cloud diensten de scope van hun dienstverlening uitbreiden. In de laatst verschenen Forrester Wave voor Enterprise Public Cloud Platforms (Q2 2013) zien we dat PaaS verder onderverdeeld wordt in ‘IaaS+ platforms’, ‘PaaS- platforms’, en ‘SaaS extension platforms’.

- ‘IaaS+ platforms’: IaaS dienstverleners voegen functionaliteit toe om ontwikkelaars een hogere abstractielaag te geven, met gehoste middleware en ontwikkeltools. Deze ‘bottom-up’-ontwikkeling is terug te zien bij bijvoorbeeld Terramark, AWS met zijn CloudFormation, Elastic Beanstalk en Opswork, alsook bij IBM met de SmartCloud Enterprise Application Services-dienstverlening en het toevoegen van Cloud Foundry aan het recent overgenomen SoftLayer.

- ‘PaaS- platforms’: PaaS dienstverleners gaan de de ‘diepte’ in door naast hun platform abstractielaag-gebruikers nu ook de mogelijkheid te geven om onderdelen van de onderliggende infrastructuur te benaderen, configureren en besturen. Deze ‘top-down’-benadering geldt bijvoorbeeld voor Heroku, één van de cloud platforms van salesforce.com, en Engine Yard. Afhankelijk van de mate waarin PaaS-dienstverleners deze stap maken kun je in sommige gevallen ook simpelweg stellen dat ze IaaS-leverancier worden, Microsoft is hier een voorbeeld van, evenals Google met naast zijn App Engine nu ook Compute Engine.

- ‘SaaS extension platforms’: SaaS-dienstverleners maken vanuit hun applicatie de stap naar het als dienst beschikbaar stellen van een ontwikkelplatform. Salesforce.com heeft dit gedaan met Force.com. Andere voorbeelden zijn Intuit, NetSuit en Workday. Maar wat moet je nou kiezen, als organisatie, als je de ontwikkelaars het beste platform wilt geven? Dat hangt natuurlijk sterk af van het type ontwikkelaar.

- ‘Harde code jockeys’: dit zijn ontwikkelaars,die zich bijn voorkeur 100 procent willen richten op het zelf schrijven van de applicatiecode en zich vooral niet willen bezighouden met het configureren en onderhouden van applicatieservers, databaseservers, et cetera. Dat neemt niet weg dat ze zich in hun zoektocht naar de optimale performance soms over infrastructuurvraagstukken zullen moeten buigen. Maar bij voorkeur doen ze dat dan samen met een infrastructuurspecialist in de ontwikkelfase van de applicatiecode. Dit soort ontwikkelaars wil een ontwikkelplatform waarmee men snel kan werken en waarbij een heleboel infrastructuurkeuzes eigenlijk gewoonweg automatisch voor hen worden gemaakt. Dan kom je dus uit op PaaS- danwel IaaS+-dienstverlening

- ‘Prototypers’: dit zijn onder andere de beoefenaars van ‘iterative application development’ (iad) en ‘rapid application development’ (rad). Deze ontwikkelaars programmeren liever op een hoger abstractieniveau en maken graag gebruik van kant-en-klare libraries van componentservices, grafische geautomatiseerde (vierde en vijfde generatie) ontwikkeltools, et cetera. Men heeft veelal geen behoefte om zich bezig te houden met het besturen van de gevirtualiseerde infrastructuur, noch het configureren van middleware en de applicatieontwikkeltools. Voor deze groep ontwikelaars zijn PaaS-platforms met zeer uitgebreide functionaliteit alsook SaaS extension-platforms ideaal;

- ‘End-to-end experts’: dit zijn ontwikkelaars die bij voorkeur zelf sterke invloed uitoefenen op het configureren van de applicatieserver(s), de databaseserver(s) en soms zelf directe toegang willen tot onderdelen van de virtuele infrastructuur zoals vm’s en storage. Deze groep voelt zich niet alleen verantwoordelijk voor de ontwikkeling van de applicatiefunctionaliteit, maar ook het runnen van de applicaties volgens een rijke set aan non-functional requirements, Men heeft veel minder behoefte aan grafische tools en is meestal geen liefhebber van het abstraheren van de infrastructuurlaag. Voor deze groep kunnen zowel PaaS alsook IaaS en IaaS+-platforms een goede keuze zijn.

Welk type ontwikkelaar ben jij? En bij welk soort cloud platform voel jij je prettig? Of ontkom je er niet aan om een mix van verschillende cloud platforms, met verschillende programmeertalen en ontwikkelframeworks? Zeker bij ontwikkelaars speelt ‘empowerment’ een belangrijke rol, maar hoe maak je als organisatie de juiste keuze en hoe dwing je hem af? We zijn benieuwd naar ieders ervaringen!

By Marc Steenbergen (@masteenb) and Edwin Schouten (@schoutene).

One thought on “Iedere ontwikkelaar de juiste cloud [Dutch]”

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s