24
Reaslisé par Haifa Ghidhaoui 1 Conception et Implémentation d’une solution pour la gestion des logs et la corrélation ID dans une architecture Micro- Service Réalisé par : Haifa Ghidhaoui

Sol Log CorrID

Embed Size (px)

DESCRIPTION

log parse

Citation preview

Vermeg Group presentation

Reaslis par Haifa Ghidhaoui1

Conception et Implmentation dune solution pour la gestion des logs et la corrlation ID dans une architecture Micro-Service

Ralis par : Haifa Ghidhaoui1

Plan

21234IntroductionComparaison entre larchitecture monolithique et larchitecture micro serviceComparaison entre larchitecture orient service et larchitecture micro serviceSolutions existantes :Corrlation IDSolutions existantes: Gestion des logs 5Jai essay de synthetiser mon travail selon le plan suivant ,,,,,,,,,,,,,,,,,,,,,,,,El finalement par une conclusion a laquelle je vais proposer mes solutions23IntroductionCroissance de la taille et de la complexit des systmes.Problmes au niveau du maintenance. Architecture limite: extensibilit, Dpendance.

Architecture Orient ServiceArchitecture Micro Service

Sadapter aux meilleures solutionsVu la Croissance de la taille et de la complexit des systmes et la ncessit de garantir une certaine qualit du logiciel dans des dlais de plus en plus courts avec les meilleurs couts possibles , On a eu recours a la sparation et la dcomposition des problmes en une suite des sous pbs! Cest vrai que lAOS a russt rsoudre convenablement les plus part de ces exigences !Mais ,Si nous sommes tous daccord de la ncessit de la Prvision de changements ,de profiter des technologie et plate-formes la plus adaptable chaque sous systme et de garantir les meilleur conditions pour la maintenance ,nous serons donc daccord que larchitecture micro service est la meilleur solution! En effet , en plus a tous les avantages et les solution que lAOS la apport , larch micro nous offre l'volutivit ,lasticit et lindpendance des techno et plateforme .

3Comparaison entre larchitecture monolithique et larchitecture micro service4 Architecture Monolithique Architecture Micro-Service

Dploiement

Lapplication au completLes services dploys indpendammentModificationreconstruction et re-dploiement complet Services remplaablesDveloppement Compliqu, Difficile , Long Simple, RapideMaintenance

DifficileFacile, fonctionne en mode dgrad

Technologie, Plate-forme

Coinc avec les premiers choix du projet Indpendance

Possibilit et facilit dadopter de nouvelles technologies mergentesAgilit Longue boucle de rtroactionPlus dagilit ,courte boucle de rtroactionles volutionsLimites Frquentes 44Comparaison entre larchitecture oriente service et larchitecture micro service Architecture oriente service Architecture MicroService

Units deployables

plusieurs services

Un seul service

Service

dfini sur la couche mtier dfini sur toutes les couches d'application Communication entre les services ESBAPI lgre5les services tant plus simplesun service qui fait trop de chose, risque de ne pas tre rutilisable

le but davoir des composants conu pour etre changer et favoriser le develop et deployment interactif ,Dans cette logique La MicroService a apparu

Esb communication,les pb de lsoa5Les problmes relatives lutilisation de lESB

Une architecture plus complexe Besoin de former des spcialistes dintgration

6SOAESB*Lutilisation des esb nous conduit vers une arch + complexe et souvant vous vous trouvez devant une situation qui ne demande pas lutilisation des ESB mais quand meme vous le branchez parce que vous pensez que vous pourriez en avoir besoin**Les entreprises font de grands efforts pour viter la participation d'autres quipes car cela cre des risques et plus de complexit et affecte gnralement les dlais de livraison.

SOA et ESB se basent sur des concepts contradictoire

6Les problmes relatives a lutilisation de lESB

7Plusieurs ESBs Un seul ESBLes entreprises doivent choisir : 1)soit de standardiser son approche de travail 2)soit dutiliser plusieurs ESB Ce qui demande de leffort supplmentaire dans les deux cas

7 Les implmentations existantes du Corrlation ID8Micro-Services8Corrlation ID9Corrlation IDun mcanisme qui trace les oprations.Suivie des erreurs.10Corrlation ID

