Elasticsearch Intro und Integrationspatterns in Java EE Anwendungen. Weitere Informationen unter: http://www.exxeta.com/de/portfolio/it-consulting-solutions/web-mobile-solutions/search-and-data-visualization/
4. Suchmaschine auf Basis von Lucene Logfile Analyse (ELK-Stack)
4/19/2016 4
Top Use Cases
...........................
...........................
...........................
...........................
......
......
5. 4/19/2016 5
Schwerpunkt heute
Infrastruktur
Application Server
Web-Anwendung
...........................
...........................
...........................
...........................
......
ERP
REST API
AD / LDAP
CRM, ...
Business Logic
ES DB
6. 5 min: Elasticsearch Intro
open source
distributed
schemaless
search engine
NoSQL-Json-REST API
4/19/2016 6
8. Open source: Freie Plugins, gute Doku, breites Ökosystem *
Distributed: Verteilte Architektur, Skaliert per default *
Schemalos: POST {"foo": "bar"} funktioniert *
Search Engine: Volltextsuche auf Lucene Basis *
REST API: Spricht mit allen *
* aber
4/19/2016 8
Was ist daran so toll?
10. Infrastruktur
Backend
19.04.2016 Seite 10
Anwendungsbeispiel - Contacts
Web-Frontend
...........................
...........................
...........................
...........................
......
> Bestehende Daten integriert besser und schneller verfügbar.
AD / LDAP
Java EE
REST API
ElasticSearch
embedded
Exchange
PIM, ...
Integration
Layer
11. ES Cluster
Datensynchronisation
SAP zu App
Problem:
Dateninkonsistenzen
über lange Zeiträume.
> Fehleranalyse mittels
Elasticsearch auf
Synchronisations-Daten
mehrerer Monate.
4/19/2016 11
Anwendungsbeispiel - Mobility Integration
SAPCRMMobilityLayer
14. Wow geht das einfach! Ich bin ein Search Ninja!
4/19/2016 14
Lernkurve
15. Wow geht das einfach! Ich bin ein Search Ninja! Der persönliche WTF
Moment
4/19/2016 15
Lernkurve
16. Wow geht das
einfach!
Ich bin ein Search
Ninja!
Der persönliche
WTF Moment
Lucene?
4/19/2016 16
Lernkurve
17. Wow geht das
einfach!
Ich bin ein
Search Ninja!
Der
persönliche
WTF Moment
Lucene was
war da noch?
Ab in die
Internas
4/19/2016 17
Lernkurve
18. Elasticsearch Install
elasticsearch.yml + Cluster Name ändern
Für Buch-Leser: "Elasticsearch" von Florian Hopf
Gute Videos von Elastic https://www.elastic.co/videos
Bookmark:
elastic.co/guide/en/elasticsearch/reference/current/glossary.html
Spiele mit der REST API - Lass Dich begeistern!
Query DSL, Analyse, Relevanz, Aggregationen
Bei aller Begeisterung: Ordentlich Puffer für WTF-Momente
4/19/2016 18
Best Practices für den Einstieg
20. 4/19/2016 20
Indexierung – Daten rein
Infrastruktur
Application Server
Web-Anwendung
...........................
...........................
...........................
...........................
......
ERP
REST API
AD / LDAP
CRM, ...
Business Logic
ES DB
21. Welche Daten in ES welche extern
Ein muss, die Bulk API + Queue
Fehlerhandling, Fallback und häufige Aufgaben in Java
Performance: refresh_interval setzen, Import auf Data Nodes
Speicher und Performance im Blick behalten
4/19/2016
Weitere Info https://www.elastic.co/guide/en/elasticsearch/guide/current/indexing-
performance.html
21
Indexierung – generelle Überlegungen
26. Logstash: Indexer von Logfiles, Streams, Queues, JDBC...
Beats: Bereitstellen von Daten für Logstash
z.B. für Netzwerk Packet, Logfiles
Crawler z.B. Scrapy
Rivers: Nur für Elasticsearch < 2.0
Hadoop two-way connector
Clients für .NET, Javascript, PHP, R, ...
4/19/2016 26
Indexierung – Weitere Ansätze
28. 4/19/2016 28
Datenzugriff – Mit der Java API
Infrastruktur
Application Server
Web-Anwendung
...........................
...........................
...........................
...........................
......
ERP
REST API
AD / LDAP
CRM, ...
Business Logic
ES DB
29. Elasticsearch über REST Endpoints kapseln
Bestehende Anwendung erweitern
4/19/2016 29
Datenzugriff – Mit der Java API
30. Java API ist keine Rocket Science:
4/19/2016 30
Datenzugriff – Mit der Java API
31. Auch komplexere Abfragen lassen sich einfach formulieren:
4/19/2016 31
Datenzugriff – Mit der Java API
32. Elasticsearch Node der via Servlet erreichbar ist
Gute Basis für Elasticsearch Embedded
Einfache Elasticsearch Integration in Java EE und die Nutzung
bestehender Techniken (Filter, Permissions, etc.)
Elasticsearch Client Node
Einfache Möglichkeit um Elasticsearch zu nutzen ohne sich mit
der IT anzulegen, generell aber nicht erste Wahl.
4/19/2016 32
Datenzugriff - Elasticsearch Transport Wares
34. Neue Möglichkeiten mit Daten umzugehen
Daten einer bestehenden Anwendung in Elasticsearch?
Probiere es aus, Der Einstieg ist einfach!
brew install elasticsearch kibana logstash
docker pull sebp/elk
4/19/2016 34
Ausblick
Wikommen
Fragen am Ende – Stand
Sebastian Daniel, W&M: Wir gehen in meist große Firmen und ersetzen hässliche alte Lösungen durch schicke Webanwendungen auf aktueller technologischer Basis.
Bevor ich anfange: "Wer hat schon mit Elasticsearch gearbeitet?“
Open source: Warum wurde wann etwas wie geändert? Du kannst es als Entwickler nachvollziehen. – Aber: Mit Elastic eine starke Firma mit großer Kontrolle. Demo Head Plugin
Distributed: Zweite Instanz starten – Aber: Komplexität wird nur versteckt – dazu später mehr.
Schemalos: Dynamic mapping
Search Engine: Auch Operational Intelligence, Basis für BI-Lösungen
(Buzzword Compliance)
Beispiel zeigen
Open source: Warum wurde wann etwas wie geändert? Du kannst es als Entwickler nachvollziehen. – Aber: Mit Elastic eine starke Firma mit großer Kontrolle. Demo Head Plugin
Distributed: Zweite Instanz starten – Aber: Komplexität wird nur versteckt – dazu später mehr.
Schemalos: Dynamic mapping
Search Engine: Auch Operational Intelligence, Basis für BI-Lösungen
Open source: Warum wurde wann etwas wie geändert? Du kannst es als Entwickler nachvollziehen. – Aber: Mit Elastic eine starke Firma mit großer Kontrolle. Demo Head Plugin
Distributed: Zweite Instanz starten – Aber: Komplexität wird nur versteckt – dazu später mehr.
Schemalos: Dynamic mapping
Search Engine: Auch Operational Intelligence, Basis für BI-Lösungen
Open source: Warum wurde wann etwas wie geändert? Du kannst es als Entwickler nachvollziehen. – Aber: Mit Elastic eine starke Firma mit großer Kontrolle. Demo Head Plugin
Distributed: Zweite Instanz starten – Aber: Komplexität wird nur versteckt – dazu später mehr.
Schemalos: Dynamic mapping
Search Engine: Auch Operational Intelligence, Basis für BI-Lösungen
Open source: Warum wurde wann etwas wie geändert? Du kannst es als Entwickler nachvollziehen. – Aber: Mit Elastic eine starke Firma mit großer Kontrolle. Demo Head Plugin
Distributed: Zweite Instanz starten – Aber: Komplexität wird nur versteckt – dazu später mehr.
Schemalos: Dynamic mapping
Search Engine: Auch Operational Intelligence, Basis für BI-Lösungen
Open source: Warum wurde wann etwas wie geändert? Du kannst es als Entwickler nachvollziehen. – Aber: Mit Elastic eine starke Firma mit großer Kontrolle. Demo Head Plugin
Distributed: Zweite Instanz starten – Aber: Komplexität wird nur versteckt – dazu später mehr.
Schemalos: Dynamic mapping
Search Engine: Auch Operational Intelligence, Basis für BI-Lösungen
Open source: Warum wurde wann etwas wie geändert? Du kannst es als Entwickler nachvollziehen. – Aber: Mit Elastic eine starke Firma mit großer Kontrolle. Demo Head Plugin
Distributed: Zweite Instanz starten – Aber: Komplexität wird nur versteckt – dazu später mehr.
Schemalos: Dynamic mapping
Search Engine: Auch Operational Intelligence, Basis für BI-Lösungen
Open source: Warum wurde wann etwas wie geändert? Du kannst es als Entwickler nachvollziehen. – Aber: Mit Elastic eine starke Firma mit großer Kontrolle. Demo Head Plugin
Distributed: Zweite Instanz starten – Aber: Komplexität wird nur versteckt – dazu später mehr.
Schemalos: Dynamic mapping
Search Engine: Auch Operational Intelligence, Basis für BI-Lösungen
Open source: Warum wurde wann etwas wie geändert? Du kannst es als Entwickler nachvollziehen. – Aber: Mit Elastic eine starke Firma mit großer Kontrolle. Demo Head Plugin
Distributed: Zweite Instanz starten – Aber: Komplexität wird nur versteckt – dazu später mehr.
Schemalos: Dynamic mapping
Search Engine: Auch Operational Intelligence, Basis für BI-Lösungen
Open source: Warum wurde wann etwas wie geändert? Du kannst es als Entwickler nachvollziehen. – Aber: Mit Elastic eine starke Firma mit großer Kontrolle. Demo Head Plugin
Distributed: Zweite Instanz starten – Aber: Komplexität wird nur versteckt – dazu später mehr.
Schemalos: Dynamic mapping
Search Engine: Auch Operational Intelligence, Basis für BI-Lösungen
Starte mit einer Elasticsearch Install (auch auch Windows relativ einfach)
Schau dir die elasticsearch.yml an und wenn Du dabei bis ändere den Cluster Name und deaktiviere multicast
Für Buch-Leser: Zum Einstieg "Elasticsearch" von Florian Hopf
Videos von Elastic https://www.elastic.co/videos
Bookmark auf https://www.elastic.co/guide/en/elasticsearch/reference/current/glossary.html setzen
Spiele mit der REST API - Lass Dich begeistern!
[Query DSL](https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl.html), Analyse, Relevanz, Aggregationen,
Bei aller Begeisterung: Plane ordentlich Puffer im Projekt für den WTF-Moment ein
Java API sehr gute Basis.
Performance erklären: refresh_interval temporär hoch drehen (Lucene-Commits verhindern)
Looser coupleing
Complex
Error prone
Standalone Lösung - Ursprünglich als River entwickelt.
Weitere Ansätze Daten rein zu bekommen
Beats: Neue Komponente im ELK Stack für das bereitstellen von Daten die dann von Logstash in Elasticsearch importiert werden. Fertige Beats z.B. für Netzwerk Packet Daten, Logfiles) https://www.elastic.co/downloads/beats
Embedded: Wenn Admins beim Stichwort "Cloud" die Zähne fletschen
Kibana
* Gut um komplexe Queries und aggregationen zu lernen
* Kann auch als statisches html mit ausgeliefert werden (unsuported)