Questo post è disponibile anche in: Inglese

Reading Time: 6 minutes

Durante l’ultima edizione dell’IT Press Tour (la 14ma e la prima alla quale ho avuto l’onore di partecipare), svoltasi nella Silicon Valley (nel periodo dal primo a 5 dicembre 2014), abbiamo avuto l’occasione di incontrare molte aziende in differenti aree (Cloud, Storage e Big Data).

La seconda azienda che abbiamo incontrato durante il quarto giorno è stata Elasticsearch, un’altra azienda che si basa sul modello OpenSource e che ha realizzato un’interessante soluzione per l’analisi dei Big Data.

ITPressTour-LogoShay Banon (Elasticsearch Creator, Co-Founder, and CTO), Gaurav Gupta (VP Product Management) e Aaron Katz (SVP of Worldwide Field Operations) hanno spiegano le origini dell’azienda, il loro approccio al business e le soluzioni offerte.

Come già detto, Elasticsearch è un’azienda basata sul modello Open Source: Elasticsearch è anche il nome del prodotto Open Source pensato per l’analisi e la ricerca in tempo reale su grossi moli di dati, sfuttando una soluzione distribuita e scalabile. Elasticsearch è licenziato secondo la licenza Apache 2 e il codice sorgente è ospitato su GitHub.

Il codice è mantenuto (e ridistribuito) dall’azienda stessa, ma anche da una grande ed attiva community, che contribuisce molto al bug report, alla documentazione, all’attività di testing e ovviamente a definire quali siano le feature da sviluppare (chiunque può contribuire a questo progetto, per maggiori informazioni vedere: How to contribute to Elasticsearch). Elasticsearch è diventato rapidamente uno dei motori di ricerca più popolari ed è incluso in numerosi prodotti.

L’azienda è stata fondata relativamente di recente (nel 2012) dalle persone che hanno sviluppato i progetti Elasticsearch e Apache Lucene. Inizialmente basata ad Amsterdam (molte persone del board e del team sono europee) è cresciuta molto velocemente e attualmente ha una sede in California.

Il prodotto è rimasto OpenSource, ma l’azienda fornisce attorno a questo (che di fatto è grauito) servizi professionali, supporto tecnico (con le stesse persone che sviluppano i codice), formazione e corsi, come pure alcuni programmi proprietari a contorno della parte OpenSource..

In realtà esiste un vero e proprio Elasticsearch ELK Stack: una pila di soluzioni end-to-end per l’analisi in tempo reale di dati strutturati e non strutturati. Questo stack è composto da diversi prodotti OpenSource:

  • Elasticsearch: a flexible and powerful open source, distributed, real-time search and analytics engine. Architected from the ground up for use in distributed environments where reliability and scalability are must haves, Elasticsearch gives you the ability to move easily beyond simple full-text search. Through its robust set of APIs and query DSLs, plus clients for the most popular programming languages, Elasticsearch delivers on the near limitless promises of search technology.
  • Logstash: helps take logs and other time based event data from any system and store it in a single place for additional transformation and processing. Logstash will scrub your logs and parse all data sources into an easy to read JSON format. The most popular open source logging solution in the market today, Logstash lets users get up and running in just minutes.
    There is also an Hadoop Connector in order to retrive data directly from an Hadoop environment.
  • Kibana: is Elasticsearch’s data visualization engine, allowing you to natively interact with all your data in Elasticsearch via custom dashboards. Kibana’s dynamic dashboard panels are savable, shareable and exportable, displaying changes to queries into Elasticsearch in real-time. You can perform data analysis in Kibana’s beautiful user interface using pre-designed dashboards or update these dashboards in real-time for on-the-fly data analysis.

Ma come scritto, l’azienda fornisce (in questo caso a pagamento) anche dei prodotti comerciali e proprierati, in particolare marvel, uno strumento di monitor e management che semplica la gestione di un cluster Elasticsearch. Ma non solo, oltre ai vari servizi descritti in precedenza, l’azienda organizza anche eventi come elastic{on} (l’edizione 2015 si svolgerà dal 9 al 11 marzo a San Francisco).

Tra i pricipali casi d’uso di questo stack abbiamo:

  • Sistemi di ricerca incluso in applicazioni esistenti (ad esempio Facebook ne fa uso)
  • Soluzioni di analisi dei log
  • Soluzioni di analytics su Big Data

L’elenco dei clienti è abbastanza corposo (ve ne sono molti di più, ma ovviamente una buona parte utilizza anche solo la versione OpenSource e gratuita).

Ma perché questo prodotto è così interessante e si differenzia da altre soluzioni simili?

In primo luogo, il modello OpenSource e all’approccio a community lo hanno reso molto velocemente quasi uno standard de facto (e pure aperto) tanto da incorporalo in molte soluzioni e prodotti (personi la funzione di Azure Search è basata su elasticsearch).

C’è poi la flessibilità con cui può essere implementato: normalmente è on premises, ma può essere implementato anche su public cloud come Amazon o Azure.

Infine l’aspetto forse più interessante è quello di fare evolvere la ricerca oltre i concetti di ricerca e spostarla verso funzioni di vera e propria Business Intelligence per avere  non solo risultati (veloci e rilevanti), ma anche ottenere risultati aggregati e correlati, con tanto di motore di intelligenza artificiale per far emergere anche i risultati più interessanti e caratterizzanti.

Ovviamente affinché le ricerche possano essere utilizzate anche con queste finalità, il tutto deve essere molto veloce e reattivo: infatti il prodotto riesce (grazie alla scalabilità orizzontale) ad mantenere i tempi di risposta attorno ai 10-100ms! Indipendentemente dal numero di nodi (anzi più sono e in generale meglio è) o dalla dimensione dei dati (anche 100 PB).

Questo permette di semplificare drammaticamente le normali infrastrutture di analisi dei big data che sono normalmente composte da gruppi di sistemi diversi: search engine, BI engine, machine learning engine, … sistemi spesso “isolati” tra loro con i relativi dati e procedure batch di migrazione dei dati. Con elasticsearch un solo ambiente può assolvere a tutti questi scopi.

Ne consegue che i dati devono essere de-normalizati per “ottimizzarli” al fine della ricerca, anche a costo di duplicarsi, ma con il pregio di poterli poi distribuire sui vari nodi. Questo rimane di fatto l’unica “duplicazione di ambienti”: vi saranno i dati originali e procedure in import (ed ottimizzazione) degli stessi, ma da farsi una sola volta!

Vere anche:

Disclaimer: Sono stato invitato a questo evento da Condor Consulting Group che ha coperto i costi per il viaggio e l’alloggio. Ma non sono stato ricompensato in alcun modo per il mio tempo e non sono in obbligo di scrivere articoli riguardo all’evento stesso e/o gli sponsor. In ogni caso, i contenuti di questi articoli non sono stati concordati, rivisti o approvati dalle aziende menzionate o da altri al di fuori del sottoscritto.

Andrea MauroAbout Andrea Mauro (2849 Posts)

Virtualization, Cloud and Storage Architect. Tech Field delegate. VMUG IT Co-Founder and board member. VMware VMTN Moderator and vExpert 2010-18. Dell TechCenter Rockstar 2014-15. Microsoft MVP 2014-16. Veeam Vanguard 2015-18. Nutanix NTC 2014-18. PernixPro 2014-16. Several certifications including: VCDX-DCV, VCP-DCV/DT/Cloud, VCAP-DCA/DCD/CIA/CID/DTA/DTD, MCSA, MCSE, MCITP, CCA, NPP.


Related Post:

Share