Développeurs

Du développement monolithique aux micro-services : comment moderniser vos applications ?

Share this post:

L’utilisation d’une architecture modulaire par micro-services devient un standard dans le développement Cloud. L’idée est similaire à celle des ingrédients semi-finis dans le domaine culinaire. Selon un récent sondage mené par O’Reilly, plus de 75 % des organisations basent actuellement leurs architectures sur des micro-services. Quels en sont les avantages ? Tout comme dans le monde culinaire, s’appuyer sur des composants pré-élaborés permet d’éviter les tâches répétitives et d’obtenir directement les mets exquis qui feront votre application le repas idéal.

 

Les inconvénients d’une approche monolithique

Parmi les anciennes applications d’entreprise (par définition le legacy), nombreuses sont celles basées sur des architectures monolithiques. La plupart des fonctionnalités sont intégrées dans du code dispersé, et avec une multitude d’interdépendances. Il s’ensuit une grande difficulté, voire une impossibilité, à modifier, à rajouter une fonctionnalité , sans impacter les autres (par exemple la notion de régression fonctionnelle, les effets de bord). Cette approche du code  oblige à reprendre l’application dans son intégralité pour la modifier, même pour des corrections ou ajouts mineurs. Souvent, plusieurs équipes travaillent simultanément sur l’application monolithique, ce qui rend la cartographie code/fonctionnalité difficile.

 

Comment les micro-services aident à rationaliser à la fois le développement et le déploiement ?

La modularisation d’une application en fonctions atomiques (= micro-services) permet de travailler sur chaque composant sans impacter les autres, tout en maîtrisant mieux les dépendances et les performances. Un micro-service comprend généralement une API, des ressources de calculs et une certaine forme de stockage de données. En construisant une application, vous pouvez (ré-)utiliser non seulement les micro-services que vous avez développés vous-même, ceux des autres membres de votre équipe, mais aussi des micro-services externes – open source par exemple – et disponibles dans le Cloud.

Voici les principaux avantages du passage d’une architecture monolithique à une architecture modulaire par micro-services :

  • Une plus grande collaboration au sein de votre équipe, avec une cohérence entre les différents composants réutilisables,
  • Avec chaque micro-service hébergé dans son propre conteneur, on peut choisir l’infrastructure technologique (langages, librairies, etc.) qui lui convient le mieux,
  • La sécurité est renforcée en séparant les données des applications, et en isolant les points faibles.

Pour en savoir plus sur les avantages des micro-services et apprendre à les déployer dans des conteneurs, je vous invite à consulter cet article : Pourquoi utiliser des microservices et des conteneurs.

 

Considérations pour moderniser vos applications

Lors de la modernisation d’une application, il est crucial de comprendre lesquelles de ses fonctions doivent être extraites du socle monolithique, et quel niveau de granularité donner aux micro-services. Il peut y avoir de nombreuses façons d’aborder cette question, mais un point critique est de savoir s’il y a une petite équipe qui peut être responsable de chaque microservice. Il est bien sûr possible d’avoir une équipe responsable de nombreux micro-services, mais il y a des avantages majeurs à ce que chaque micro-service soit attribué à une équipe spécifique. Quelques exemples de micro-services courants :

  • Le service back-end, sur lequel peuvent se brancher plusieurs interfaces utilisateurs,
  • L’accès aux données,
  • La sécurité de bout en bout,
  • L’authentification des utilisateurs.

A vous de jouer !

Pour mieux comprendre l’architecture par micro-services, nous vous recommandons cette vidéo :

Master class sur la transformation d’une application monolithique en une solution par micro-services conteneurisés.

 

Article original : https://developer.ibm.com/blogs/from-monoliths-to-microservices-modernize-your-apps-now/

Par PRATIK PATEL

 

Traduit de l’anglais par Georges-Henri Moll, IBM developer advocate

 

Vous souhaitez en savoir plus ou aller plus loin, accédez au replay « Code in Cloud : les Développeurs et leurs super-pouvoirs ».
Une conférence par et pour les développeurs !  https://www.ibm.com/fr-fr/campaign/cic-for-developers

 

IBM Cloud permet de tester la plupart de ses services en mode freemium sans limite de temps  : Testez !

https://ibm.biz/BdqU57

 

Digital Developer Advocate - Data Scientist - Master Inventor - IDT Lead

More Développeurs stories
12 janvier 2021

La compréhension du langage et IBM

Nous avons publié une série de nouveautés sur nos services d’Intelligence Artificielle IBM Watson autour du traitement du langage naturel. Le communiqué de presse est disponible ici. Mais, je voulais revenir sur deux de ces annonces plus en détail. Watson Assistant Enhanced-Model Watson Discovery Reading Comprehension Un nouveau modèle amélioré de classification d’intention pour Watson […]

Continue reading

12 janvier 2021

Intelligence artificielle et Hybrid Multi-Cloud

L’hybrid Multi-cloud est devenu une réalité pour les entreprises et représente la futur génération des architectures IT. Ce rapport d’IDC montre bien que la phase 2 du « Move to Cloud » dans laquelle les entreprises sont entrées est Multi Public ou Multi Public-Private Cloud. The Road to Hybrid Multicloud L’intelligence artificielle de son coté a, ces […]

Continue reading

24 novembre 2020

Succès des projets d’IA : quand le Cloud et le Edge montrent leur complémentarité

Suite au webinar co-organisé par IBM et IDC sur le sujet du cloud et de l’edge computing au service de l’industrialisation des projets Data & IA dont vous pouvez trouver le replay ici : https://weevents.idc.com/d/27qc9p?RefID=IBM-track  IDC nous présente une synthèse de l’intérêt de l’usage de ces technologies combinées comme accélérateurs des projets d’Intelligence Artificielle. Le […]

Continue reading