GraphQL: een hype of een zegen? Meet the Ordina expert

Bart Wullems

Softwareontwikkelaars zijn niet sociaal vaardig? Dan kent u de Ordina-developers nog niet. Zij combineren hun liefde voor IT met een flinke portie communicatieskills en mensenkennis. Neem nu Bart Wullems, die sinds 2007 application developer is in onze Microsoft-businessunit. Hij is een graag geziene spreker op seminaries en klanten zijn enthousiast over zijn inlevingsvermogen. Zelden kregen we zo’n heldere uitleg over GraphQL, een van de nieuwste sterren aan het developers-firmament, als van Bart.

In een beknopte bio die Bart aanleverde voor een event lezen we dat hij ‘gelooft dat software de wereld zal redden’. En toch kruiste IT eerder toevallig zijn pad. “Het was niet echt een bewuste keuze”, geeft hij toe. “Ik werd industrieel ingenieur elektronica. Toen ik in mijn laatste jaar een stageplaats moest kiezen, kwam ik bij IT-speler Dolmen terecht.” Het bleek de perfecte match.

Cloudplatform avant la lettre

Bart bouwde samen met een medestudent een cloudplatform voor Dolmen, lang voor er sprake was van het woord cloudcomputing. Ze vielen ermee in de prijzen. “We mochten ons idee pitchen op een wedstrijd van de Vlaamse Overheid en werden tot onze verbazing derde”, herinnert Bart zich. Zo sprong het project ook in het oog van Universiteit Gent, die Bart een doctoraat aanbood. Bart gaf de voorkeur aan het bedrijfsleven en kreeg een vast contract bij Dolmen.

Innovatieve apps voor VTM

Het eerste project dat Dolmen hem na zijn traineeship voorstelde, was er eentje waar veel IT’ers in de vroege jaren 2000 enkel van konden dromen. “VTM wou een toepassing om het zendschema automatisch te plannen op basis van reclame-inkomsten en een soort robot om de programma’s automatisch op te starten. Beide opdrachten waren behoorlijk pittig voor een beginner maar tegelijk ontzettend tof. Ik mocht met de allernieuwste technologie werken. En over de middag kon ik lunchen naast Dina Tersago,” lacht Bart. Na de opdrachten voor VTM ontwikkelde hij een mobiele app voor stockbeheer in Windows Mobile – in die tijd hét platform voormobiele ontwikkeling. In 2007 ruilde Bart Dolmen in voor Ordina.

De evolutie van development

De basis van Ordina was toen nog detachering en het bedrijf was regionaal georganiseerd. Toen Ordina besloot om de knowhow van zijn experten te bundelen in businessunits sloot Bart zich aan bij het Microsoft-team. Onder die vlag ontwikkelt hij projecten voor de meest diverse klanten: van marketingbureaus en nutsbedrijven tot overheidsinstellingen. Hij zag het concept van IT-ontwikkeling in die 12 jaar drastisch veranderen: “Een traditioneel traject bestond vroeger uit zes maanden analyse en twee jaar ontwikkelen, implementeren en testen. Daarna moest het systeem zeker tien jaar meegaan. Zo’n projecten zijn er niet meer. Omdat de markt, de klantennoden en ook de regelgeving constant wijzigen, moeten IT-systemen en applicaties veel flexibeler worden bijgewerkt. Minstens om de zes maanden, zeg maar.”

Vroeger moesten systemen zeker tien jaar mee gaan. Omdat de markt, de klantennoden en ook de regelgeving constant wijzigen, moeten ze nu veel flexibeler kunnen worden bijgewerkt.

Microservices voor meer flexibiliteit

Om aan die roep naar flexibiliteit te voldoen, gebruiken Bart en zijn collega’s microservices in plaats van de monolithische architectuur die in het verleden gangbaar was. “Microservices zijn kleine bouwblokjes/applicaties die samenwerken als één grote applicatie”, legt Bart uit. Hij illustreert met het voorbeeld van Netflix, een van de eerste grote spelers die met microservices aan de slag ging: “In de plaats van één grote applicatie worden de zoekfunctie, bestelfunctie, autorisatiefunctie, enz. allemaal apart ontwikkeld. Ze communiceren met elkaar via een reeks definities en protocollen: API’s of Application Programming Interfaces.”

De voordelen? Zijn er wijzigingen aan je applicatie nodig, dan moet je het volledige platform niet langer vervangen: je vervangt gewoon de betrokken microservices. Bovendien kan je elke microservice in een andere technologie bouwen, want ze werken sowieso probleemloos samen dankzij de API. Kortom: microservices helpen om sneller te ontwikkelen, je platform sneller aan te passen en vlotter te schalen.

De complexiteit van microservices

