SlideShare ist ein Scribd-Unternehmen logo
1 von 19
Downloaden Sie, um offline zu lesen
Hystrix + ELK
Markus Rodi
Karlsruhe, 29.01.2015
2
1. Hystrix
2. Use Cases
3. Problemstellungen
4. Hystrix Dashboard
5. Architektur
6. Softwarekomponenten
7. Konfiguration
8. Kibana Dashboards
9. Fazit und Ausblick
Agenda
3
●
Implementierung von Patterns zur Ausfallsicherheit
- Graceful Degradation
- Fail Fast
- Fail Silent
- Circuit Breaker
- Bulkheading
Hystrix
Was ist das überhaupt?
4
●
Empfehlungen für Kunden durch externes System
●
Fehler/Timeouts schlagen sofort auf der Webseite auf
Lösung mit Hystrix:
●
Fallback auf lokales System
●
Empfehlungen werden von statischen Regeln erstellt
Use Case
Kundenspezifische Empfehlungen
5
●
Begrenzte Ressourcen werden gebunden
●
Aufwand für Connection-Handling steigt rapide
●
z.B.: DB Verbindungen werden für andere Dienste blockiert
Lösung mit Hystrix:
●
Direkte Fehlerrückgabe
●
Verhindert weitere Laufzeitprobleme
Use Case
Fehler-Kaskaden
6
●
Hystrix bietet eine Echtzeit-API aber keine Historisierung
●
Dashboard bietet nur eine Übersicht der letzten 2 Minuten
●
Keine Filtermöglichkeit
●
Keine Möglichkeit zur schrittweisen Verfeinerung der Analyse
Problemstellungen
Historie und Analyse
7
●
Datenmenge für klassisches Monitoring (Zabbix, Nagios) nicht zu bewältigen
- 50 Werte pro Komponente
- 12 Werte pro Threadpool
=> bei 10 Komponenten + 3 Threadpools ca. 2 Mio Events/Stunde/Server
●
Datenmenge wächst proportional zu:
- Anzahl der Server
- Anzahl der Komponenten
Problemstellungen
Datenmenge
8
Hystrix
Das Dashboard
9
Arichtektur
Dezentral
10
Arichtektur
Zentral
11
●
Ausrollen der Pakete und Konfigs per Puppet
●
Software-Stack:
- ELK
- Tomcat
- hystrix-dashboard.war
- trubine.war
- nginx
- Kibana
●
Types long/short → aggregierte Streams/einzelne Streams
Softwarekomponenten
Wie läuft das denn?
12
data: {"type":"HystrixThreadPool",
"name":"PlaybackGroup",
"currentActiveCount":0,
"currentCompletedTaskCount":0,
"currentCorePoolSize":10,
"currentLargestPoolSize":0,
"currentMaximumPoolSize":10,
"currentPoolSize":0,
"currentQueueSize":0,
"currentTaskCount":0,"
...}
Hystrix Event Stream
Die Basis
13
Logstash Konfiguration
Die Magie
input {
pipe {
type => "short"
tags => ["mw-01"]
command => "curl -s --url 'http://my.server/hystrix.stream' | cut -c 7- | sed
's/type/hystrixType/g'"
codec => json {}
}
14
Kibana
Das Ergebnis
15
Kibana
Verbindungsdaten zu externen Dienstleister
16
Kibana
CircuitBreakerOpen
17
Kibana
CircuitBreakerOpen
18
●
Schnell und einfach aufzusetzen
●
Datenmenge nicht unterschätzen
●
Skalierung sehr einfach
●
Redis als Cache um Datenverlust zu vermeiden
●
Curl ersetzen durch Programmierung auf Hystrix API
Fazit und Ausblick
19
Kontakt
Markus Rodi
Linux System Engineer
inovex GmbH
Office Karlsruhe
Ludwig-Erhard-Allee 6
76131, Karlsruhe
Mobil: 0173-3181-063
Mail: markus.rodi@inovex.de
Vielen Dank für Ihre Aufmerksamkeit!

Weitere ähnliche Inhalte

Mehr von inovex GmbH

lldb – Debugger auf Abwegen
lldb – Debugger auf Abwegenlldb – Debugger auf Abwegen
lldb – Debugger auf Abwegeninovex GmbH
 
Are you sure about that?! Uncertainty Quantification in AI
Are you sure about that?! Uncertainty Quantification in AIAre you sure about that?! Uncertainty Quantification in AI
Are you sure about that?! Uncertainty Quantification in AIinovex GmbH
 
Why natural language is next step in the AI evolution
Why natural language is next step in the AI evolutionWhy natural language is next step in the AI evolution
Why natural language is next step in the AI evolutioninovex GmbH
 
Network Policies
Network PoliciesNetwork Policies
Network Policiesinovex GmbH
 
Interpretable Machine Learning
Interpretable Machine LearningInterpretable Machine Learning
Interpretable Machine Learninginovex GmbH
 
Jenkins X – CI/CD in wolkigen Umgebungen
Jenkins X – CI/CD in wolkigen UmgebungenJenkins X – CI/CD in wolkigen Umgebungen
Jenkins X – CI/CD in wolkigen Umgebungeninovex GmbH
 
AI auf Edge-Geraeten
AI auf Edge-GeraetenAI auf Edge-Geraeten
AI auf Edge-Geraeteninovex GmbH
 
Prometheus on Kubernetes
Prometheus on KubernetesPrometheus on Kubernetes
Prometheus on Kubernetesinovex GmbH
 
Deep Learning for Recommender Systems
Deep Learning for Recommender SystemsDeep Learning for Recommender Systems
Deep Learning for Recommender Systemsinovex GmbH
 
Representation Learning von Zeitreihen
Representation Learning von ZeitreihenRepresentation Learning von Zeitreihen
Representation Learning von Zeitreiheninovex GmbH
 
Talk to me – Chatbots und digitale Assistenten
Talk to me – Chatbots und digitale AssistentenTalk to me – Chatbots und digitale Assistenten
Talk to me – Chatbots und digitale Assistenteninovex GmbH
 
Künstlich intelligent?
Künstlich intelligent?Künstlich intelligent?
Künstlich intelligent?inovex GmbH
 
Das Android Open Source Project
Das Android Open Source ProjectDas Android Open Source Project
Das Android Open Source Projectinovex GmbH
 
Machine Learning Interpretability
Machine Learning InterpretabilityMachine Learning Interpretability
Machine Learning Interpretabilityinovex GmbH
 
Performance evaluation of GANs in a semisupervised OCR use case
Performance evaluation of GANs in a semisupervised OCR use casePerformance evaluation of GANs in a semisupervised OCR use case
Performance evaluation of GANs in a semisupervised OCR use caseinovex GmbH
 
People & Products – Lessons learned from the daily IT madness
People & Products – Lessons learned from the daily IT madnessPeople & Products – Lessons learned from the daily IT madness
People & Products – Lessons learned from the daily IT madnessinovex GmbH
 
Infrastructure as (real) Code – Manage your K8s resources with Pulumi
Infrastructure as (real) Code – Manage your K8s resources with PulumiInfrastructure as (real) Code – Manage your K8s resources with Pulumi
Infrastructure as (real) Code – Manage your K8s resources with Pulumiinovex GmbH
 

Mehr von inovex GmbH (20)

lldb – Debugger auf Abwegen
lldb – Debugger auf Abwegenlldb – Debugger auf Abwegen
lldb – Debugger auf Abwegen
 
Are you sure about that?! Uncertainty Quantification in AI
Are you sure about that?! Uncertainty Quantification in AIAre you sure about that?! Uncertainty Quantification in AI
Are you sure about that?! Uncertainty Quantification in AI
 
Why natural language is next step in the AI evolution
Why natural language is next step in the AI evolutionWhy natural language is next step in the AI evolution
Why natural language is next step in the AI evolution
 
WWDC 2019 Recap
WWDC 2019 RecapWWDC 2019 Recap
WWDC 2019 Recap
 
Network Policies
Network PoliciesNetwork Policies
Network Policies
 
Interpretable Machine Learning
Interpretable Machine LearningInterpretable Machine Learning
Interpretable Machine Learning
 
Jenkins X – CI/CD in wolkigen Umgebungen
Jenkins X – CI/CD in wolkigen UmgebungenJenkins X – CI/CD in wolkigen Umgebungen
Jenkins X – CI/CD in wolkigen Umgebungen
 
AI auf Edge-Geraeten
AI auf Edge-GeraetenAI auf Edge-Geraeten
AI auf Edge-Geraeten
 
Prometheus on Kubernetes
Prometheus on KubernetesPrometheus on Kubernetes
Prometheus on Kubernetes
 
Deep Learning for Recommender Systems
Deep Learning for Recommender SystemsDeep Learning for Recommender Systems
Deep Learning for Recommender Systems
 
Azure IoT Edge
Azure IoT EdgeAzure IoT Edge
Azure IoT Edge
 
Representation Learning von Zeitreihen
Representation Learning von ZeitreihenRepresentation Learning von Zeitreihen
Representation Learning von Zeitreihen
 
Talk to me – Chatbots und digitale Assistenten
Talk to me – Chatbots und digitale AssistentenTalk to me – Chatbots und digitale Assistenten
Talk to me – Chatbots und digitale Assistenten
 
Künstlich intelligent?
Künstlich intelligent?Künstlich intelligent?
Künstlich intelligent?
 
Dev + Ops = Go
Dev + Ops = GoDev + Ops = Go
Dev + Ops = Go
 
Das Android Open Source Project
Das Android Open Source ProjectDas Android Open Source Project
Das Android Open Source Project
 
Machine Learning Interpretability
Machine Learning InterpretabilityMachine Learning Interpretability
Machine Learning Interpretability
 
Performance evaluation of GANs in a semisupervised OCR use case
Performance evaluation of GANs in a semisupervised OCR use casePerformance evaluation of GANs in a semisupervised OCR use case
Performance evaluation of GANs in a semisupervised OCR use case
 
People & Products – Lessons learned from the daily IT madness
People & Products – Lessons learned from the daily IT madnessPeople & Products – Lessons learned from the daily IT madness
People & Products – Lessons learned from the daily IT madness
 
Infrastructure as (real) Code – Manage your K8s resources with Pulumi
Infrastructure as (real) Code – Manage your K8s resources with PulumiInfrastructure as (real) Code – Manage your K8s resources with Pulumi
Infrastructure as (real) Code – Manage your K8s resources with Pulumi
 

Hystrix + ELK - Event-basierte Daten != Logfiles in ELK