BLOG

Evenementen, Softwareontwikkeling

Vier manieren waarop Elasticsearch het verschil kan maken binnen úw organisatie

16 september 2019

Op dinsdag 1 oktober van 18:00 uur tot 20:00 uur  spreken twee van onze collega’s bij de TechCorner A12 meet-up over Elasticsearch. Deze nieuwe technologie van Nederlandse oorsprong omschrijft zichzelf als een “gedistribueerd zoek en analyse systeem” en vindt zijn weg in steeds meer applicaties. Maar wat kan dit voor u betekenen? In dit artikel vier concrete voorbeelden van de manieren waarop deze technologie het verschil kan maken voor uw organisatie.

Écht vrij zoeken

Het is waarmee Google groot is geworden; vrij zoeken. Veel applicaties draaien om het vinden van de juiste informatie. Maar hoe vaak gaat dat nog via een ouderwetse selectie van velden, en het doorscrollen van lange lijsten om het juiste stuk informatie te vinden? Net zoals bij Google zouden we het liefst snel en gemakkelijk kunnen vinden wat we zoeken.

Goed en snel zoeken kan een enorm verschil maken in het gebruiksgemak en de effectiviteit van uw applicatie. Toch is het een onderdeel wat bijna nooit de aandacht krijgt die het verdient. Op dit moment zijn 80% van alle (administratieve) applicaties gebaseerd op een relationele database als het onderliggende systeem voor gegevensopslag. Logisch, want de meeste gegevens die we willen opslaan zijn gestructureerd. Een relationele database is daar sterk in, maar zwak in zoeken.

De kracht van Elasticsearch rond zoeken ligt o.a. in de ‘ranking’. Een lijst teruggeven met onderdelen in de applicatie die overeenkomen met uw zoekopdracht is ook met een relationele database te bereiken. Maar ervoor zorgen dat de informatie die u zoekt – die relevant is voor u – bovenaan staat, is iets wat alleen met een goede ‘ranking’ te bereiken is. En juist voor ‘ranking’ biedt Elasticsearch krachtige mogelijkheden.

Natuurlijk kunt u Elasticsearch gebruiken als bronsysteem voor gegevensopslag in uw applicatie om geweldig zoeken mogelijk te maken. Maar misschien wilt u deze zoekfunctie beschikbaar maken in uw bestaande applicatie, of wilt u óók kunnen profiteren van de voordelen van een relationele database. In dat geval is het ook mogelijk om Elasticsearch te draaien als een data replica specifiek voor zoeken. Hiervoor is er een minimale wijziging nodig aan de architectuur van uw bestaande applicatie, en kunt u toch goed zoeken aanbieden aan uw gebruikers.

Een voorbeeld van deze oplossing hebben wij mogen implementeren bij onze klant FirstKlas. Bij hun applicatie OERknal wordt gestructureerde data opgeslagen die daarna wordt verrijkt met ongestructureerde teksten. De resulterende onderwijsdocumenten worden zoekbaar gemaakt met Elasticsearch.

Een grote stap vooruit in logging en monitoring

Het is een bekend probleem. Uw organisatie produceert meer data dan u bij stil staat. In applicaties alleen al heeft u niet alleen te maken met het gene wat u daadwerkelijk invoert, maar ook met automatische logging (logboeken) van de applicatie, database, mailserver, webserver, besturingssysteem etc. Maar wat doet u eigenlijk met al die informatie?

Elasticsearch en de gerelateerde technieken Kibana en Beats kunnen u hierbij helpen. Beats zijn kleine gespecialiseerde applicaties die draaien op uw infrastructuur en u helpen bij het verzamelen van (logging) gegevens en deze opslaan in Elasticsearch. Er zijn ondenkbaar veel gratis beats beschikbaar om de gegevens in uw omgeving te kunnen verzamelen. En mist u een specifieke beat voor uw use-case? Dan is het ook mogelijk om een eigen Beat op te zetten. 

