Une application monolithique combine l'interface utilisateur et les couches d'accès aux données pour plusieurs fonctionnalités dans une seule application. En général, une application monolithique existe sous la forme d'une base de code unique modifiée par plusieurs équipes au sein d'une organisation et déployée en tant qu'unité unique contenant toutes les fonctionnalités gérées par ces équipes.
Les applications monolithiques peuvent souvent être plus faciles à développer et à déployer grâce à l’intégration étroite de leurs composants. Cependant, à mesure que la portée de l’application et les exigences de performances augmentent, un monolithe peut devenir difficile à maintenir et à faire évoluer.
Les systèmes monolithiques peuvent convenir aux applications plus petites et moins complexes qui n'ont pas besoin d'être rapidement mises à l'échelle ou d'être régulièrement entretenues. Vous trouverez ci-dessous quelques exemples d’applications qui ont généralement des fondations 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, elles présentent encore de nombreux objectifs et attributs positifs.
Certains avantages des monolithes incluent :
Si la nature singulière des monolithes présente des avantages, elle peut également entraîner des problèmes.
Certains inconvénients des monolithes incluent :
Contrairement à l'architecture monolithique, il existe une architecture de microservices . Les microservices sont une approche de l’architecture logicielle qui permet de créer une application volumineuse et complexe à partir de petits composants. Ces composants peuvent chacun exécuter une fonction unique (par exemple, l'authentification, la notification ou le traitement des paiements) ou fonctionner comme des groupes au sein d'un monolithe. « Microservices » (ou simplement « services ») est également le terme désignant 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 de microservices est distribuée (ce qui signifie que leurs composants peuvent agir indépendamment). À mesure que les applications deviennent plus grandes et plus complexes, de nombreuses organisations envisagent de migrer des monolithes ou d'intégrer de nouvelles applications dans un format de microservices.
NGINX est fier d'offrir les ressources éducatives gratuites suivantes pour ceux qui explorent les services monolithiques et les microservices