Guillaume Morel, PDG d’Invivoo / PDG |

D’un côté, des entreprises qui ont de plus en plus besoin de s’adapter, de réagir, de modifier leurs modèles ; de l’autre, des logiciels toujours plus complexes, plus lourds, par conséquent plus difficiles à faire évoluer. Comment concilier cette antinomie ? La réponse réside sans doute dans l’adoption des microservices.

Les systèmes d’information actuels, dits “monolithes”, se heurtent de par leur conception même à deux grands inconvénients. S’ils sont caractérisés par une grande solidité, ils manquent cruellement d’agilité : leur taille toujours croissante est en effet devenue telle que le moindre changement dans les lignes de code peut provoquer de graves conséquences. Les équipes informatiques hésitent donc souvent à intervenir sur ces monolithes de peur d’impacter d’autres fonctionnalités et ce n’est généralement qu’en dernier recours qu’ils effectueront des changements. En outre, si les équipes informatiques monolithes sont dotées de compétences techniques fortes, elles n’entrent que très peu en interaction avec les utilisateurs. Elles restent le plus souvent coupées des besoins métiers spécifiques de ces derniers, qui ne sont donc pas forcément pris en compte lors du développement des fonctionnalités correspondantes de l’outil. Deux inconvénients qui peuvent se révéler majeurs pour une entreprise soumise à un univers ultraconcurrentiel, dans lequel elle doit évoluer et s’adapter le plus vite possible afin de rester en phase avec son marché.

Microservices : redonner de la flexibilité à son SI

Le concept de microservices a été développé afin de pouvoir s’affranchir de ces difficultés. Il s’agit désormais de découper un système complexe en plusieurs petits systèmes, plus souples, plus faciles à modifier et à administrer, puis de créer des liaisons entre ces petits systèmes de façon à les rendre interopérables entre eux. L’un des premiers à s’intéresser à ce concept, Martin Fowler, a posé la définition suivante : “l’architecture microservices est une approche de développement d’applications par une suite de petits services. Chacun d’eux va fonctionner selon des process différents et ceux-ci vont communiquer entre eux par des mécanismes légers”. Dans un système basé sur les microservices, chaque fonctionnalité va donc être séparée des autres et développée indépendamment. Avec cette approche, la complexité du système n’est pas réduite, mais elle est répartie entre toutes les “briques” constituant l’ensemble. Il sera donc plus simple de développer chaque composant, puis de le surveiller ou le monitorer afin de pouvoir agir rapidement sur un frein ou un blocage. En effet, dès que le besoin se fait sentir, les équipes projets peuvent modifier ou faire évoluer un ou plusieurs microservices sans craindre d’impacter les autres fonctionnalités. Le système dans son ensemble bénéficie ainsi d’une grande scalabilité. Cette capacité d’adaptation permet à l’architecture microservice de répondre aux besoins de tous les types d’entreprises et de suivre leurs évolutions, quels que soient leurs secteurs d’activité.

La souplesse des microservices : une équipe spécialisée dédiée à chaque brique

Cette approche offre un autre avantage : pour chaque microservice, sera constituée une équipe projet dédiée qui utilisera les compétences et les spécificités techniques les plus adaptées. Par exemple si l’un des services fonctionne mieux lorsqu’il est développé en Java, alors l’équipe dédiée le développera en Java. Mieux encore : l’équipe projet peut se voir adjoindre des experts du métier auquel est destiné le microservice. Ceux-ci pourront apporter leur éclairage sur les réels besoins des utilisateurs en termes de fonctionnalité, d’ergonomie ou d’organisation. Ainsi, l’outil logiciel est en adéquation complète avec l’organisation opérationnelle de l’entreprise.

Le “Continuous Delivery”, facteur clé de l’agilité de l’entreprise

Le déploiement d’un système monolithe s’effectue en deux étapes successives : tout d’abord le process de développement de l’application, au cours de laquelle l’équipe va développer le logiciel, s’assurer qu’il fonctionne correctement, qu’il répond bien au cahier des charges. Une fois que le système est jugé satisfaisant, démarre le second process : celui de la production. Dans le cas des microservices, le process de production n’est pas dissocié du process de développement : ils interviennent simultanément. En effet, les équipes projets livrent leurs briques en continu, dès qu’elles sont prêtes. Un bug identifié, une fonctionnalité qui peut être améliorée ? L’équipe modifie le microservice, le produit et le livre de nouveau. Cette démarche de “Continuous Delivery” permet à l’équipe projet d’anticiper les besoins de l’entreprise et de répondre très rapidement aux demandes de modifications liées à une évolution du marché ou de l’entreprise elle-même.

Complémentarité monolithe/microservices

D’aucuns pourraient objecter que lorsqu’une entreprise a un système monolithe, il serait trop long et trop coûteux de l’arrêter pour le remplacer par des microservices. Et ils auraient raison. La souplesse d’une architecture microservices permet toutefois de conserver un monolithe et de développer des microservices complémentaires. Il ne reste plus qu’à créer des passerelles entre les microservices et le monolithe, de la même manière que dans le cadre d’une architecture microservices pure.

Quels gains pour une entreprise

Actuellement, 60 % des logiciels d’entreprise sont encore de type monolithe. Un chiffre qui peut se justifier par le fait qu’un monolithe reste plus rapide à développer et plus facile à administrer qu’une pléiade de petits services. Pourtant, la valeur ajoutée d’une architecture à base de microservices réside dans sa capacité d’adaptation, dans sa souplesse, dans sa réponse précise aux besoins spécifiques des différents services de l’entreprise. Ainsi, même si une telle architecture est plus difficile et longue à mettre en place qu’un monolithe, elle prend toute sa dimension à la première modification à apporter au SI. Un atout majeur à moyen et long terme qui devrait rapidement emporter l’adhésion de nombreuses entreprises.