Développeurs

Développement agile : comment les microservices sont devenus un des piliers de la transformation numérique

Share this post:

Retour sur un des grands changements du monde du développement agile : le passage des services web aux microservices. Une évolution portée par plusieurs facteurs : la démocratisation des conteneurs, des API et de l’approche domain-driven design.

Dans le monde IT, l’agilité promet de créer des services mieux adaptés aux besoins des métiers et proposant des cycles de développement plus courts. Une approche clé pour aider les entreprises dans leurs efforts de transformation numérique.

Il se pose toutefois la question de savoir comment connecter ces solutions agiles à un système d’information existant. Des liens doivent être tissés entre les systems of engagement, qui misent sur l’agilité pour favoriser l’innovation, et les systems of record, qui visent la stabilité.

Ne pas être capable de faire travailler de concert des services créés en mode agile avec des solutions legacy, c’est courir le risque de créer une informatique à deux vitesses, le two-speed IT.

Une bascule progressive des services vers les microservices

En 2014, lors d’un projet réalisé pour le compte d’un acteur du monde des télécommunications, nous avions opéré l’accostage des nouveaux services aux solutions legacy au travers de la mise en place d’une architecture orientée services, la SOA. La création de services web, éventuellement déployés sur le cloud, était à ce moment encore la norme.

Mais des alternatives plus légères et plus agiles commençaient déjà à poindre leur nez : pour rappel, le code source initial de Docker a été publié en mars 2013. Lors d’un projet démarré en 2016, une grande banque s’est alors posé la question de savoir comment basculer des web services traditionnels, s’appuyant sur la technologie SOA, vers des microservices plus agiles, reposant sur un nouveau lien, les API.

Ce fut également l’occasion de revoir la manière dont sont conçus les services et microservices. Je recommande ici de s’appuyer sur les best practices exposées par Eric Evans dans son livre Domain-Driven Design. Eric Evans explique comment bien implémenter des API en les liant à un contexte métier précis et borné.

L’approche domain-driven design préconise d’aller consulter les équipes métiers lors de la définition des API. Leur langage métier sera alors traduit en modèle de données adapté et cohérent. Par exemple, le concept d’année est différent selon que l’on considère l’année civile ou l’année fiscale.

De l’art de bien déployer les microservices

Les API sont portées par la donnée. C’est donc du côté du legacy qu’elles sont en général mises à place. Elles permettent d’exposer des données, de manière contrôlée, à des services et microservices innovants, s’appuyant massivement sur des techniques de développement agile. Implémenter les API du côté du legacy a également pour vertu de faire gagner en stabilité, le legacy étant moins sujet aux transformations majeures.

Si les API sont la clé pour permettre à des microservices créés en mode agile de consommer des données issues de systèmes legacy, il demeure le problème du déploiement de ces microservices. Une plus grande agilité applicative demande en effet des infrastructures elles aussi plus agiles. Fort heureusement, le cloud computing a su évoluer pour proposer un réceptacle parfaitement adapté aux microservices ; les conteneurs.

In fine, c’est grâce à la combinaison de trois facteurs que le développement agile a pu franchir une nouvelle étape dans son histoire :

  • l’aspect logiciel, avec les microservices et les API;
  • l’aspect méthode, avec l’approche domain-driven design;
  • l’aspect infrastructure, avec la démocratisation des conteneurs.

À mesure que les solutions ont été stabilisées et que les équipes ont monté en compétences, les entreprises ont pu industrialiser le déploiement de microservices sur une large échelle. Dans le même temps, elles se sont elles aussi transformées, avec un passage progressif d’une approche «cloud ready» vers un positionnement «cloud natif».

La prochaine étape de cette transformation vers toujours plus d’agilité va sans aucun doute consister à se pencher sur la donnée, avec de nouvelles techniques comme le data mesh – qu’on pourrait qualifier de microservices pour la data. Un sujet qui devrait beaucoup m’occuper -ainsi que mes équipes – en 2023.

En parallèle, les entreprises devront se poser la question de la convergence entre agilité IT et agilité métier. Une transformation IT implique inévitablement une transformation des pratiques métiers, qu’il faut savoir anticiper et accompagner.

Téléchargez l’ouvrage   » DÉFIS : Pour une performance réinventée  » dans lequel 70 décideurs transmettent les clés d’une transformation digitale et durable

Executive Architect - Cloud Application Development & DevOps - IBM Consulting RedHat Technical Leader

More Développeurs stories
15 novembre 2023

Architecture de données : comment choisir le bon pattern ?

Mes clients me posent souvent la question de la stratégie à adopter pour faire évoluer leur architecture de données. Il faut dire que celle-ci se complexifie de plus en plus, les alternatives s’étant multipliées ces dernières années : au traditionnel Datawarehouse s’est ajouté le Datalake puis plus récemment le Lakehouse. Il est également question de Data […]

Continue reading

7 novembre 2023

Corsica Ferries simplifie le renouvellement de ses serveurs Power avec IBM France Financement

Le système de réservations de Corsica Ferries s’appuie sur des serveurs IBM Power. Une solution en constante évolution, qui doit pouvoir accompagner la croissance du groupe. À cet effet, ces serveurs sont modernisés tous les trois ans, avec un leasing assuré par IBM France Financement. Le Challenge pour Corsica Ferries Les bateaux jaunes de Corsica […]

Continue reading

24 octobre 2023

Point de vue sur les architectures microservices event-driven

Cet article a été rédigé avec le concours d’Olivier Barrot, Vincent Baruchello, Xiaohua Le et Laurent Sene. Pourquoi considérer les architectures event-driven ? L’essor et le développement du Cloud, l’utilisation de conteneurs, et la montée en puissance de « Pizza teams » agiles qui travaillent sur des composants de petite taille, ont conduit à une […]

Continue reading