GraphQL: Effet de mode ou véritable atout? Notre expert Ordina vous en dit plus

Bart Wullems

Si vous pensez que les développeurs logiciels ont du mal avec les interactions sociales, c’est que vous ne connaissez pas encore les experts d’Ordina. En effet, hormis une ardente passion pour l’informatique, ils possèdent également de solides compétences en communication et une connaissance approfondie de l’être humain, à l’instar de Bart Wullems, développeur d’applications dans notre division Microsoft depuis 2007. Orateur très apprécié lors des séminaires, celui-ci séduit également les clients par son empathie. D’ailleurs, jamais personne ne nous avait expliqué plus clairement ce qu’était GraphQL, l’une des nouvelles étoiles qui brillent au firmament des développeurs.

Dans une courte biographie que B. Wullems avait fournie pour un événement, on peut lire qu’il a la conviction que « les logiciels sauveront le monde ». Cocasse lorsque l’on sait que ce n’est que par hasard qu’il est tombé dans l’informatique. « Ce n’est pas un choix conscient, concède-t-il. À l’origine, j’ai fait des études d’ingénieur industriel en électronique. Et lorsque j’ai dû trouver un stage en dernière année, j’ai atterri chez Dolmen, une entreprise spécialisée dans l’informatique. » Cette expérience est apparue comme une véritable révélation.

Une plateforme cloud avant la lettre

Bien avant que l’on parle de cloud computing, B. Wullems a construit une plateforme cloud pour Dolmen avec l’aide de l’un de ses condisciples. Un beau projet qui leur a valu d’être récompensés. « Nous avons pu présenter notre idée lors d’un concours organisé par les autorités flamandes. À notre grande surprise, nous sommes arrivés troisièmes », se souvient B. Wullems. L’université de Gand a elle aussi eu vent du projet et a même proposé un doctorat à notre ingénieur industriel. Ce dernier a cependant souhaité privilégier la vie en entreprise en décrochant un contrat fixe chez Dolmen.

Des applications innovantes pour VTM

Le premier projet que B. Wullems s’est vu proposer après son stage était un projet dont beaucoup d’informaticiens dans les années 2000 n’auraient pu que rêver. « VTM avait besoin d’une application pour automatiser la planification du schéma de diffusion selon les revenus publicitaires ainsi que d’une espèce de robot pour lancer les programmes de manière automatique. Si ces deux projets étaient plutôt corsés pour un débutant, ils étaient aussi très passionnants. J’ai pu travailler avec les technologies les plus modernes. Et le midi, je prenais mon déjeuner à côté de Dina Tersago », explique B. Wullems en riant. Après ces deux projets, il a travaillé au développement d’une application mobile destiné à la gestion des stocks dans Windows Mobile, à l’époque la plateforme par excellence pour le développement mobile. En 2007, B. Wullems quitte Dolmen et rejoint Ordina.

L’évolution du développement

En 2007, Ordina fonctionnait encore sur la base du détachement du personnel et l’entreprise était organisée au niveau régional. Cependant, elle a ensuite décidé de rassembler le savoir-faire de ses experts en divisions, et c’est là que B. Wullems a intégré l’équipe Microsoft. Une bannière sous laquelle il a développé des projets pour une masse diversifiée de clients, de bureaux marketing à des institutions gouvernementales, en passant par des entreprises d’utilité publique. Au cours de ces douze années, il a assisté à une profonde évolution du développement informatique : « Auparavant, un trajet classique était composé de six mois d’analyse et de deux ans de développement, d’implémentation et d’essais. Il fallait ensuite que le système tienne au moins dix ans. Force est de constater que de tels projets n’existent plus aujourd’hui. En raison de l’évolution constante du marché, des besoins des clients et de la réglementation, les systèmes informatiques et les applications doivent en effet pouvoir subir des ajustements avec beaucoup plus de souplesse. Disons, au moins tous les six mois. »

Auparavant, les systèmes devaient tenir au moins dix ans. Cependant, en raison de l’évolution constante du marché, des besoins des clients et de la réglementation, ils doivent à présent pouvoir subir des ajustements avec beaucoup plus de souplesse.

Des microservices pour une plus grande flexibilité

Afin de répondre à ce besoin de flexibilité, B. Wullems et ses collègues privilégient les microservices à une architecture monolithique, qui était la norme par le passé. « Les microservices sont de petits blocs constitutifs ou de petites applications qui fonctionnent comme une seule et grande application », explique B. Wullems. Il illustre cette idée en prenant l’exemple de Netflix, l’un des premiers grands acteurs à avoir recouru aux microservices : « Au lieu d’une seule et grande application, les fonctions de recherche, de commande, d’autorisation, etc. sont développées séparément. Elles communiquent entre elles par le biais de définitions et de protocoles. Il s’agit des fameuses interfaces de programmation d’applications (Application Programming Interfaces ou API). »

Ce procédé comporte des avantages. Par exemple, si vous devez apporter des modifications à votre application, vous ne devez plus remplacer toute la plateforme, mais uniquement les microservices concernés. En outre, il est possible de développer chaque microservice dans une technologique différente, étant donné que les API s’occupent ensuite de les faire interagir. Pour résumer, les microservices permettent d’accélérer la phase de développement, d’adapter n’importe quelle plateforme plus rapidement et de la faire évoluer plus facilement.

