Elasticsearch: "You know, for Search"​

Redazione giu 15, 2021

Tu hai delle domande. E non è una domanda: tu hai delle domande nella vita di tutti i giorni e cerchi delle risposte. Ora, se sei un nerd sai che la risposta è 42 ma tralasciando capodogli volanti, vasi di petunie e leopardi nel seminterrato, ti consiglio comunque di proseguire la lettura dell'articolo.

Al giorno d'oggi siamo circondati da domande della vita quotidiana come "Che cosa mangiamo per cena?", "Che serie TV guardiamo stasera?", "Dove vive il clamidoforo troncato?" oppure domande sul lavoro come "Qualcuno tra i miei n server è spento oppure non risponde?", "La mia rete aziendale non è stata compromessa. Vero?", "Come sta il mio rover su Marte?".

Vediamo come Elasticsearch potrebbe fare al caso tuo.

Che cos'è Elasticsearch?

Elasticsearch è un motore di ricerca e analisi di dati distribuito e open source basato su Apache Lucene. Nato nel 2010 da un'idea di Shay Banon, l'azienda che lo sviluppa prende semplicemente il nome di Elastic e la sua mission aziendale non poteva essere altro che "You know, for Search".

1.png

Ecco alcune sue caratteristiche lo hanno reso il più popolare motore di ricerca:

  • scritto in Java, è indipendente dalla piattaforma su cui è installato: Windows, Linux, MacOS, etc.;
  • è scalabile: può essere installato su un server o su cento e l'aggiunta o la rimozione di un "nodo" avviene in modo rapido e trasparente per l'utilizzatore;
  • è facilmente utilizzabile da qualsiasi linguaggio di programmazione fornendo API Rest per l'inserimento e per l'interrogazione dei dati;

2.png

Mai usato. A cosa potrebbe servirmi?

Come già detto, può essere un valido strumento per rispondere alle tue domande e, anche se non lo sai, sicuramente lo avrai già utilizzato senza saperlo. Vediamo qualche caso.

Di sicuro ti sarai chiesto che cos'è un clamidoforo troncato e, se sei una persona curiosa, scommetto che hai aperto la sua pagina di Wikipedia. Ti sorprenderà scoprire che Wikipedia utilizza Elasticsearch nelle sue ricerche riportando velocemente le informazioni cercate nonostante l'innumerevole quantità di pagine salvate.

Netflix, invece, utilizza Elasticsearch per monitorare i log al fine sia di intervenire in caso di errore, sia di analizzare il comportamento dell'utente per capire quali contenuti possono essere graditi e quali no.

3.png

E per quanto riguarda il monitoraggio delle risorse e la sicurezza?

Come avrai visto Elasticsearch è ottimo per fare ricerche, anche molto complesse, all'interno di un catalogo di prodotti ma c'è molto, molto di più. Elasticsearch viene utilizzato tantissimo anche per monitorare lo stato della propria rete aziendale, sia in termini di monitoraggio delle risorse, sia in termini di sicurezza. Lo sai che la NASA utilizza Elasticsearch per monitorare e analizzare i dati ricevuti da Marte dal rover Curiosity?

Il team di Elastic ha creato numerosi programmi molto leggeri, chiamati Beat, che si occupano di raccogliere dati dal dispositivo su cui sono installati e di inviarli ad Elasticsearch, rendendoli disponibili alla consultazione. E' così che è possibile sapere in ogni momento se i nostri server sono troppo carichi, se c'è qualche malfunzionamento oppure se ci sono attività sospette. Tutto questo viene gestito tramite un'interfaccia grafica chiamata Kibana che, insieme a Elasticsearch e ai Beats (e un altro programma chiamato Logstash), formano l'Elastic Stack, ma di questo ne parleremo in un prossimo articolo.

E per quanto riguarda una piccola o media impresa?

Le grandi aziende utilizzano centinaia, migliaia di server con Elasticsearch ma, essendo scalabile, la dimensione del cluster (così si chiama un insieme di nodi di Elasticsearch che comunicano tra di loro) varia in base alla quantità di dati su cui effettuare le operazioni. Per una piccola impresa può bastare un solo server, anche se il minimo consigliato è di tre server per scongiurare la perdita di dati e garantire la continuità del servizio anche in caso di guasto di un nodo.

In conclusione Elasticsearch è un ottimo strumento per analizzare i propri dati, adatto a molte realtà differenti e con molte caratteristiche positive che lo hanno reso, ad oggi, il motore di ricerca preferito dalle aziende.

E ora, che cosa mangiamo per cena?