samedi 23 mai 2020

Introduction aux Microservices: partie 2


On a vu, dans la première partie de cette introduction aux microservices, qu’il n’existe pas de définition formelle du style architectural des microservices. Toutefois, plusieurs auteurs et praticiens s’accordent sur un ensemble de caractéristiques communes aux architectures qui répondent à l’étiquette des microservices. Comme pour toute définition qui décrit des caractéristiques communes, les architectures de microservices n'ont pas toutes ces caractéristiques, mais on peut s’attendre à ce que la plupart présentent plusieurs de ces caractéristiques.
Dans cet article, je présente neuf caractéristiques communes aux architectures de microservices.

samedi 16 mai 2020

Introduction aux Microservices: partie 1

L’émergence des architectures microservices est la réponse de l’industrie aux problèmes rencontrés avec les monolithes et avec les implémentations de SOA avec L’ESB. Le terme “microservice” est apparu dans le vocabulaire du monde des applications d’entreprise il y a déjà quelques années, mais on l’entend de plus en plus ces derniers temps. Ce modèle d’architecture logicielle devient toujours plus attrayant et nombreux sont les nouveaux projets qui l’adoptent. Les résultats sont jusqu'à présent positifs à tel point que ce style est en train de devenir le choix par défaut pour la création des logiciels d'entreprise. Cependant, il n’existe pas beaucoup d'informations qui décrivent ce modèle d’architecture, et comment le mettre en œuvre, en particulier pour le public francophone.


Dans cet article, je présente les concepts fondamentaux des microservices: la théorie derrière les microservices, la définition des concepts, les caractéristiques et la structure d'un microservice.


samedi 9 mai 2020

Mise en oeuvre de SOA avec l'ESB: les limites

Dans les premiers styles de mise en œuvre des architectures orientées services (SOA), les services qui composent l’application sont organisés autour d’un bus de services d’entreprise (ESB) qui agit comme socle d’intégration entre eux pour satisfaire les exigences de réutilisation et de modularité. Si ce modèle a permis d’ouvrir les fonctions et les processus de l’entreprise aux partenaires externes, il ne parvient pas à dépasser totalement ses précurseurs monolithiques.  D'un côté, SOA permet de développer, tester et paramétrer les services simultanément, sans devoir subir des cycles de développement monolithiques. De l'autre côté, l’ESB est à son tour atteint du syndrome des monolithes. Les constructeurs y ajoutent de plus en plus de fonctionnalités, en particulier différentes logiques de transformation des formats des données et d’orchestration des services. Il devient ainsi un goulet d’étranglement et un potentiel point de défaillance sur le plan architectural et organisationnel.  Dans cet article, je présente l'architecture orientée service (SOA), suivie d'un exemple d'une implémentation SOA basée sur un bus de services d'entreprise et les problèmes qui en ont découlé.

dimanche 3 mai 2020

Architecture Monolithique: forces et faiblesses

Dans le domaine de l’ingénierie logicielle, une architecture est dite monolithique lorsqu'elle centralise tous les traitements du logiciel au sein d’une même unité applicative. Une telle architecture possède un avantage dans le cas du développement d’applications simples, mais le prix à payer est lourd sur le moyen et long termes. Les évolutions logicielles sont de plus en plus difficiles à déployer au fur et à mesure que les besoins évoluent. L'implémentation d'un changement, même le plus simple, est susceptible de se transformer en un projet complexe, car les composants de l'application sont devenus fortement interdépendants et la modularité s'est dégradée. Par ailleurs, les nouveaux besoins ne peuvent pas être satisfaits par ces architectures fortement centralisées. La recherche des solutions à ces limitations est à l’origine de l’émergence des architectures basées sur les services en général, et des microservices en particulier. Dans cet article, je présente le concept des architectures monolithes, un exemple d'application construite suivant cette approche, ainsi que ses avantages et ses limites.