« Architectures Orientées Micro-Services » : différence entre les versions

De Wiki du LAMA (UMR 5127)
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 3 : Ligne 3 :
Dans ce projet, nous avons étudié les architectures micro-services que ce soit niveau [https://mbaron.developpez.com/cours/microservices/introduction-generalites/ théorique], ou niveau pratique (via [https://www.docker.com/ Docker]).
Dans ce projet, nous avons étudié les architectures micro-services que ce soit niveau [https://mbaron.developpez.com/cours/microservices/introduction-generalites/ théorique], ou niveau pratique (via [https://www.docker.com/ Docker]).


= Côté théorique =
= Dans la théorie =


=== Introduction ===
=== Introduction ===
Ligne 11 : Ligne 11 :
Lors de leur invention, cela fut une révolution dans la création des services, les rendant plus rapides et plus économes à grande échelle que les architectures orientées services.
Lors de leur invention, cela fut une révolution dans la création des services, les rendant plus rapides et plus économes à grande échelle que les architectures orientées services.


=== Qu'est-ce qu'une architecture logicielle ? ===
=== Architecture logicielle ===


*<i>Voir "[https://fr.wikipedia.org/wiki/Architecture_logicielle Architecture Logicielle]" sur wikipédia.</i>
*<i>Voir "[https://fr.wikipedia.org/wiki/Architecture_logicielle Architecture Logicielle]" sur wikipédia.</i>
Ligne 17 : Ligne 17 :
Une architecture logicielle décrit l'organisation globale d'un réseau, que ce soit les échanges ou la taille des entités.
Une architecture logicielle décrit l'organisation globale d'un réseau, que ce soit les échanges ou la taille des entités.


=== Comment marche une architecture orientée micro-services ? ===
=== Architecture orientée micro-services ===


Une architecture orientée micro-services se base sur l'architecture du Web, dans le sens où il n'y a pas de serveur centralisé. Chaque micro-service est un serveur, que l'on nomme conteneur, et ces conteneurs communiquent entre-eux, afin d'aboutir à ce que l'on recherche.
Une architecture orientée micro-services se base sur l'architecture du Web, dans le sens où il n'y a pas de serveur centralisé. Chaque micro-service est un serveur, que l'on nomme conteneur, et ces conteneurs communiquent entre-eux, afin d'aboutir à ce que l'on recherche.
Ligne 36 : Ligne 36 :
Enfin, si une surcharge se produit sur un micro-service car beaucoup d'utilisateurs le demande, nous pouvons dupliquer ce service sans modifier l'architecture, car les micro-services seront identiques et savent où aller chercher leurs informations.
Enfin, si une surcharge se produit sur un micro-service car beaucoup d'utilisateurs le demande, nous pouvons dupliquer ce service sans modifier l'architecture, car les micro-services seront identiques et savent où aller chercher leurs informations.


=== Utilisation en entreprise ===
=== Dans quelles types d'entreprises est-elle utilisée ? ===


*Entreprises de vente de masse ([https://www.amazon.fr/ Amazon])
*Entreprises de vente de masse ([https://www.amazon.fr/ Amazon])
Ligne 74 : Ligne 74 :
|}
|}


= Côté Pratique (Docker) =
= Dans la Pratique (Docker) =
=== Installation ===
=== Installation ===
=== Installer un conteneur depuis DockerHub ===
=== Installer un conteneur depuis DockerHub ===

Version du 4 mai 2020 à 21:55

//page WIP//

Dans ce projet, nous avons étudié les architectures micro-services que ce soit niveau théorique, ou niveau pratique (via Docker).

Dans la théorie

Introduction

Le terme d'architectures micro-services est apparu aux alentours de 2011 lors d'un workshop sur les différentes architectures logicielles.

Lors de leur invention, cela fut une révolution dans la création des services, les rendant plus rapides et plus économes à grande échelle que les architectures orientées services.

Architecture logicielle

Une architecture logicielle décrit l'organisation globale d'un réseau, que ce soit les échanges ou la taille des entités.

Architecture orientée micro-services

Une architecture orientée micro-services se base sur l'architecture du Web, dans le sens où il n'y a pas de serveur centralisé. Chaque micro-service est un serveur, que l'on nomme conteneur, et ces conteneurs communiquent entre-eux, afin d'aboutir à ce que l'on recherche.

Exemple :

Monolithique Micro-service
Monolit.png OMS.png

Cette architecture permet un travail à équipe réduite, car l'on assigne une équipe à un micro-service, qui ne nécessite pas de connaître tous les langages, mais uniquement les langages du micro-service sur lequel elle travaille.

De plus, une mise à jour d'une fonctionnalité ne nécessite que la mise à jour du conteneur en question, et non de toute l’infrastructure comme sur une architecture monolithique.

Enfin, si une surcharge se produit sur un micro-service car beaucoup d'utilisateurs le demande, nous pouvons dupliquer ce service sans modifier l'architecture, car les micro-services seront identiques et savent où aller chercher leurs informations.

Utilisation en entreprise

  • Entreprises de vente de masse (Amazon)
  • Sites de Streaming Vidéo ou Audio (Netflix ou Deezer)
  • Sites d'information utilisateur dans le domaine du transport (comme la SNCF ou Air France)
  • Applications qui vendent des services en général (comme Uber ou Google Maps)

Comparatif avec les architectures les plus communes

Architectures Monolithique Orientée Services Orientée Micro-Services
Forme Une seule grosse application contenant toutes les fonctions Une application par type de fonction Une application par fonction
Nombres de langages Un seul pour toute l'application afin de faciliter la communication Un nombre défini lors de la création du réseau Autant de langages que l'on veut
Moyen de communication Par les données Par les services Par les services
Force du couplage Fort Moyen Faible

Dans la Pratique (Docker)

Installation

Installer un conteneur depuis DockerHub

Créer un conteneur

Utiliser un conteneur

Faire communiquer deux conteneurs

Commandes utiles

Liens utiles