2. 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
3. OLBATI - Geek Time - Juin 2017 3
Microservices
● Microservices are stateless
● Microservices are distributed
● Microservices are independent
4. 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/
5. 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/
6. 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.
7. OLBATI - Geek Time - Juin 2017 7
Côté obscur des microservices
1. Les fichiers de logs sont réparti entre les services
source : https://medium.com/
8. OLBATI - Geek Time - Juin 2017 8
Côté obscur des microservices
2. 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
9. OLBATI - Geek Time - Juin 2017 9
Côté obscur des microservices
3. 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é….
10. OLBATI - Geek Time - Juin 2017 10
Côté obscur des microservices
4. 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é
11. OLBATI - Geek Time - Juin 2017 11
Outils
1. AppDynamics
14. OLBATI - Geek Time - Juin 2017 14
Outils
4. OpsClarity
15. OLBATI - Geek Time - Juin 2017 15
Zipkin
1. 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
16. OLBATI - Geek Time - Juin 2017 16
Zipkin
2. Architecture
source : http://zipkin.io/
17. OLBATI - Geek Time - Juin 2017 17
Zipkin
a. 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
18. 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
19. 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:
20. OLBATI - Geek Time - Juin 2017 20
Zipkin & Brave & Jetty & Spring