Développeurs Ivoiriens: Entrez dans l’âge du Microservice!

Amani Christian
Code d'Ivoire
Published in
4 min readApr 13, 2018

Je suis fasciné par la souplesse et les bénéfices qu’offre l’architecture Microservice dans les projets logiciels de grande envergure. J’ai eu la chance d’utiliser cette architecture dans certaines solutions que j’ai eu à développer.

Mais je suis déconcerté par l’incroyable nombre de développeurs Ivoiriens qui n’ont jamais entendu parler de cette architecture ou qui ne se sont jamais amusés à la mettre en œuvre dans un projet personnel. Ce qui m’emmène aujourd’hui à écrire cet article.

Microservice ?

Revenons sur l’architecture en question. L’architecture Microservice peut être définie comme une approche permettant de découper une application en des sous-applications distinctes, chacune autonome.

Martin Fowler : Le style architectural microservice est une approche pour développer une seule application en tant que suite de petits services, chacun fonctionnant dans son propre processus et communiquant avec des mécanismes légers, souvent une API de ressources HTTP.

Cette architecture tente de résoudre les problèmes qui surviennent lorsque votre base de code augmente au-delà d’une certaine taille.

L’émergence de l’architecture Microservice est due à plusieurs facteurs, à mes yeux deux facteurs ont réellement permis l’émergence de l’architecture Microservice:

1 : La montée en puissance du cloud

La facilité d’accès au cloud et la panoplie de services disponibles sur le cloud ont réellement apporté une valeur ajoutée aux architectures Microservices. Elle a aussi permis à de nombreux types d’entreprises d’accéder facilement à des ressources serveur sans devoir débourser trop d’argent.

2 : Les grands acteurs du Web

Certains géants du web utilisent cette architecture, ce qui est aux yeux de la plupart des développeurs une confirmation de la bienfaisance de cette architecture. Netflix fait partie des toutes premières entreprises ayant expérimenté cette architecture, elle a développé des logiciels open source (Hystrix, Eureka, Zuul, …) facilitant la construction et la maintenance des applications à grande échelle se fondant sur les architectures Microservice.

Les bénéfices du Microservice

La mise à l’échelle (Scaling) :

La question de l’évolutivité est extrêmement importante pour une entreprise à croissance rapide. Lorsque vous avez une application monolithique gigantesque, il devient difficile de faire une mise à l’échelle efficace.

Avec une architecture Microservice, la mise à l’échelle devient plus simple. En effet, les décisions de mise à l’échelle peuvent s’effectuer à un niveau plus granulaire, ce qui offre un avantage d’optimisation et d’organisation plus efficace du système. En d’autres termes, vous pouvez mettre à l’échelle chacun de vos services applicatifs plus facilement.

Une équipe polyglotte :

Les microservices offrent une grande souplesse au niveau des choix des outils (langage, Framework, ...) à utiliser pour la construction d’un logiciel. Effectivement, les microservices facilitent la construction de logiciels avec des équipes de développeurs ayant des profils différents, ce qui évite les discussions interminables entre développeurs sur les choix des outils à utiliser, afin qu’ils puissent se concentrer sur les exigences essentielles.

Par exemple, certaines des parties de votre application peuvent exiger des bibliothèques spécifiques écrites dans un langage de programmation spécifique, une telle situation est résolue par l’architecture Microservice. Cela offre également une bonne occasion d’expérimenter de nouveaux langages de programmation et de frameworks dans un périmètre limité (dans un service).

La résistance :

Les applications se reposant sur l’architecture Microservice sont plus résistantes. En effet, le découpage d’une application en plusieurs sous-services applicatifs fournit une résistance efficace, chaque service étant autonome, si l’une d’elles tombe en panne, elle n’affectera pas de manière considérable les autres services (à l’exception de ceux qui dépendent directement de celui-ci) de l’application. Au final, vous avez une application tolérante aux pannes.

Les inconvénients des Microservices

L’architecture Microservice aussi bonne qu’elle l’est à quand même un certain coût qui ne doit pas être ignoré. Bien que les services individuels puissent être faciles à comprendre et à gérer, l’application dans son ensemble comporte plusieurs services dont certains communiqueront avec d’autres services. Ces échanges entre différents services peuvent être extrêmement complexes à comprendre et à surveiller. De plus la communication inter-services doit être sécurisée pour éviter toute violation de sécurité intercommunication.

Le test d’une application Microservice est plus difficile par rapport à une application Monolithique, cela est dû au fait qu’une application se basant sur l’architecture Microservice comporte plusieurs sous-services, ce qui entraîne une difficulté pour un test d’ensemble de tous les services.

Des outillages pour la mise en œuvre d’une Architecture Microservice

Développeur Javascript

Développeur Java (Scala/Kotlin….)

Développeur .Net

J’ai simplement effleuré la surface de l’architecture Microservice avec cet article, il reste d’autres concepts et aspects que vous devriez considérer avant de parcourir la voie des Microservices. Des notions comme la découverte de services (Service Discovery), de décentralisation de données sont essentielles pour une architecture Microservice robuste.

Des ressources pour approfondir le sujet

Quelques articles pour approfondir le sujet.

--

--