Captivea Parmi les multiples architectures informatiques, on peut en distinguer deux qui s’opposent : l’architecture monolithique et l’architecture microservices. https://www.captivea.com/web/image/9380-fotolia_142934672.jpg

L'architecture microservices avec Symfony

Sylvain Vizzini-Bruyas
Sylvain Vizzini-Bruyas
    5 août 2018
Main Cover

Parmi les multiples architectures informatiques, on peut en distinguer deux qui s’opposent : l’architecture monolithique et l’architecture microservices. L’architecture d’une application web désigne sa structure générale, l’organisation des différentes fonctionnalités, et les relations entre chaque élément. Dès le début de votre projet avec Symfony, il est nécessaire d’opter pour une architecture précise.

Les avantages de l’architecture microservices

Le principal problème des architectures monolithiques réside dans le fait qu’elles centralisent tous les besoins et que le moindre changement demande de modifier l’architecture en entier. Le mode de développement des applications Symfony évolue avec les différentes technologies : plusieurs développeurs travaillent dessus simultanément, sur des fonctionnalités indépendantes et avec des langages différents. Les applications deviennent donc plus complexes et il est difficile de garder l’architecture prévue à l’origine.

Les projets sont donc pensés autrement. On parle aujourd’hui de bloc applicatif, composés de services indépendants. Ces derniers sont amenés à communiquer entre eux (via des API). Il s’agit donc de maintenir un ensemble de modules, et non plus un module unique. Cette architecture va de pair avec le lotissement de votre projet Symfony. Si les lots ont été bien définis, cela vous permet de développer rapidement votre application et de sortir des livrables dans des délais courts, étape par étape.

architecture microservices Symfony

 

        Travailler en microservices permet également de distribuer les risques. En effet, si l’un des services tombe en panne, cela ne remet pas en cause le fonctionnement de l’application. De plus, la correction du bug est souvent plus rapide car les codes de chaque service sont plus simples et plus courts que celui utilisé dans une architecture monolithique. Cela vous permet d’identifier plus rapidement l’origine du problème et de le corriger rapidement. Cependant, la modification d’une spécification peut demander plus de travail avec une architecture microservices. En effet, en monolithique, vous ne la modifiez qu’une fois. En microservices, si cette spécification est présente dans plusieurs services, il faut la modifier dans chacun d’entre eux.

        Cette architecture est de plus en plus utilisée car elle permet de travailler de manière agile, permettant de modifier des éléments rapidement, ce qui est très recherché par les entreprises. Les développeurs peuvent travailler sur une partie spécifique, sans entraver le fonctionnement global de l’application. Il faut cependant rester vigilant quant à la communication entre chaque développeur. En effet, dès qu’un service est ajouté, il faut en informer le reste de l’équipe, afin de créer les API nécessaires et de rester au courant de l’avancée du projet dans sa globalité.

        architecture monolythique Symfony

         

        Les différentes approches de développement d’une architecture microservices

        Il existe deux écoles principales pour le développement d’une architecture microservices :

        • Passer d’une architecture monolithique en microservices

        Si vous ne souhaitez pas, dans un premier temps, développer votre application en infrastructure microservices, vous pouvez la développer en monolithique. Par la suite, si l’application devient plus complexe et requiert de plus en plus de fonctionnalités, vous pourrez la diviser en plusieurs services indépendants, communiquant les uns avec les autres. Ainsi, vous pourrez les gérer indépendamment du module principal. Le microservices vous permet d’être plus agile et plus réactif et de faire évoluer facilement votre application web. Cependant, cette migration demande plus de temps qu’une application développée en microservices dès le départ.


        • Commencer dès le début du développement en microservices

        Si depuis le début de votre projet vous travaillez en méthode agile, nous vous conseillons de développer directement une infrastructure microservices. Si cette organisation demande un cadrage et un lotissement plus précis, cela vous permet néanmoins de développer une application plus solide qu’en monolithique, vous permettant également d’être plus réactif. Mais, avant de vous lancer, assurez-vous d’avoir les compétences nécessaires à votre disposition et que votre projet Symfony soit bien cadré. Sinon, le développement de votre application web deviendra rapidement complexe.


        Captivea accompagne les entreprises dans leurs projets d'applications web avec Symfony.

        D'autres articles pourraient également vous intéresser :

        Projet Symfony

        Comment démarrer votre projet Symfony ?

        Avec le framework Symfony, tous les projets sont réalisables. En effet, il est possible de répondre à tous les besoins. Lire la suite

        Angular Symfony

        Réussir son intégration graphique avec Symfony et Angular

        Symfony permet de réaliser des applications web de façon structurée, avec un code clair et facilement maintenable. De son côté, Angular a l’avantage... Lire la suite

        Symfony technologies

        Symfony et les autres technologies

        Utiliser Symfony pour créer votre projet web, c’est bien. Le coupler avec d’autres technologies pour optimiser son utilisation et obtenir une application efficace, c’est mieux. Lire la suite

        CRM RGPD

        Un projet CRM ? Pensez à la conformité avec le RGPD

        Le RGPD (Règlement Général sur la Protection des Données) ou GDPR en anglais, est dans toutes les conversations. C’est LA nouvelle de ces derniers mois, la promesse d’une mutation... Lire la suite

        Téléchargez notre livre blanc Symfony

        Livre blanc Symfony

        Sylvain Vizzini-Bruyas

        Par Sylvain Vizzini-Bruyas , le 5 août 2018

        Je suis Project Manager à Captivea, spécialisé dans la réalisation et la réussite des projets que nos clients me confient. Je publie des articles sur ce blog en lien avec les technologies que j'utilise au quotidien.