Architectures Orientées Micro-Services
//page WIP//
Dans ce projet, nous avons étudié les architectures micro-services que ce soit niveau théorique, ou niveau pratique (via Docker).
Côté théorique
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.
Comment marche cette architecture ?
Cette architecture 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: insérer schéma arch oms
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.
Dans quelles types d'entreprises est-elle utilisée ?
- 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 autres architectures
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 |
Côté Pratique (Docker)
Installation
Installer un conteneur depuis DockerHub
Créer un conteneur
Utiliser un conteneur
Faire communiquer deux conteneurs
Commandes utiles
Liens utiles
[] [] []