La complexité des microservices

Néanmoins, chaque avantage comporte également un inconvénient. Les microservices atteignent en effet toujours plus rapidement leurs limites. B. Wullems nous explique pourquoi : « Une application peut compter jusqu’à plusieurs centaines de microservices. Le simple affichage de la page d’accueil de Netflix, par exemple, requiert déjà l’utilisation de 70 à 150 microservices. Or chaque développeur développe ses microservices à sa sauce, sans compter que les applications (des téléviseurs aux appareils mobiles) doivent tourner sur toujours plus de front-ends. Chacun de ces front-ends nécessite l’utilisation de données différentes, requises par le biais d’autres API et microservices. Tout cela donne un bel imbroglio. »

Le simple affichage de la page d’accueil de Netflix requiert déjà l’utilisation de 70 à 150 microservices.

GraphQL met de l’ordre

Les grands acteurs comme Netflix, Google, Amazon et Facebook se heurtent à cette complexité depuis des années. Cependant, Facebook a élaboré une solution, adoptée entre-temps par les développeurs du monde entier. Cette solution s’appelle GraphQL (Query Language). « GraphQL permet de structurer la façon de construire les microservices/API et ainsi de déterminer quelles données chaque microservice acheminera », explique B. Wullems. Il poursuit sur l’exemple de Netflix : « Les développeurs de Netflix décident notamment quelles données chaque microservice ira rechercher dans le cadre des recommandations de films sur la page d’accueil d’un utilisateur. Ils représentent ces informations de manière graphique dans une arborescence (tree) qui présente des embranchements (nodes). En ce qui concerne les recommandations faites par Netflix, le film recommandé représente un premier node, auquel sont rattachés des acteurs, eux-mêmes reliés à d’autres films. Grâce à cette structure, l’échange de données entre les applications back-end et front-end est beaucoup plus simple et efficace. »

GraphQL permet de structurer la façon de construire les microservices/API et de rechercher les données. De cette façon, l’échange de données entre le back-end et le front-end est beaucoup plus simple et efficace.

Efficacité et flexibilité

GraphQL garantit également une plus grande flexibilité sur le plan front-end. « Le développeur front-end va indiquer les données qu’ils souhaitent afficher sur quels appareils. Par exemple, il peut décider de n’afficher que les titres des films Netflix sur un appareil mobile, mais d’y ajouter le synopsis sur un téléviseur. De cette façon, l’application front-end sait parfaitement quelles données du back-end il convient d’aller rechercher. Il ne faudra ainsi qu’une seule demande pour que le front-end obtienne les données dont il a besoin, ni plus ni moins. Cela permet en outre aux utilisateurs de sélectionner quelles données ils souhaitent afficher sur leur écran. Une fonction très pratique, qui était impossible avant l’arrivée de GraphQL. »

Le front-end obtient les données dont il a besoin, ni plus ni moins, en une seule demande.

GraphQL en pratique

GraphQL enthousiasme tellement B. Wullems qu’Ordina applique déjà ce cadre pour un gros client pour lequel elle développe des applications depuis deux ans. « Le client dispose d’une quantité faramineuse de données, souvent vitales. Il souhaite rendre ces données disponibles sur un nombre toujours plus important d’appareils. Or c’est là qu’on se retrouve vite limité avec les microservices. Lorsque j’ai présenté le concept de GraphQL, on a rapidement obtenu le feu vert. Nous avons donc appliqué une couche de GraphQL sur les applications, de façon à faciliter la circulation des données en fonction de l’appareil utilisé. »

Par amour du client

S’il a été inventé par Facebook, le concept GraphQL a entre-temps été découvert par tous les autres grands acteurs que sont Netflix, Google et Amazon. L’écosystème d’outils et de librairies est en pleine croissance. Et à juste titre, estime B. Wullems. Il s’efforce d’ailleurs lui-même de convaincre ses collègues et les clients de passer à GraphQL : « Je n’applique pas une nouvelle technologie pour mon simple plaisir. Mon souci est plutôt d’aider le client. C’est d’ailleurs sans doute ce qui rend mon métier si passionnant : mettre la technique au service des clients, pour résoudre leurs problèmes. C’est pour cette raison aussi que je nourris un tel intérêt pour GraphQL. Je suis dans l’informatique depuis très longtemps, mais je ne suis que rarement tombé sur ce genre de technologies dont on peut se dire : “C’est celle-là. C’est avec elle que je vais véritablement pouvoir apporter des solutions à mes clients. Il faut absolument que j’en parle autour de moi.” En l’occurrence, il s’agit de GraphQL. Chaque développeur devrait l’essayer ! »

Je suis dans l’informatique depuis très longtemps, mais je ne suis que rarement tombé sur ce genre de technologies dont on peut se dire : “C’est celle-là. C’est avec elle que je vais véritablement pouvoir apporter des solutions à mes clients. Il faut absolument que j’en parle autour de moi.”


Vous souhaitez obtenir de plus amples informations sur le sujet ? Contactez notre expert.