Each reply message should contain a Correlation Identifier, a unique identifier that indicates which request message this reply is for.un identifiant qui est gnr et associ un seul demande dans l'applicationQuand une requte passe par diffrents services ,elle laisse son id pour quon peut visualiser les interactions et identifier le services qui a caus le problme,le traage des requtes dans une application micro services peut parfois tre trs difficile par exemple puisque la demande passe plusieurs services qui peuvent tre nimporte ou!

1011Corrlation IDZipkinEach reply message should contain a Correlation Identifier, a unique identifier that indicates which request message this reply is for.un identifiant qui est gnr et associ un seul demande dans l'applicationQuand une requte passe par diffrents services ,elle laisse son id pour quon peut visualiser les interactions et identifier le services qui a caus le problme,le traage des requtes dans une application micro services peut parfois tre trs difficile par exemple puisque la demande passe plusieurs services qui peuvent tre nimporte ou!

1112 les implmentations du corrlation ID : ZipkinZipkinTwitter Open sourceFinagleJava et Scala Google's Large-Scale Distributed Systems TracingInfrastructure , java???

Finagle est un extensible systme RPC pour la JVM, utilis pour construire des serveurs haute concurrenceFinagle ecrit en scala mais fournit en plus les API Java ou tout autre langage JVM-hberg.Scala est un langage de programmation multi-paradigme(programmation oriente objet et de programmation fonctionnelle)We use Scribe to transport all the traces from the different services to Zipkin and HadoopScribe est un serveur d'agrgation de donnes du journal ,temps rel ,Il est conu pour tre volutif et fiable.

1213 les implmentations du corrlation ID : Zipkin :Architecture

1)Les information de traage sont recueillies sur chaque hotes 2)Nous utilisons Scribe pour transporter toutes les traces des diffrents services Zipkin3) Une fois les donnes de traage arrive au collecteur Zipkin, nous vrifions qu'ils sont valides , puis on doit les stocker dans une bd(zipkin supporte casandra Redis, HBase, MySQL, PostgreSQL, SQLite, et H2)et on doit les indexer pour ouvir faire les recherches . 3)Query fournir aux utilisateurs un Thrift api simple pour trouver et rcuprer des traces. (Thrift est un langage de dfinition d'interface (IDL) conu pour la cration et la dfinition de services pour de nombreux langages)4) Interface graphique pour lutilisateur

1314

les implmentations du corrlation ID : Zipkin :Principe de fonctionnementName event,traceID,spanID,ParentID

sr - Server Receive. The server has received the request and will start processing it. cs - Client Send event. The client has made the request. This sets the beginning of the spanss - Server Send. The server has completed processing and has sent the request back to the client.cr - Client Recieve. The client has received the response from the server.1415Corrlation IDBraveEach reply message should contain a Correlation Identifier, a unique identifier that indicates which request message this reply is for.un identifiant qui est gnr et associ un seul demande dans l'applicationQuand une requte passe par diffrents services ,elle laisse son id pour quon peut visualiser les interactions et identifier le services qui a caus le problme,le traage des requtes dans une application micro services peut parfois tre trs difficile par exemple puisque la demande passe plusieurs services qui peuvent tre nimporte ou!

1516 BRAVE : Solutions du corrlation ID Kristof Adriaenssens -Backend Engineer at SoundCloudFlume lieu de Scribe parceque Flume est plus facile dployer, a une bonne documentation et des extensions sont crits en Java.(transporter toutes les traces)Zipkincollector sink sends Flume Events that contain Spans to the Zipkin Collector.ZipkinMetrics sink pour envoyer les metriques au ghraphite Once the trace data arrives at the Zipkin collector daemon we check that its valid, store it and the index it for lookups.

Graphite

1617 les implmentations du corrlation ID : Brave - Kristof Adriaenssens

Scala FinagleIntergration RESTEasy, Jersey, Apache HttpClientVous ne voulez pas utiliser Finagle Vous ne voulez pas ajouter scala comme dependence dans votre projet Vous voulez integer de plus RESTEasy, Jersey, Apache HttpClient

Brave

17

18Flume lieu de Scribe parceque Flume est plus facile dployer, a une bonne documentation et des extensions sont crits en Java.