Kibana is een gebruiksvriendelijke maar ook zeer krachtige applicatie waar u al deze gegevens in Elasticsearch kunt doorzoeken en analyseren. Met interactieve (live) dashboards en visualisaties is het ook mogelijk om applicaties goed te monitoren. Met het Kibana-onderdeel Elastic SIEM kan specifieke monitoring en analyse op het cybersecurity-domein worden uitgevoerd, en met Elastic Uptime kan de uptime van systemen worden gemonitord.

Bij de Meetup Techcorner A12 geeft onze software architect Pim Jansen een demonstratie van de mogelijkheden van Elasticsearch, Beats en Kibana voor logging en monitoring.

Personalisatie en intelligentie

Een minder bekende functie van Elasticsearch zijn de ingebouwde mogelijkheden voor personalisatie en intelligentie.

De machine learning mogelijkheden van Elasticsearch maken het mogelijk om automatisch patronen te ontleden aan de hand van gegevens, en aan de hand hiervan afwijkingen te herkennen en voorspellingen te doen in de meest brede zin van het woord. De mogelijkheden van machine learning, en daarmee van de mogelijkheden hiervoor in Elasticsearch, zijn zo uitgebreid dat ze buiten de scope van dit artikel vallen.

Naast machine learning biedt Elasticsearch ook andere mogelijkheden om uw applicatie ‘slimmer’ en beter gepersonaliseerd te maken. De “meer zoals dit”-functionaliteit van Elasticsearch maakt het bijvoorbeeld mogelijk om, aan de hand van eerder bekeken documenten, de gebruiker een voorstel te doen welke documenten hier nog meer op lijken en waarschijnlijk nuttig zijn om te bekijken.

Uw applicatie eindeloos schalen

Groeit uw applicatie sneller dan u aankunt? Loopt u structureel tegen vertragingen en performance problemen aan? Dan heeft dit misschien te maken met problemen rondom schalen. Veel opslag mechanismen, en dan vooral relationele databases, schalen moeilijk. 

Hoewel schalen bij relationele databases zeker niet zo moeilijk is als vroeger, wordt er nog steeds vooral gekozen voor ‘verticaal’ schalen. Dit betekend dat naarmate de applicatie en de behoeften voor dataopslag groeit, er meer resources (‘een grotere server’) beschikbaar wordt gemaakt. Dit heeft twee grote nadelen. Ten eerste is verticaal schalen natuurlijk eindig. Ten tweede creëer je een ‘single point of failure’. Wat doe je als de server onderhoud heeft? En wat als er een storing is? Dit vraagt om extra maatregelen zoals replica’s en backups.

Bij ‘Horizontaal schalen’ wordt de opslag van gegevens onderverdeeld over verschillende servers. Elasticsearch kan beter en gemakkelijker horizontaal schalen dan andere opslagoplossingen. Het bijschalen van extra servers is een ‘piece of cake’ en bij onderhoud of storing aan één server nemen andere servers het werk automatisch over. Alle gegevens staan altijd bij meerdere servers opgeslagen. 

In tegenstelling tot replica’s staan bij Elasticsearch niet alle gegevens altijd op alle servers, maar staan de gegevens verdeeld op een manier dat er altijd genoeg ‘backups’ zijn maar dat er ook ruimte wordt bespaart.  Bij complexe zoekopdrachten werken bij Elasticsearch verschillende servers samen om zo snel mogelijk met een correct en compleet antwoord te komen.

Aan de slag met Elasticsearch

Wilt u ook snel kunnen zoeken en informatie verkrijgen uit de grote hoeveelheden data die u verwerkt? Met Elasticsearch is dat mogelijk. Senet beschikt over veel ervaring en kennis om dit ook voor u in te zetten. Voor meer info kunt u mij contacteren.

Interesse in een gesprek?

neem contact op met Geurt Jan van Ek

Neem contact op

Zie onze privacyverklaring.