Microservices: Définition et Concepts PDF

Summary

Ce document présente les concepts de base des microservices, leur architecture et contraintes. Il décrit les avantages et inconvénients et propose des exemples pratiques, et des concepts complémentaires. Des motifs d'architecture comme Circuit Breaker et Retry Pattern sont mentionnés.

Full Transcript

3. Avantages 1. Microservices : Définition et Concepts Scalabilité : Ajuste uniquement les services nécessaires Microservice : Une unité logicielle autonome réalisant une...

3. Avantages 1. Microservices : Définition et Concepts Scalabilité : Ajuste uniquement les services nécessaires Microservice : Une unité logicielle autonome réalisant une (exemple : augmenter les instances du service de recherche 2. Caractéristiques clés des Microservices fonctionnalité métier spécifique, indépendante des autres en cas de forte demande). Modularité : Chaque service traite une fonction précise services. Développement rapide : Les équipes peuvent travailler en (exemple : gestion des utilisateurs). Architecture Microservices : Approche où une application est parallèle sur différents services. Autonomie : Les services peuvent être développés, déployés divisée en plusieurs services indépendants, souvent Flexibilité technologique : Chaque service peut utiliser des et maintenus indépendamment. connectés via des API. langages ou des bases de données différents. Découplage faible : Réduction des interdépendances entre API (Application Programming Interface) : Interface Isolation des pannes : Une panne locale n’affecte pas services pour une meilleure évolutivité. permettant à différentes applications ou services de l’ensemble de l’application. communiquer. Réutilisabilité : Les services peuvent être partagés entre plusieurs applications. 4. Contraintes 5. Motifs d'architecture importants 6. Exemples pratiques Complexité accrue : La gestion, le déploiement et la Circuit Breaker : Bloque les appels vers un service défaillant Netflix avec AWS : surveillance nécessitent des outils spécifiques. pour éviter les pannes en cascade. Zuul : Gateway centralisant les requêtes client. Transactions distribuées : Synchronisation complexe pour Retry Pattern : Réessai automatique après une erreur, avec Hystrix : Circuit Breaker pour gérer les pannes. des opérations impliquant plusieurs services. des délais fixes ou exponentiels. Domain-Driven Design (DDD) : Latence réseau : Les communications entre services Event Broker : Intermédiaire gérant la distribution Bounded Context : Limite claire pour chaque service. introduisent des délais supplémentaires. d’événements entre producteurs et consommateurs. Collaboration avec les experts métier pour concevoir les Gestion des erreurs : Requiert des mécanismes robustes pour API Gateway : Point d’entrée unique pour tous les services, services. gérer les échecs et réessais. gérant l’authentification et le routage. 7. Sécurisation 9. Logging 8. Déploiement et maintenance Authentication : Confirme l’identité d’un utilisateur (exemple Définition : Le logging consiste à capturer et enregistrer les CI/CD (Continuous Integration/Continuous Deployment) : : mot de passe ou SSO). événements pour diagnostiquer, surveiller et auditer les Automatisation des tests et des déploiements pour Authorization : Définit ce qu’un utilisateur peut faire après systèmes. garantir la qualité. authentification. Outils Clés : Conteneurs (Docker) : Emballage des services pour une SSO (Single Sign-On) : Connexion unique pour accéder à ELK Stack : (Elasticsearch, Logstash, Kibana) pour portabilité et un déploiement simplifiés. plusieurs services. centraliser et explorer les logs. Kubernetes : Orchestrateur pour gérer et déployer les JWT (JSON Web Token) : Format sécurisé pour transmettre Fluentd : Collecte et envoie les logs vers diverses conteneurs à grande échelle. des informations sur l'utilisateur entre services. destinations. 10. Supervision et monitoring 9. Logging (suite) Prometheus : Collecte les métriques système pour les Pratiques Essentielles : analyser. Centralisation : Regrouper les logs de tous les services. 11. Concepts complémentaires Grafana : Outil de visualisation des données pour créer des Correlation ID : Suivre une requête unique à travers les Scalabilité horizontale : Ajouter des instances pour répartir la tableaux de bord. services. charge. Log4j : Bibliothèque de journalisation pour Java permettant Niveaux de logs : INFO, DEBUG, WARN, ERROR pour Scalabilité verticale : Augmenter les ressources d’une de générer des logs dans divers formats (fichier, console, classifier les événements. instance existante. etc.). Bénéfices : Service Catalog : Répertoire des services disponibles pour Splunk : Plateforme d’analyse et de gestion des logs, utilisée Diagnostic rapide des problèmes. une découverte facile. pour collecter, indexer et visualiser les données générées par Visualisation des anomalies en temps réel. des systèmes IT. Idéal pour diagnostiquer des problèmes et Conformité réglementaire grâce à des journaux traçables. identifier des anomalies.

Use Quizgecko on...
Browser
Browser