Le ZipkinSpanCollectorSink, une partie du module de canal-Zipkin-collecteur-vier soumet portes au service de collecteur Zipkin. Le ZipkinMetricsSink, une partie du module de flume-Zipkin-metrics dissipateur soumet annotations personnalises avec la dure (pour mesurer certaines sections du code) la bibliothque Metrics. Metrics construit des histogrammes pour les mtriques et envoie les donnes un systme back-end pour le stockage et la visualisation. Metrics prend en charge plusieurs back-ends, mais la mise en uvre de l'vier aujourd'hui soutient graphite.ZooKeeper est un logiciel de gestion de configuration pour systmes distribus, bas sur le logiciel Chubby dvelopp par Google.

Si vous utilisez le ZooKeeperSamplingTraceFilter partir du module braves-tracefilters vous pouvez activer / dsactiver le traage ou de rgler le taux d'chantillonnage en utilisant ZooKeeper comme galement indiqu sur le dessin.

18

19Solutions existantes pourgrer les logs Micro-Services19ElasticSearch , Logstash, Kibana 20Bluemix, Quicklizard...

Sam Newman : un consultant technique chez ThoughtWorks et lauteur du livre Building Microservices.

Ibm bluemix logging solution,.elasticsearch: permet de stocker, rechercher et analyser de trs gros volumes de donnes.

Kibana permet de visualiser et dagrger sous diffrentes formes des donnes issues de la base dElasticsearch.Les donnes intgres Elasticsearch peuvent provenir dune base relationnelle (par exemple Oracle) comme dune base NoSQL (par exemple MongoDB).Une instance de logstash consomme les messages afin de les indexer dans ElasticSearch (ici, logstash est configur en indexeur);ElasticSearch stocke et met disposition nos messages;Java ,reference

20

ELK Bleumix 21Bluemix ne persiste pas automatiquement les fichiers journaux des applications mais elle permet aux developpeur de manipuler ses log avec des services externes les trio elk .En effet, loggregator est le composant cloud foundry qui responsable du logging ,Par defaut les lignes de logs sont affich dans le consolevous pouvez utiliser des systmes exterieurs comme dans ce cas ELK ,Donc les lignes de logs sont enoyer vers logstash,logstash consomme les messages logs afin de les indexer dans ElasticSearch (ici, logstash est configur en indexeur)ElasticSearch stocke et met disposition nos messages logsKibana permet de visualiser et dagrger sous diffrentes formes des donnes issues de la base dElasticsearch

Ibm bluemix logging solution,de logstash consomme les messages afin de les indexer dans ElasticSearch

.elasticsearch: permet de stocker, rechercher et analyser de trs gros volumes de donnes.

Kibana permet de visualiser et dagrger sous diffrentes formes des donnes issues de la base dElasticsearch.Les donnes intgres Elasticsearch peuvent provenir dune base relationnelle (par exemple Oracle) comme dune base NoSQL (par exemple MongoDB).Une instance de logstash consomme les messages afin de les indexer dans ElasticSearch (ici, logstash est configur en indexeur);ElasticSearch stocke et met disposition nos messages;Java ,reference

2122Netflix: Blitz4jBlitz4jFramework de journalisationOpen sourceLog4j Asynchrone Utiliser pour rduire les conflits multithread et activer la journalisation hautement volutive sans affecter les caractristiques de performance de l'application.

22

23Suro est un pipeline de donnes distribue OS qui permet le dplacement, l'agrgation, le routage, le stockage de donnes. Sa conception est axe sur une configuration facile et l'exploitation de plusieurs sources de donnes(events).Les vnements incluent les lignes de log.Druide est un open-source b de donnes distribue oriente colonne crit en Java. Permet lexploitation des analyses en temps rel sur de grands ensembles de donnesKafka est un service de commit de traces distribu, partitionn et rpliqu. Les producteurs publient des messages dans des sujets Kafka, les consommateurs s'abonnent ces sujets et consomment les messages. Un serveur dans un cluster Kafka est appel un intermdiaire. Pour chaque sujet, le cluster Kafka maintient une partition pour la monte en charge, le paralllisme et la rsistance aux pannes23

Copyright 2004-2011 VERMEG

Information on this document may not be reproduced or republished on any materials and may not be given to any third part.

L'information contenue dans ce document ne peut pas tre reproduite ou republie sur quelque support et ne peut pas tre communique un tiers.2424