Upload
olbati
View
107
Download
3
Embed Size (px)
Citation preview
OLBATI - Geek Time - Juin 2017 2
Plan
● Microservices● Techniques pour “logging” les microservices● Côté obscur des microservices● Outils pour surveiller et visualiser les
microservices● Zipkin● Démonstration
OLBATI - Geek Time - Juin 2017 3
Microservices
● Microservices are stateless
● Microservices are distributed
● Microservices are independent
OLBATI - Geek Time - Juin 2017 4
Techniques pour “logging”1. Logging from Individual Services:
➢ Chaque microservice possède son propre logs
source : https://www.loggly.com/blog/tools-and-techniques-for-logging-microservices/
OLBATI - Geek Time - Juin 2017 5
Techniques pour “logging”2. Logging from a Central Service
➢ Recueillir et centraliser les données de logs
source : https://www.loggly.com/blog/tools-and-techniques-for-logging-microservices/
OLBATI - Geek Time - Juin 2017 6
Techniques pour “logging”➢ logspout :
○ Logspout est un routeur de logs pour les conteneurs Docker qui s'exécute à l'intérieur de Docker. Il se connecte à tous les conteneurs, puis achemine les logs où vous le souhaitez.
○ Il dispose également d'un système de module extensible.
○ stateless
○ Ce n'est pas destiné à la gestion des fichiers logs ou à l'historique.
OLBATI - Geek Time - Juin 2017 7
Côté obscur des microservices1. Les fichiers de logs sont réparti entre les services
source : https://medium.com/
OLBATI - Geek Time - Juin 2017 8
Côté obscur des microservices2. Un problème causé par un seul service peut causer des
problèmes ailleurs
➢ Un problème, ce n’est pas forcément une exception
➢ Avoir un aperçu sur le payload peut aider à détecter les anomalies
OLBATI - Geek Time - Juin 2017 9
Côté obscur des microservices3. Trouver la cause principale d'une exception
➢ http 500 erreur interne au serveur
Mais qu'en est-il de problème réel? La véritable cause racine? Le code qui est réellement cassé….
OLBATI - Geek Time - Juin 2017 10
Côté obscur des microservices4. Gestion des versions et dépendances cycliques
entre les services
● Un cycle de dépendances entre les services peut causer des boucles infinies
● Mise à jour des API : Qu'il est l'ordre de mise à jour des microservices, et comment faire cette transition en toute sécurité
OLBATI - Geek Time - Juin 2017 15
Zipkin1. Définition
● Distributed tracing framework.
● Il aide à recueillir des données de synchronisation pour résoudre les problèmes de latence dans les architectures de Microservice.
● Il gère à la fois la collecte et la recherche de ces données.
● Il est une implémentation of Google's Dapper paper
OLBATI - Geek Time - Juin 2017 16
Zipkin2. Architecture
source : http://zipkin.io/
OLBATI - Geek Time - Juin 2017 17
Zipkina. Collector :
○ C'est le composant responsable de la validation, stockage et indexation des données (traces) reçues.
b. Storage
○ C'est le composant responsable de stockage des données sur les bases des données par défaut, c'est Cassandra, mais il y a aussi de ElasticSearch et MySQL
OLBATI - Geek Time - Juin 2017 18
c. Search
○ C'est le composant qui expose l'API JSON pour trouver et récupérer des traces.
○ Le principal consommateur de cette API est l'IU Web.
d. Web UI :
○ Une interface graphique simple pour visualiser les traces.
○ Plusieurs filtres de recherche sont offerts par l'interface
OLBATI - Geek Time - Juin 2017 19
○ La possibilité d'afficher le graphe de connexions entre les microservices
○ Il n'y a pas d'authentification intégrée dans l'interface utilisateur
e. zipkin-browser-extension: