Institut Africain
d’informatique,
Représentation du TOGO
(IAI-TOGO)
THEME : ARCHITECTURE ET
MICROSERVICE
Cours : Introduction au Génie Logiciel
Membres du Groupe : Chargé du cours :
BOCCO Imelda M. SANI Koffi
KOUTA Gédéon
NYAMEDZOSE David
Année Académique : 2022-2023
• Introduction
• Qu'est-ce que l'architecture
microservice ?
Sommaire: • A quoi sert le
microservice ?
• Comment utiliser au mieux
les microservices ?
• Conclusion
INTRODUCTION
Introduction
Par le passé, l’industrie informatique utilisait
des solutions monolithiques ou basées sur
l’architecture orientée services (ou SOA pour
Service-Oriented Architecture) comme
standard. Cependant, le manque d’évolutivité
dynamique de ce genre de système
architectural n’était plus adapté à la
complexité croissante des infrastructures
actuelles. C’est là qu’intervient le microservice
Introduction
I. Qu'est-ce que l'architecture microservice
Qu'est-ce que l'architecture microservice
Les microservices sont un
style d’architecture utilisé
MICROSERVICES
par de nombreuses
organisations pour le
développement de logiciels.
Ils sont une évolution SOA
logique du système SOA
conçu pour atteindre un
degré élevé d’agilité, de
distribution rapide et
d’évolutivité.
Qu'est-ce que l'architecture microservice
Il existe un certain nombre « LE STYLE
de définitions des ARCHITECTURAL DES
microservices. La plus MICROSERVICES EST
UNE APPROCHE
commune et généralisée
PERMETTANT DE
reste celle de Martin Fowler DÉVELOPPER UNE
qui dit : APPLICATION UNIQUE
Concrètement, les SOUS LA FORME D’UNE
microservices sont une SUITE LOGICIELLE
méthode développement INTÉGRANT PLUSIEURS
logiciel utilisée pour concevoir SERVICES. CES
SERVICES SONT
une application comme un
CONSTRUITS AUTOUR
ensemble de services DES CAPACITÉS DE
modulaires. Chaque module L’ENTREPRISE ET
répond à un objectif métier PEUVENT ÊTRE
spécifique et communique DÉPLOYÉS DE FAÇON
avec les autres modules. INDÉPENDANTE. »
Qu'est-ce que l'architecture microservice
1. Différence entre microservice et
API
Différence entre microservice et API
Les microservices et les API
ont fait l’objet de beaucoup
de communication à tel point microservices
qu’il existe aujourd’hui une
certaine confusion sur la VS
façon dont ils sont liés. Tout
d’abord, il faut insister sur le
API
fait que les microservices et
les APIs sont deux choses
différentes
Différence entre microservice et API
Un microservice est une
architecture pour les
applications qui sépare une
application en plusieurs
petits services web
autonomes
Différence entre microservice et API
L’API (Application
programming Interface) est,
comme son nom l'indique,
une interface de
programmation. Elle
constitue le cadre à travers
lequel un développeur peut
interagir avec une
application
Différence entre microservice et API
Les APIs sont un ensemble de classes, méthodes, fonctions
et constantes qui sert d’interface par laquelle un logiciel peut
offrir ses services à d’autres logiciels. Elles servent
concrètement à accéder aux données d’une application et à
utiliser ses fonctionnalités. La confusion se produit car il
existe un chevauchement entre ces deux concepts
informatiques. De nombreux microservices utilisent en effet
des API pour communiquer entre eux.
2. Le fonctionnement du
microservice
Le fonctionnement du microservice
Le concept de base du micro service est le suivant : c’est
une application qui ne fait qu’une chose mais qui le fait de
manière optimale. Ses bénéfices sont les suivants :
● Il est facilement remplaçable pour offrir une
évolutivité à l’application
● Il est déployé indépendamment
● Son développement est indépendant
Le fonctionnement du microservice
Bien qu’ils soient développés et déployables
indépendamment, chaque microservice n’a pas de raison
d’exister seul. Normalement, il existe de nombreux
microservices dans une architecture de ce type. Et pour que
la solution ou application fonctionne, les microservices
doivent communiquer et interagir les uns avec les autres. Le
microservice fait donc partie d’un écosystème plus vaste,
fonctionnant et travaillant avec d’autres microservices pour
accomplir ensemble les fonctions de leur application mère.
II. A quoi sert le microservice ?
A quoi sert le microservice ?
Les microservices ont été créés pour répondre à des besoins
de traitement de la donnée et d’organisation auxquels les
architectures SOA monolithiques ne pouvaient plus
répondre. Parmi toutes les utilités de l'écosystème de
microservices, il en existe 5 principales.
1. Réduction du temps de
développement
Réduction du temps de développement
Grâce à un développement distribué, plusieurs microservices
peuvent être travaillés et développés simultanément. La
durée du développement de l’application est de ce fait
réduite car plusieurs développeurs peuvent intervenir sur le
projet en même temps sans se déranger et nuire au travail
de l’autre
2. Évolutivité accrue
Évolutivité accrue
Avec les microservices et leur indépendance en termes de
développement et de déploiement, les développeurs peuvent
mettre à jour un composant sans que cela n’ait d’incidence
sur les autres composants de la solution. Cela permet de
faire évoluer l’application sereinement pour répondre à de
nouveaux besoins et de nouvelles demandes sans entraver
le fonctionnement du système.
3. Réduction des pannes
Réduction des pannes
Les microservices étant indépendants, lorsqu’un élément
tombe en panne ou rencontre un problème, l’ensemble de
l’application ne cesse pas de fonctionner contrairement aux
applications monolithiques. Il est également plus facile
d’identifier et de résoudre une panne dans ce type
d'écosystème.
4. L’adaptabilité de chaque
microservice aux outils de travail
L’adaptabilité de chaque microservice aux outils
de travail
L’indépendance des composants offre la possibilité de
paramétrer les microservices avec différents langages de
programmation. Ainsi, les outils opérationnels utilisés par
l’entreprise peuvent être rendus compatibles avec la solution
globale. De plus, l’évolution technologique ne constitue plus
un problème avec ce type d’architecture étant donné que les
langages d’implémentation de chacun des microservices
peuvent être changés pour s’adapter aux nouvelles
innovations.
5. La flexibilité par rapport au
cloud
La flexibilité par rapport au cloud
Une entreprise qui utilise l’architecture en microservices peut
réduire ou augmenter son usage du cloud en fonction de la
charge de l’application. L’organisation est ainsi beaucoup
plus flexible.
Autres exemples d'utilité
Autres exemples d'utilité
Migration de sites Web: un site Web complexe hébergé sur
une plate-forme monolithique peut être migré vers une plate-
forme de microservices dans le cloud, basée sur des
conteneurs.
Contenu multimédia: Grâce à l'architecture de microservices,
les images et les éléments vidéo peuvent être stockés dans
un système de stockage d'objets évolutif, et diffusés
directement sur le Web ou sur mobile.
Transactions et factures: Le traitement et le règlement des
paiements peuvent être séparés sous la forme d'unités de
services indépendantes afin que les paiements restent
acceptés si la facturation ne fonctionne pas.
Traitement des données: Une plate-forme de microservices
peut étendre la compatibilité cloud pour les services de
traitement de données modulaires existants.
III. Comment utiliser au mieux les
microservices ?
Comment utiliser au mieux les microservices ?
Un microservice nécessite une grande infrastructure et doit
être conçu à partir de zéro. Ils ne peuvent pas être isolés
complètement puisqu’ils sont conçus pour s’exécuter et
interagir dans un environnement dédié : l’écosystème des
microservices.
Pour que leur implémentation soit réussie elle doit être
réalisée avec un esprit de durabilité. Il faut en effet réfléchir
en amont à comment stabiliser l’environnement, comment le
faire évoluer et le rendre fiable et tolérant aux pannes. Voici
les bonnes pratiques, divisées en 4 couches, d’un
écosystème de microservices.
1. Le matériel
Le matériel
Cette couche comprend les serveurs hôtes physiques, les
bases de données et les systèmes d’exploitation. Qu’il s’agisse
d’un Linux, Solaris ou Windows, le système d’exploitation doit
être configuré avec des outils de gestion de configuration tels
que Ansible, Chef ou Puppet. Il doit également être utilisé pour
installer toutes les applications et définir les configurations
nécessaires. Sans ce travail en amont, vous aurez des
problèmes d’évolutivité. Si vous avez besoin d’effectuer une
mise à l’échelle, tout devra être configuré à nouveau. Vous
aurez également besoin d’une surveillance au niveau de l’hôte
pour résoudre rapidement les éventuels problèmes rencontrés.
2. Les communications
Les communications
Cette couche de l’infrastructure des microservices affecte
toutes les autres couches. Sans communication adéquate,
aucune des autres parties de l’architecture ne peut
fonctionner. Pour les données, les microservices peuvent
utiliser HTTP plus RAF ou un canal de communication TIFF.
Pour la messagerie, le microservice enverra des messages
sur le réseau via http ou le protocole choisi. Il est également
très important d’inclure la découverte, le registre et
l’équilibrage de charge dans la couche de communication
pour faciliter la communication dynamique à travers
l’infrastructure.
3. Le développement
Le développement
C’est la phase durant laquelle les applications sont en cours
de développement. Cette couche doit donc héberger tous les
outils de développement en libre-service permettant de créer
de nouvelles bases de données, tables, schémas et ports.
L’intégration d’outils de journalisation et de surveillance est
une étape vitale dans la couche de développement. Si tout a
été bien construit, le déploiement doit être automatique
4. Le microservice
Le microservice
C’est la dernière couche, et c’est la plus simple. C’est là que
le microservice vit et s’exécute. C’est également dans cette
couche que le fichier de configuration réside et que les outils
en libre-service des autres couches doivent être placés si
des modifications doivent être apportées.
CONCLUSION
Conclusion
L'architecture microservice est de plus en plus populaire
pour développer des logiciels et applications grâce à ses
nombreux avantages tels que son évolutivité. Son style
modulaire permet des pratiques d’évolution continue. Les
entreprises se tournent de plus en plus vers les
microservices pour leurs architectures de développement et
d’applications cloud.
FIN