Une application monolithique combine l’interface utilisateur et les couches d’accès aux données pour plusieurs fonctionnalités en une seule application. Généralement, une application monolithique existe sous la forme d’une base de code unique qui est modifiée par plusieurs équipes au sein d’une organisation, et est déployée en tant qu’unité unique contenant toutes les fonctionnalités maintenues par ces équipes.
Les applications monolithiques sont souvent plus faciles à développer et à déployer grâce à l’intégration étroite de leurs composants. Cependant, lorsque la portée de l’application et les exigences de performance augmentent, une application monolithique peut devenir difficile à maintenir et à faire évoluer.
Les systèmes monolithiques peuvent convenir à des applications plus petites et moins complexes qui n’ont pas besoin d’évoluer rapidement ou d’être régulièrement maintenues. Voici quelques exemples d’applications qui reposent généralement sur des bases monolithiques (bien que leurs nouvelles fonctionnalités puissent être basées sur une infrastructure plus conteneurisée).
Bien que certains aspects des architectures monolithiques soient devenus obsolètes, il existe encore de nombreux objectifs et attributs positifs.
Les monolithes présentent les avantages suivants :
Si la nature singulière des monolithes a ses avantages, elle peut aussi poser des problèmes.
Les monolithes présentent certains inconvénients :
À l’architecture monolithique s’oppose l’architecture en microservices. Les microservices consistent en une approche de l’architecture logicielle qui permet de construire une application complexe de grande envergure à partir de petits composants. Ces composants peuvent remplir chacun une fonction unique (par exemple, l’authentification, la notification ou le traitement des paiements) ou fonctionner comme des ensembles au sein d’un monolithe. « Microservices » (ou simplement « services ») est également le terme utilisé pour désigner les petits composants eux-mêmes.
Alors que les applications monolithiques sont étroitement couplées (ce qui signifie que leurs composants sont interconnectés), une application microservices est distribuée (ce qui signifie que ses composants peuvent agir de manière indépendante). Comme les applications deviennent plus importantes et plus complexes, de nombreuses organisations envisagent soit d’abandonner les applications monolithiques, soit d’incorporer de nouvelles applications dans un format microservices.
NGINX est fier d’offrir les ressources éducatives gratuites suivantes pour ceux qui explorent les monolithiques et les microservices