Zonder twijfel is Gartner verantwoordelijk voor veel buzzwoorden in it. Als het analistenbureau iets knap doet, dan is het wel het hangen van labeltjes aan trends die tot dan toe nog niet echt benoemd zijn in ons vakgebied. Denk aan Bimodal it: het gedachtegoed leefde eigenlijk al langer, maar het was Gartner die de trend benoemde, duidde en groot maakte.
Het gaat echter niet altijd goed. Denk bijvoorbeeld aan de Device Mesh, dat door Gartner eind 2015 werd gepresenteerd als een van de trends voor 2016. We kunnen nu inmiddels wel stellen dat dit buzz-woord het niet helemaal gehaald heeft.
Een paar jaar eerder, in 2013, introduceerde Gartner de term web-scale it. De analisten zagen dat steeds meer bedrijven de inrichting van hun it-systemen zouden afkijken van grote tech-bedrijven als Amazon, Google, Netflix en Spotify. Het ging daarbij niet alleen om de schaalgrootte van it, maar ook over het feit dat deze bedrijven de flexibiliteit hebben om continu met een korte time-to-market wijzigingen door te voeren zonder dat de beschikbaarheid in het gedrang komt. Volgens Gartner was web-scale it niet alleen meer voorbehouden aan de Silicon Valley-reuzen, maar konden ook kleinere en middelgrote bedrijven voordelen halen uit de snelheid en flexibiliteit van web-scale it.
Niet aangeslagen
De term web-scale is niet enorm aangeslagen. Als je it’ers vraagt wat het betekent, dan krijg je waarschijnlijk verschillende antwoorden. Dat komt wellicht doordat de term nooit heel concreet is gemaakt, ook niet door Gartner; wat houdt web-scale op functioneel en technisch niveau nu precies in? Web-scale is meer een visie dan een praktische aanpak. Maar dat hoeft op zich geen probleem te zijn, want hetzelfde kan worden gezegd over Bimodal it.
Waar web-scale vooral last van heeft gehad, is dat er verschillende termen zijn die min of meer op hetzelfde principe neerkomen, zoals hyperscale, cloud native, reactive of webscale architecture. Al deze benaderingen komen op hetzelfde neer: het ontwikkelen van applicaties die gemakkelijk kunnen worden uitgeschaald en geschikt zijn voor grote hoeveelheden gebruikers. Schaalbaarheid, beschikbaarheid en flexibiliteit, daar draait het om.
Enorme opmars
Toch durf ik te stellen dat web-scale wel degelijk bezig is aan een enorme opmars. Alleen: het is een ontwikkeling die met name te zien is op het vlak van it-architectuur. Kijk maar eens naar de manier waarop Google, Facebook en Spotify zich hebben ontwikkeld tot web-scale organisaties: software-architectuur heeft hier een grote rol in gespeeld. Het succes van de software die ze ontwikkelen is voor een groot deel afhankelijk van de manier waarop deze software tot stand is gekomen.
Het is daarom interessant om web-scale niet te zien als een breed begrip, maar als een architectuur-principe. Noem het web-scale architecture: een software-architectuur die een organisatie in staat stelt om op een Agile manier systemen te bouwen met een hoge mate van beschikbaarheid en flexibiliteit, en daarbij een continuous delivery-werkwijze en DevOps ondersteunt.
Samen met ons architecture-team hebben we ons over die kwestie gebogen. Waaruit bestaat web-scale architecture? We zien het als een verzameling van patterns en practices die niet allemaal even nieuw zijn, maar samen enablers zijn van web-scale architecture:
- Domain Driven Design – systemen worden volledig ontworpen en gebouwd rond domeinen die bekend zijn in de business
- Microservices – autonome specifieke services werken in deze architectuurstijl samen en communiceren asynchroon
- CQRS – mutaties en lees-acties worden in dit software-pattern strikt van elkaar gescheiden
- Event driven architecture – een architectuurstijl waarbij applicaties met elkaar communiceren via events (asynchroon)
- Event sourcing – een aanpak waarbij de state van een object wordt opgeslagen als een lijst met de events die in de tijd zijn opgetreden, niet in een genormaliseerd databaseschema
- Polyglot ‘X’ – per situatie of context wordt de best passende technologie-stack en opslagmethodiek gehanteerd (ook binnen één systeem).
- NoSQL – gegevens worden niet opgeslagen in een relationeel model, maar op een andere manier (bijvoorbeeld als documenten of als een graaf van objecten).
- Eventual consistency – beschikbaarheid van een systeem belangrijker maken dan het feit dat elke gebruiker op elk moment in de tijd over de nieuwste versie van alle gegevens beschikt.
- Actor model – een manier om systemen te bouwen die een grote workload aan kunnen door het verdelen van de workload over verschillende actors (parallellisatie).
Het is niet zo dat al deze onderdelen noodzakelijk zijn voor een web-scale architecture; wel zou je kunnen zeggen dat al deze patterns en practices samen een zuivere, ideale web-scale architecture-aanpak vertegenwoordigen. Sterker nog: om deze visie op web-scale architecture uiteen te zetten, hebben we een fictief verhaal op papier moeten zetten in de vorm van een roman. Organisaties die al deze principes tegelijkertijd toepassen, zijn namelijk erg schaars.
Voor de lange termijn
Het is ook niet iets wat je als organisatie van de ene op de andere dag voor elkaar krijgt. Web-scale architecture is een principe dat voor de lange termijn moet worden ingevoerd. Het vergt ook een andere manier van benaderen van problemen. Dat betekent dat teams de ruimte moeten krijgen om te leren, te experimenteren en deadlines te missen. Zeker voor microservices geldt dat; het principe achter deze services is min of meer dat je ze altijd moet kunnen weggooien en opnieuw kunt ontwikkelen. Het gaat hierbij dus niet alleen om de technologie, maar om een andere mindset.
De schaalbaarheid, flexibiliteit en altijd beschikbare it die wordt nagestreefd in web-scale it is, kortom, alleen mogelijk met een web-scale architectuur. Laten we het onderwerp voortaan dan ook vooral uit architectuur-oogpunt benaderen, want de belofte die web-scale met zich meebrengt is te mooi om de term in de vergetelheid te laten verdwijnen.
Edwin van Wijk, principal software architect bij Info Support.
Klinkt een beetje als hardcore Henri, al jaren terug.
De profetie voorspelde immers stateless webservices architectuur.
Lekker horizontal loosely coupled asynchroon en alles komt goed.
Webscale-it, het spel van de goden. Het blijft vaag.
De heilige 3-1heid van scalability, reliability en security.
Wie er niet in gelooft vermoedt al wel dat er iets is..
haha, klinkt bijna als een compliment.