{"id":19702,"date":"2023-07-17T08:33:45","date_gmt":"2023-07-17T08:33:45","guid":{"rendered":"https:\/\/devologyx.io\/architecture-monolithique-vs-architecture-microservices\/"},"modified":"2024-10-31T17:46:25","modified_gmt":"2024-10-31T17:46:25","slug":"architecture-monolithique-vs-architecture-microservices","status":"publish","type":"post","link":"https:\/\/devologyx.io\/fr\/architecture-monolithique-vs-architecture-microservices\/","title":{"rendered":"ARCHITECTURE MONOLITHIQUE VS ARCHITECTURE MICROSERVICES"},"content":{"rendered":"\n<p>Je suis s\u00fbr que vous avez rencontr\u00e9 un sujet comme l&rsquo;architecture monolithique VS microservices moins souvent que vous n&rsquo;avez entendu les gens discuter des paradigmes de programmation, des outils ou des cadres logiciels. Vous devez choisir le type d&rsquo;architecture logicielle d\u00e8s le d\u00e9but de votre projet. Il permet de d\u00e9finir la conception de votre application et constitue l&rsquo;une des principales \u00e9tapes de la phase de d\u00e9couverte du cycle de vie de l&rsquo;application. Qu&rsquo;elle soit monolithique ou microservice apr\u00e8s le d\u00e9veloppement de l&rsquo;application, la modification de l&rsquo;architecture logicielle est exigeante, longue et co\u00fbteuse.   <\/p>\n\n<p>L&rsquo;architecture logicielle est la structure et l&rsquo;organisation d&rsquo;un syst\u00e8me. Cette structure est constitu\u00e9e de composants, de leur environnement, de leur interaction et des concepts utilis\u00e9s pour concevoir le logiciel. Dans la plupart des cas, elle implique l&rsquo;\u00e9volution du logiciel dans le futur. L&rsquo;architecture logicielle est cr\u00e9\u00e9e en vue de missions distinctes. Ces missions doivent \u00eatre accomplies sans entraver les t\u00e2ches d&rsquo;autres outils et dispositifs. La structure et le comportement du logiciel affectent des d\u00e9cisions importantes, et doivent donc \u00eatre rendus et construits avec comp\u00e9tence pour obtenir les meilleurs r\u00e9sultats possibles.     <\/p>\n\n<p>Cet article vous aidera \u00e0 comprendre ces deux types d&rsquo;architecture logicielle. Nous mettons c\u00f4te \u00e0 c\u00f4te les architectures monolithiques et microservices, d\u00e9finissons ce qu&rsquo;elles sont et mentionnons les principaux concepts auxquels vous devez pr\u00eater attention. Allons-y, explorons !  <\/p>\n\n<p><strong>Architecture monolithique<\/strong><\/p>\n\n<figure class=\"wp-block-image is-resized\"><img fetchpriority=\"high\" decoding=\"async\" src=\"https:\/\/lh4.googleusercontent.com\/LJNBLc7RQmE82gtn20rlG5_f5-9x7L_OLHhH4tO4adLJka9RTjUPe0WzVFh7ksCVDJJwYkj1FAeuLw1LSmu6byQZevHtsP4GVQMZdmpI6YLp8W4g6rAvEVFqNYtSAOXmsSELETIIkoLLwE0KnQzzMQ\" alt=\"\" width=\"415\" height=\"286\"\/><\/figure>\n\n<p>L&rsquo;architecture monolithique est le mod\u00e8le traditionnel de conception d&rsquo;un programme logiciel construit comme une unit\u00e9 combin\u00e9e qui est ferm\u00e9e et ind\u00e9pendante des autres applications. Cette architecture est consid\u00e9r\u00e9e comme l&rsquo;approche traditionnelle de la construction et de la cr\u00e9ation d&rsquo;applications en tant qu&rsquo;unit\u00e9s uniques et unifi\u00e9es. En g\u00e9n\u00e9ral, cette approche consiste en une interface utilisateur c\u00f4t\u00e9 client, une application c\u00f4t\u00e9 serveur et une base de donn\u00e9es. Une architecture monolithique est un r\u00e9seau informatique \u00e9tendu dot\u00e9 d&rsquo;une grande base de code qui int\u00e8gre toutes les pr\u00e9occupations de l&rsquo;entreprise.   <\/p>\n\n<p>Lorsque vous souhaitez modifier une application monolithique, vous devez mettre \u00e0 jour l&rsquo;ensemble de la pile en acc\u00e9dant \u00e0 la base de code et en construisant et installant une version actualis\u00e9e de l&rsquo;interface c\u00f4t\u00e9 service.<\/p>\n\n<p>Les logiciels monolithiques sont g\u00e9n\u00e9ralement constitu\u00e9s de trois composants ;<\/p>\n\n<ul class=\"wp-block-list\">\n<li>Interface utilisateur c\u00f4t\u00e9 client &#8211; consiste en des pages HTML ou Javascript ex\u00e9cut\u00e9es dans un navigateur.<\/li>\n\n\n\n<li>Application c\u00f4t\u00e9 serveur &#8211; traite les requ\u00eates HTTP, met en \u0153uvre la logique propre au domaine, r\u00e9cup\u00e8re et met \u00e0 jour les donn\u00e9es de la base de donn\u00e9es et remplit les vues HTML \u00e0 envoyer au navigateur.<\/li>\n\n\n\n<li>Base de donn\u00e9es &#8211; contient de nombreux tableaux, g\u00e9n\u00e9ralement dans un syst\u00e8me de gestion de base de donn\u00e9es relationnelle.<\/li>\n<\/ul>\n\n<p>Ce mod\u00e8le permet de rationaliser le pipeline ETL au fur et \u00e0 mesure que les donn\u00e9es sont transf\u00e9r\u00e9es dans une base de donn\u00e9es unique \u00e0 travers le monolithe. Cependant, m\u00eame si vous appliquez un mod\u00e8le de microservices, vous pouvez \u00e9galement simplifier votre pipeline ETL avec une solution sans code comme Xplenty. <\/p>\n\n<p><strong>Avantages de l&rsquo;architecture monolithique<\/strong><\/p>\n\n<p>Une organisation peut tirer profit d&rsquo;une architecture monolithique en fonction de diff\u00e9rents facteurs. L&rsquo;utilisation d&rsquo;une architecture monolithique lors de la construction de votre application pr\u00e9sente plusieurs avantages, dont voici quelques-uns. <\/p>\n\n<ul class=\"wp-block-list\">\n<li>Traitement ais\u00e9 des probl\u00e8mes susceptibles d&rsquo;affecter l&rsquo;ensemble du logiciel. En g\u00e9n\u00e9ral, les d\u00e9veloppeurs appellent ces probl\u00e8mes des pr\u00e9occupations transversales, notamment la surveillance des performances, la mise en cache, la journalisation et le traitement. Tout est plac\u00e9 au m\u00eame endroit dans une application monolithique et n&rsquo;est pas dispers\u00e9 entre les microservices. L&rsquo;architecture monolithique minimisera consid\u00e9rablement les difficult\u00e9s li\u00e9es \u00e0 la r\u00e9solution de ces probl\u00e8mes.   <\/li>\n\n\n\n<li>Simplicit\u00e9. Lorsqu&rsquo;il s&rsquo;agit de cr\u00e9er des applications de petite ou moyenne taille, l&rsquo;architecture monolithique est plus simple \u00e0 d\u00e9velopper, \u00e0 d\u00e9ployer et \u00e0 mettre \u00e0 l&rsquo;\u00e9chelle. La plupart des environnements de d\u00e9veloppement int\u00e9gr\u00e9s et des moteurs de d\u00e9veloppement prennent en charge l&rsquo;architecture monolithique en tant que mod\u00e8le traditionnel de cr\u00e9ation d&rsquo;applications. Les tests de bout en bout sont beaucoup plus faciles \u00e0 r\u00e9aliser lorsqu&rsquo;on n&rsquo;a affaire qu&rsquo;\u00e0 une seule base de code \u00e9tendue.   <\/li>\n\n\n\n<li>Performance. Les applications monolithiques sont g\u00e9n\u00e9ralement plus performantes que les microservices. Une API peut servir le m\u00eame objectif dans les applications monolithiques parce qu&rsquo;elle a consolid\u00e9 le code et la m\u00e9moire.  <\/li>\n<\/ul>\n\n<p><strong>Inconv\u00e9nients de l&rsquo;architecture monolithique<\/strong><\/p>\n\n<p>Les applications monolithiques sont pratiques jusqu&rsquo;\u00e0 ce qu&rsquo;elles se d\u00e9veloppent et que leur mise \u00e0 l&rsquo;\u00e9chelle devienne un probl\u00e8me. Le d\u00e9ploiement d&rsquo;une l\u00e9g\u00e8re modification d&rsquo;une fonction n\u00e9cessite de compiler et de tester l&rsquo;ensemble de la plateforme, ce qui va \u00e0 l&rsquo;encontre de l&rsquo;approche agile moderne adopt\u00e9e par la plupart des d\u00e9veloppeurs. L&rsquo;architecture monolithique pr\u00e9sente des inconv\u00e9nients, dont voici quelques-uns.  <\/p>\n\n<ul class=\"wp-block-list\">\n<li>Potentiel d&rsquo;\u00e9volutivit\u00e9. Le potentiel d&rsquo;\u00e9volutivit\u00e9 d&rsquo;une application monolithique d\u00e9pend de sa taille. Si vous souhaitez concevoir une application \u00e9tendue et complexe, il existe de meilleures architectures logicielles que l&rsquo;architecture monolithique. Dans une application plus complexe, l&rsquo;\u00e9volutivit\u00e9 sera consid\u00e9rable. Elle deviendra une pr\u00e9occupation consid\u00e9rable, car il sera plus difficile de g\u00e9rer et de contenir un projet logiciel aggrav\u00e9 dans le cadre d&rsquo;une vaste base de code.    <\/li>\n\n\n\n<li>Flexibilit\u00e9. Les applications monolithiques sont rigides en mati\u00e8re de flexibilit\u00e9. Avec une application monolithique, attendez-vous \u00e0 l&rsquo;utiliser pendant un certain temps sans changer votre pile technologique. Or, avec une architecture monolithique, il est pratiquement impossible de modifier votre pile technologique. Vous devrez r\u00e9\u00e9crire votre logiciel pour y int\u00e9grer la pile que vous souhaitez mettre en \u0153uvre, ce qui n\u00e9cessite des ressources consid\u00e9rables et n&rsquo;en vaut pas la peine.    <\/li>\n\n\n\n<li>L&rsquo;architecture monolithique complique votre code. La base de code \u00e9tant unique, elle devient exponentiellement complexe au fur et \u00e0 mesure que l&rsquo;application se d\u00e9veloppe et \u00e9volue. Ces changements ou mises \u00e0 jour n\u00e9cessitent une coordination \u00e0 l&rsquo;\u00e9chelle de l&rsquo;application, mais les utilisateurs peuvent les \u00e9tendre au-del\u00e0 d&rsquo;une seule partie.  <\/li>\n<\/ul>\n\n<p><strong>Architecture de microservices<\/strong><\/p>\n\n<figure class=\"wp-block-image is-resized\"><img decoding=\"async\" src=\"https:\/\/lh5.googleusercontent.com\/jlezzWpXPuG4NPN9rDVPahgv9JVdMdtHuGkBmeUeJSZGlS4g-V-PMcmQkl4JdRCyVg-Dhl4fe0OEgF9LrNC1ZWbOy1YSYh36kDIW_2Qy7lJlwmkH3WOEa-EbbEpEHCzeMmNFXuyAbP3K3ITh2LC6Ew\" alt=\"\" width=\"414\" height=\"284\"\/><\/figure>\n\n<p>Alors qu&rsquo;une application monolithique est une unit\u00e9 int\u00e9gr\u00e9e unique, l&rsquo;architecture microservice la divise en plusieurs unit\u00e9s autonomes plus petites. Ces unit\u00e9s ex\u00e9cutent g\u00e9n\u00e9ralement chaque processus d&rsquo;application comme un service ind\u00e9pendant. Par cons\u00e9quent, tous les services ont leur base de donn\u00e9es et leur logique et ex\u00e9cutent des fonctions sp\u00e9cifiques.  <\/p>\n\n<p>L&rsquo;architecture microservice est une approche dans laquelle une application unique est d\u00e9velopp\u00e9e comme une suite de petits services, chacun fonctionnant dans son processus et communiquant avec des m\u00e9canismes l\u00e9gers, g\u00e9n\u00e9ralement une API de ressources HTTP. Sam Newman, consultant ind\u00e9pendant, affirme que \u00ab\u00a0les microservices sont de petits services qui fonctionnent ensemble\u00a0\u00bb. <\/p>\n\n<p>L&rsquo;architecture microservice est constitu\u00e9e d&rsquo;une collection de services minuscules et autonomes. Chaque service est ind\u00e9pendant et met en \u0153uvre une capacit\u00e9 commerciale ou technique de l&rsquo;application qu&rsquo;il encapsule dans un contexte d\u00e9limit\u00e9. Un contexte d\u00e9limit\u00e9 fait r\u00e9f\u00e9rence \u00e0 une section naturelle de l&rsquo;organisation et fournit une limite claire \u00e0 l&rsquo;int\u00e9rieur de laquelle le mod\u00e8le de domaine existe.  <\/p>\n\n<p>L&rsquo;architecture microservices modifie consid\u00e9rablement la relation entre la base de donn\u00e9es et l&rsquo;application. Ainsi, au lieu d&rsquo;utiliser une base de donn\u00e9es unique avec d&rsquo;autres microservices, chaque microservice a sa propre base de donn\u00e9es. Une base de donn\u00e9es par microservice est indispensable si vous souhaitez b\u00e9n\u00e9ficier de cette architecture pour assurer un couplage l\u00e2che.  <\/p>\n\n<p><strong>Composants de l&rsquo;architecture microservice<\/strong><\/p>\n\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/devologyx.io\/wp-content\/uploads\/2023\/07\/pexels-pixabay-326461-1024x678.jpg\" alt=\"\" class=\"wp-image-16670\" width=\"412\" height=\"273\" srcset=\"https:\/\/devologyx.io\/wp-content\/uploads\/2023\/07\/pexels-pixabay-326461-1024x678.jpg 1024w, https:\/\/devologyx.io\/wp-content\/uploads\/2023\/07\/pexels-pixabay-326461-300x199.jpg 300w, https:\/\/devologyx.io\/wp-content\/uploads\/2023\/07\/pexels-pixabay-326461-768x509.jpg 768w, https:\/\/devologyx.io\/wp-content\/uploads\/2023\/07\/pexels-pixabay-326461-1536x1017.jpg 1536w, https:\/\/devologyx.io\/wp-content\/uploads\/2023\/07\/pexels-pixabay-326461-2048x1357.jpg 2048w\" sizes=\"(max-width: 412px) 100vw, 412px\" \/><\/figure>\n\n<p>Les microservices sont petits, autonomes et faiblement coupl\u00e9s. Une petite \u00e9quipe de programmeurs peut \u00e9crire et soutenir le service puisque chaque service poss\u00e8de sa propre base de donn\u00e9es. Les services sont responsables de la pr\u00e9servation de leurs donn\u00e9es ou de leur \u00e9tat externe. Cela va \u00e0 l&rsquo;encontre de l&rsquo;approche traditionnelle, o\u00f9 une couche de donn\u00e9es s\u00e9par\u00e9e g\u00e8re la pr\u00e9servation des donn\u00e9es. Voici quelques-uns des composants d&rsquo;une architecture microservices    <\/p>\n\n<ul class=\"wp-block-list\">\n<li>Orchestration. Ce composant s&rsquo;occupe de placer les services sur les n\u0153uds, de reconna\u00eetre les d\u00e9faillances, de stabiliser les services sur les n\u0153uds, etc. En g\u00e9n\u00e9ral, ce composant est une technologie \u00ab\u00a0off-the-shell\u00a0\u00bb comme Kubernetes plut\u00f4t qu&rsquo;une technologie personnalis\u00e9e.  <\/li>\n\n\n\n<li>Passerelle API. La passerelle API est le point d&rsquo;entr\u00e9e des clients. Au lieu d&rsquo;appeler les services directement, les clients t\u00e9l\u00e9phonent \u00e0 la passerelle API et transmettent l&rsquo;appel aux services appropri\u00e9s dans le back-end.  <\/li>\n<\/ul>\n\n<p><strong>Avantages de l&rsquo;architecture microservices<\/strong><\/p>\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/devologyx.io\/wp-content\/uploads\/2023\/07\/pexels-sebastian-voortman-411207-1024x683.jpg\" alt=\"\" class=\"wp-image-16674\" width=\"412\" height=\"275\" srcset=\"https:\/\/devologyx.io\/wp-content\/uploads\/2023\/07\/pexels-sebastian-voortman-411207-1024x683.jpg 1024w, https:\/\/devologyx.io\/wp-content\/uploads\/2023\/07\/pexels-sebastian-voortman-411207-300x200.jpg 300w, https:\/\/devologyx.io\/wp-content\/uploads\/2023\/07\/pexels-sebastian-voortman-411207-768x512.jpg 768w, https:\/\/devologyx.io\/wp-content\/uploads\/2023\/07\/pexels-sebastian-voortman-411207-1536x1024.jpg 1536w, https:\/\/devologyx.io\/wp-content\/uploads\/2023\/07\/pexels-sebastian-voortman-411207-2048x1365.jpg 2048w\" sizes=\"(max-width: 412px) 100vw, 412px\" \/><\/figure>\n\n<p>L&rsquo;architecture microservices a progress\u00e9 gr\u00e2ce au nuage, \u00e0 la conteneurisation et aux syst\u00e8mes hyperconnect\u00e9s. De plus, l&rsquo;architecture microservices pr\u00e9sente certains avantages pour l&rsquo;utilisateur, comme indiqu\u00e9 ci-dessous. <\/p>\n\n<ul class=\"wp-block-list\">\n<li>Am\u00e9lioration de l&rsquo;agilit\u00e9. Avec ce type d&rsquo;architecture logicielle, les d\u00e9veloppeurs peuvent travailler sur des modules ind\u00e9pendants. Chaque d\u00e9veloppeur peut cr\u00e9er et d\u00e9ployer un module ind\u00e9pendamment, ce qui minimise les frictions op\u00e9rationnelles de l&rsquo;\u00e9quipe. Il est \u00e9galement facile de contr\u00f4ler les corrections de bogues et les mises \u00e0 jour. Vous pouvez mettre \u00e0 jour un service sans red\u00e9ployer l&rsquo;ensemble de l&rsquo;application et annuler la mise \u00e0 jour en cas de probl\u00e8me. Habituellement, lorsqu&rsquo;un bogue est d\u00e9couvert dans une partie d&rsquo;une application monolithique, il peut bloquer l&rsquo;ensemble du processus de mise \u00e0 jour.     <\/li>\n\n\n\n<li>Meilleure \u00e9volutivit\u00e9. L&rsquo;architecture microservices peut faire \u00e9voluer chaque service de mani\u00e8re ind\u00e9pendante. Elle vous permet de faire \u00e9voluer les sous-syst\u00e8mes qui ont besoin de plus de ressources sans faire \u00e9voluer l&rsquo;ensemble de l&rsquo;application. La mise \u00e0 l&rsquo;\u00e9chelle d&rsquo;applications monolithiques prend du temps et engendre des co\u00fbts, m\u00eame lorsqu&rsquo;elle n&rsquo;est pas n\u00e9cessaire. L&rsquo;utilisation d&rsquo;un orchestrateur comme Service Fabric ou Kubernetes permet d&rsquo;augmenter la densit\u00e9 des services sur un seul h\u00f4te, ce qui permet une utilisation efficace des ressources.    <\/li>\n\n\n\n<li>L&rsquo;architecture microservices encourage la d\u00e9centralisation. Un gouvernement central bien cibl\u00e9 est essentiel pour une gouvernance r\u00e9ussie. Ce type de structure serait facile \u00e0 d\u00e9manteler, politique mise \u00e0 part. La centralisation des choses en un seul endroit signifie que si l&rsquo;une d&rsquo;entre elles ne fonctionne pas, c&rsquo;est tout le syst\u00e8me qui s&rsquo;effondre. L&rsquo;ensemble du syst\u00e8me s&rsquo;effondre. L&rsquo;architecture microservices favorise la d\u00e9centralisation, ce qui permet aux d\u00e9veloppeurs d&rsquo;\u00eatre plus ind\u00e9pendants et de travailler en \u00e9quipe, quel que soit l&rsquo;endroit o\u00f9 ils se trouvent. La flexibilit\u00e9 est \u00e9galement au rendez-vous. Vous pouvez mettre en \u0153uvre plusieurs piles technologiques dans une seule application. Cela vous aide \u00e0 s\u00e9lectionner la pile technologique la plus influente pour concevoir un service.        <\/li>\n<\/ul>\n\n<p><strong>Inconv\u00e9nients de l&rsquo;architecture microservices<\/strong><\/p>\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/devologyx.io\/wp-content\/uploads\/2023\/07\/pexels-tim-gouw-52608-1024x685.jpg\" alt=\"\" class=\"wp-image-16682\" width=\"412\" height=\"275\" srcset=\"https:\/\/devologyx.io\/wp-content\/uploads\/2023\/07\/pexels-tim-gouw-52608-1024x685.jpg 1024w, https:\/\/devologyx.io\/wp-content\/uploads\/2023\/07\/pexels-tim-gouw-52608-300x201.jpg 300w, https:\/\/devologyx.io\/wp-content\/uploads\/2023\/07\/pexels-tim-gouw-52608-768x513.jpg 768w, https:\/\/devologyx.io\/wp-content\/uploads\/2023\/07\/pexels-tim-gouw-52608-1536x1027.jpg 1536w, https:\/\/devologyx.io\/wp-content\/uploads\/2023\/07\/pexels-tim-gouw-52608.jpg 2048w\" sizes=\"(max-width: 412px) 100vw, 412px\" \/><\/figure>\n\n<p>Les avantages des microservices sont trop beaux pour \u00eatre gratuits. Les inconv\u00e9nients d&rsquo;une architecture de microservices sont un peu difficiles \u00e0 supporter. Aussi, vous devez vous assurer que vous choisissez l&rsquo;architecture logicielle exemplaire pour votre entreprise.  <\/p>\n\n<ul class=\"wp-block-list\">\n<li>Complexit\u00e9. L&rsquo;architecture microservices comporte plusieurs parties mobiles par rapport \u00e0 l&rsquo;architecture monolithique. Chaque service est simple, mais le syst\u00e8me dans son ensemble devient complexe. La communication entre les services est compliqu\u00e9e ; les API encouragent g\u00e9n\u00e9ralement cette communication et sont g\u00e9n\u00e9ralement mises en \u0153uvre pour relier les plateformes logicielles. La complexit\u00e9 des applications microservices augmente avec le nombre de microservices.    <\/li>\n\n\n\n<li>Congestion du r\u00e9seau. L&rsquo;utilisation d&rsquo;un grand nombre de petits services peut entra\u00eener une communication interservices. Et lorsque la cha\u00eene de d\u00e9pendances des services devient tr\u00e8s longue, la latence suppl\u00e9mentaire devient un probl\u00e8me. Cela signifie que vous devrez cr\u00e9er des API avec soin. Pensez aux formats de s\u00e9rialisation et cherchez \u00e0 utiliser des mod\u00e8les de communication asynchrones.    <\/li>\n\n\n\n<li>D\u00e9veloppement et tests. La conception d&rsquo;un petit service qui d\u00e9pend d&rsquo;autres services d\u00e9pendants n\u00e9cessite une approche diff\u00e9rente de l&rsquo;\u00e9criture d&rsquo;un programme traditionnel en couches. Les outils disponibles ne sont pas toujours con\u00e7us pour fonctionner avec des d\u00e9pendances de service. Le remaniement \u00e0 travers les fronti\u00e8res des services devient ardu, et les tests des d\u00e9pendances de services sont complexes, en particulier lorsque l&rsquo;application \u00e9volue rapidement.   <\/li>\n<\/ul>\n\n<p><strong>Migrer d&rsquo;un monolithe \u00e0 des microservices<\/strong><\/p>\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/devologyx.io\/wp-content\/uploads\/2023\/07\/pexels-liz-lauren-6000599-1024x683.jpg\" alt=\"\" class=\"wp-image-16686\" width=\"411\" height=\"274\" srcset=\"https:\/\/devologyx.io\/wp-content\/uploads\/2023\/07\/pexels-liz-lauren-6000599-1024x683.jpg 1024w, https:\/\/devologyx.io\/wp-content\/uploads\/2023\/07\/pexels-liz-lauren-6000599-300x200.jpg 300w, https:\/\/devologyx.io\/wp-content\/uploads\/2023\/07\/pexels-liz-lauren-6000599-768x512.jpg 768w, https:\/\/devologyx.io\/wp-content\/uploads\/2023\/07\/pexels-liz-lauren-6000599-1536x1024.jpg 1536w, https:\/\/devologyx.io\/wp-content\/uploads\/2023\/07\/pexels-liz-lauren-6000599-2048x1365.jpg 2048w\" sizes=\"(max-width: 411px) 100vw, 411px\" \/><\/figure>\n\n<p>L&rsquo;\u00e9volutivit\u00e9 est la principale raison pour laquelle les d\u00e9veloppeurs passent d&rsquo;une architecture monolithique \u00e0 une architecture microservices. L&rsquo;\u00e9volutivit\u00e9 des composants rarement utilis\u00e9s est insignifiante. Les composants utilis\u00e9s par la plupart des utilisateurs doivent \u00eatre pris en compte en premier lieu lors de la migration. Voici une proc\u00e9dure typique pour passer d&rsquo;un syst\u00e8me monolithique \u00e0 une approche microservices.   <\/p>\n\n<ol class=\"wp-block-list\">\n<li>Identifiez les composants logiques.<\/li>\n<\/ol>\n\n<p>Les donn\u00e9es utilis\u00e9es dans le syst\u00e8me comportent principalement trois \u00e9l\u00e9ments d&rsquo;information : les objets de donn\u00e9es, les actions, les t\u00e2ches \u00e0 effectuer et les cas d&rsquo;utilisation. Les constructions logiques sont les objets de donn\u00e9es qui repr\u00e9sentent les donn\u00e9es utilis\u00e9es. Les actions de donn\u00e9es sont des commandes permettant d&rsquo;ex\u00e9cuter une t\u00e2che sur un ou plusieurs objets de donn\u00e9es. Les t\u00e2ches \u00e0 effectuer repr\u00e9sentent les fonctions que les utilisateurs appellent pour remplir leur r\u00f4le.   <\/p>\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>Refactoriser les composants<\/li>\n<\/ol>\n\n<p>Lorsque tous les composants ont \u00e9t\u00e9 identifi\u00e9s et assembl\u00e9s, organisez-les en interne &#8211; certaines fonctionnalit\u00e9s en double doivent \u00eatre \u00e9limin\u00e9es avant d&rsquo;appliquer le microservice. Il ne doit y avoir qu&rsquo;un seul microservice qui ex\u00e9cute une fonction. <\/p>\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>Identifier les d\u00e9pendances des composants<\/li>\n<\/ol>\n\n<p>Apr\u00e8s avoir identifi\u00e9 et organis\u00e9 les composants \u00e0 migrer, le syst\u00e8me doit reconna\u00eetre les d\u00e9pendances au sein des composants. Pour ce faire, il utilise g\u00e9n\u00e9ralement une analyse statique du code source pour rechercher les appels entre les diff\u00e9rentes biblioth\u00e8ques et les diff\u00e9rents types de donn\u00e9es. <\/p>\n\n<ol class=\"wp-block-list\" start=\"4\">\n<li>Groupes de composants ponctuels<\/li>\n<\/ol>\n\n<p>L&rsquo;architecte du syst\u00e8me doit se concentrer sur la cat\u00e9gorisation des composants en groupes pouvant \u00eatre transform\u00e9s en microservices. L&rsquo;objectif est de trouver un petit ensemble d&rsquo;objets et leurs actions \u00e9l\u00e9mentaires qui doivent \u00eatre s\u00e9par\u00e9s dans le syst\u00e8me final. <\/p>\n\n<ol class=\"wp-block-list\" start=\"5\">\n<li>Cr\u00e9er une API pour l&rsquo;interface utilisateur \u00e0 distance<\/li>\n<\/ol>\n\n<p>L&rsquo;interface utilisateur \u00e0 distance est la seule approche de la communication entre le syst\u00e8me, ses composants et ses utilisateurs. Cette interface doit \u00eatre syst\u00e9matiquement planifi\u00e9e et \u00e9volutive afin d&rsquo;\u00e9viter les probl\u00e8mes au fur et \u00e0 mesure de la croissance du syst\u00e8me. <\/p>\n\n<ol class=\"wp-block-list\" start=\"6\">\n<li>D\u00e9placez les groupes de composants vers les macroservices.<\/li>\n<\/ol>\n\n<p>Les macro-services ont tendance \u00e0 avoir une position mod\u00e9r\u00e9e en ce qui concerne la r\u00e9partition des r\u00e9f\u00e9rentiels de donn\u00e9es et \u00e0 permettre des interactions plus complexes avec les objets de donn\u00e9es. Il est donc essentiel de consid\u00e9rer leur utilisation comme une \u00e9tape provisoire pour achever la migration. <\/p>\n\n<ol class=\"wp-block-list\" start=\"7\">\n<li>Passer des macroservices aux microservices<\/li>\n<\/ol>\n\n<p>L&rsquo;extraction des objets de donn\u00e9es, des composants et des fonctions de l&rsquo;architecture monolithique vers les macroservices permet de comprendre comment ces composants peuvent \u00eatre divis\u00e9s en microservices. N&rsquo;oubliez pas que chaque microservice contient sa base de donn\u00e9es et n&rsquo;ex\u00e9cute qu&rsquo;un ensemble limit\u00e9 d&rsquo;actions sur ses objets de donn\u00e9es. <\/p>\n\n<ol class=\"wp-block-list\" start=\"8\">\n<li>D\u00e9ploiement et essais<\/li>\n<\/ol>\n\n<p>L&rsquo;\u00e9tape suivante comprend les tests d&rsquo;int\u00e9gration et le d\u00e9ploiement lorsque le microservice est pr\u00eat. L&rsquo;architecture monolithique doit \u00eatre adapt\u00e9e pour utiliser le nouveau service pour ses demandes de donn\u00e9es au lieu de la base de donn\u00e9es existante. <\/p>\n\n<p><strong>Conclusion<\/strong><\/p>\n\n<p>Adopter une architecture de microservices n&rsquo;est pas une approche universelle. Bien qu&rsquo;elle soit de plus en plus c\u00e9l\u00e8bre, l&rsquo;architecture monolithique pr\u00e9sente des avantages robustes et importants par rapport aux microservices, ainsi que des points forts. Vous devriez commencer par une architecture monolithique pour valider votre nouvelle id\u00e9e commerciale. Une petite \u00e9quipe de d\u00e9veloppeurs vous accompagne pour d\u00e9velopper une application simple sans avoir besoin de microservices.   <\/p>\n\n<p>L&rsquo;architecture microservices est plus satisfaisante pour les applications \u00e9tendues et complexes. Elle fournit des solutions de produits pour un syst\u00e8me complexe avec plusieurs fonctions et services au sein d&rsquo;une seule application. Les microservices sont parfaits pour les plateformes couvrant de nombreux parcours et flux de travail des utilisateurs.  <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Je suis s\u00fbr que vous avez rencontr\u00e9 un sujet comme l&rsquo;architecture monolithique VS microservices moins souvent que vous n&rsquo;avez entendu les gens discuter des paradigmes de programmation, des outils ou des cadres logiciels. Vous devez choisir le type d&rsquo;architecture logicielle d\u00e8s le d\u00e9but de votre projet. Il permet de d\u00e9finir la conception de votre application [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":16699,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_themeisle_gutenberg_block_has_review":false,"_jet_sm_ready_style":"","_jet_sm_style":"","_jet_sm_controls_values":"","_jet_sm_fonts_collection":"","_jet_sm_fonts_links":"","footnotes":""},"categories":[85],"tags":[],"writer":[],"class_list":["post-19702","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-non-classifiee"],"_links":{"self":[{"href":"https:\/\/devologyx.io\/fr\/wp-json\/wp\/v2\/posts\/19702","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devologyx.io\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devologyx.io\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devologyx.io\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/devologyx.io\/fr\/wp-json\/wp\/v2\/comments?post=19702"}],"version-history":[{"count":1,"href":"https:\/\/devologyx.io\/fr\/wp-json\/wp\/v2\/posts\/19702\/revisions"}],"predecessor-version":[{"id":19705,"href":"https:\/\/devologyx.io\/fr\/wp-json\/wp\/v2\/posts\/19702\/revisions\/19705"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devologyx.io\/fr\/wp-json\/wp\/v2\/media\/16699"}],"wp:attachment":[{"href":"https:\/\/devologyx.io\/fr\/wp-json\/wp\/v2\/media?parent=19702"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devologyx.io\/fr\/wp-json\/wp\/v2\/categories?post=19702"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devologyx.io\/fr\/wp-json\/wp\/v2\/tags?post=19702"},{"taxonomy":"writer","embeddable":true,"href":"https:\/\/devologyx.io\/fr\/wp-json\/wp\/v2\/writer?post=19702"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}