Maar elk voordeel heeft zijn nadeel: microservices botsen steeds vaker tegen hun limieten aan. Bart legt uit waarom: “Een applicatie kan uit honderden microservices bestaan. Voor de startpagina van Netflix op je scherm komt, bijvoorbeeld, zijn er al tussen de 70 à 150 microservices aangesproken om die pagina samen te stellen. Elke ontwikkelaar bouwt zijn microservices enigszins anders op en applicaties moeten vandaag op alsmaar meer frontends draaien – van tv tot mobiele devices. Elk van die frontends heeft andere data nodig, die via andere API’s en microservices worden opgevraagd. Dat is een ingewikkelde puzzel.”

Voor de Netflix-startpagina op je scherm komt zijn er al tussen de 70 à 150 microservices aangesproken om die pagina samen te stellen.

GraphQL voert meer structuur in

Grote spelers zoals Netflix, Google, Amazon en Facebook worstelen al jaren met die complexiteit. Facebook werkte een oplossing uit die ondertussen omarmd wordt door ontwikkelaars wereldwijd: GraphQL (Query Language). “GraphQL brengt structuur in de manier waarop je microservices/API’s bouwt en welke data elke microservice zal aanleveren”, aldus Bart. Hij illustreert met het voorbeeld van Netflix: “De developers bij Netflix bepalen bijvoorbeeld welke microservice welke data zal aanspreken bij het suggereren van films op de homepage van een gebruiker. Ze stellen die informatie grafisch voor in een boomstructuur (tree) met aftakkingen (nodes). In het verhaal van de recommendations die Netflix geeft, is de film die wordt voorgesteld zo’n eerste node, daar zijn acteurs aan gelinkt en aan elke acteur hangen weer films. Dankzij die structuur verloopt de data-uitwisseling tussen de backend en de frontendapplicaties eenvoudiger en efficiënter.”

GraphQL brengt structuur in de manier waarop je microservices bouwt en data opvraagt. Zo verloopt de data-uitwisseling tussen de backend en de frontend eenvoudiger en efficiënter.

Efficiënt en flexibel

Ook aan de frontendkant zorgt GraphQL voor veel meer flexibiliteit. “De frontendontwikkelaar zal beschrijven welke data hij wil weergeven op welk device. Hij bepaalt dus bijvoorbeeld dat je op een mobiel toestel enkel de titels van Netflix-films zal zien, maar op een tv-scherm wel de titel én de beschrijving. Zo weet de frontendapplicatie heel duidelijk welke data uit de backend nodig zijn. Met één enkele query krijgt de frontend dan de data die het nodig heeft, niet meer en niet minder. Dit laat de gebruikers in principe ook toe om te selecteren welke data ze op hun scherm willen zien. Dat is ontzettend handig. Voor GraphQL kon dat niet.”

De frontend haalt met één enkel verzoek de data op die het nodig heeft. Niet meer en niet minder.

GraphQL in de praktijk

Bart is zo enthousiast over GraphQL dat Ordina het framework al toepast bij een grote klant, voor wie Ordina al twee jaar applicaties ontwikkelt. “Deze klant beschikt over onvoorstelbaar veel data die vaak letterlijk van levensbelang is. Die data willen ze op alsmaar meer devices beschikbaar stellen. Zo botsen we op de beperkingen van microservices. Toen ik het concept van GraphQL voorstelde, kregen we snel groen licht. We hebben nu een GraphQL-laag op de applicaties geplaatst, zodat we vlotter alle data kunnen ontsluiten in functie van elk toestel.”

Uit liefde voor de klant

Van initiators Facebook tot Netflix, Google en Amazon: allemaal hebben ze GraphQL ondertussen ontdekt. Het ecosysteem van tools en libraries groeit. Terecht, vindt Bart. Hij doet zijn best om zowel collega’s als klanten in GraphQL in te wijden: “Ik wil geen nieuwe technologie invoeren gewoon omdat het nieuw is. Wel om klanten te helpen. Dat is misschien wel wat deze job voor mij zo boeiend maakt: techniek inzetten om de noden van onze klanten echt in te lossen. Ook daarom ben ik zo enthousiast over GraphQL. Ik ben al ontzettend lang actief in IT maar soms kom je een technologie tegen waarvan je denkt: “Dat is het. Dat lost de problemen van onze klanten echt op. Dat moet ik aan iedereen vertellen. Bij deze: iedere ontwikkelaar moet GraphQL uitproberen!”

Ik ben al ontzettend lang actief in IT maar soms kom je iets tegen waarvan je denkt: Dat is het. Dat lost alles op. Dat moet ik aan iedereen vertellen.


Wil je hier meer over weten? Contacteer onze expert.