OpenSearch

Introduzione a OpenSearch

Per capire OpenSearch, dobbiamo fare un passo indietro e parlare di Elasticsearch che nasce nel 2010 come motore di ricerca Open Source. L’idea di partenza è semplice ma potente: creare uno strumento che permetta di cercare grandi quantità di dati in modo velocissimo, accessibile tramite una semplice API HTTP e scalabile orizzontalmente, cioè aggiungendo più macchine al sistema quando i dati crescono.

Nel corso degli anni Elasticsearch diventa uno degli strumenti più usati al mondo per cercare, analizzare e visualizzare grandi quantità di dati. Lo usano aziende di ogni dimensione: dalle piccole startup alle grandi multinazionali. Attorno ad esso nasce un intero ecosistema, lo stack ELK (Elasticsearch, Logstash, Kibana), che diventa lo standard per la gestione e l’analisi dei log.

Nel 2021 però succede qualcosa di importante: Elastic decide di cambiare la licenza di Elasticsearch e Kibana, abbandonando la licenza Apache 2.0 (quella che garantisce la vera libertà open source) a favore di una licenza proprietaria chiamata Elastic License 2.0. Questa scelta significa che alcune modalità di utilizzo, specialmente in ambito commerciale e nei servizi cloud, diventano soggette a restrizioni significative.

Amazon Web Services (AWS) aveva costruito un servizio cloud molto popolare basato su Elasticsearch, chiamato Amazon Elasticsearch Service. Con il cambio di licenza, AWS si trova in una posizione difficile e invece di accettare le nuove condizioni, decide di agire: crea un fork, ovvero una copia indipendente del codice sorgente, preso dall’ultima versione con licenza Open Source, e lo chiama OpenSearch. Da quel momento OpenSearch prende vita come progetto indipendente, rilasciato sotto licenza Apache 2.0, completamente Open Source, con una community attiva e in rapida crescita.

Oggi OpenSearch è molto più di una semplice copia di Elasticsearch: ha caratteristiche proprie, una roadmap indipendente, plugin dedicati e un ecosistema in continua espansione che lo rende una scelta autonoma e matura.

I componenti di OpenSearch

OpenSearch è un motore di ricerca e analisi distribuito. Tradotto in parole semplici: è un sistema che permette di archiviare grandi quantità di dati e cercarli in modo estremamente veloce.

OpenSearch è composto da due elementi fondamentali che si trovano in ogni installazione:

  • OpenSearch è il motore vero e proprio. È un’applicazione server con cui si interagisce tramite API REST: vengono inviate richieste HTTP in formato JSON e si ricevono risposte in JSON. Non ha un’interfaccia grafica propria, è pensato per essere usato da altre applicazioni o da strumenti come la riga di comando
  • OpenSearch Dashboards è l’interfaccia grafica web che si affianca al motore. Permette di esplorare i dati, scrivere query, creare visualizzazioni e dashboard interattive, tutto senza scrivere codice. È lo strumento usato quotidianamente per analizzare i dati e monitorare il sistema

Per cosa è utilizzato

OpenSearch è uno strumento versatile, usato in scenari molto diversi tra loro, come ad esempio

Motore di ricerca per applicazioni WEB: in un portale e-commerce con migliaia di articoli o in un portale con migliaia di documenti, OpenSearch permette di aggiungere una funzione di ricerca potente e intelligente, con caratteristiche che un database tradizionale non può offrire. Ad esempio ricerche Full-Text, tolleranza agli errori di battitura, suggerimenti automatici, risultati ordinati per rilevanza

Analisi di Log e Monitoring: rappresenta uno degli usi più diffusi di OpenSearch in ambito IT. Ogni applicazione, server, router, firewall e dispositivo di rete genera continuamente log: file di testo che registrano ogni evento, errore, connessione, operazione. In un’infrastruttura anche di medie dimensioni, possono essere prodotti milioni di log al giorno. OpenSearch permette di raccogliere tutti questi log in un unico posto, indicizzarli in tempo reale e interrogarli con query potenti

Cybersecurity e SIEM: questa è una delle applicazioni più interessanti ed in più rapida crescita. OpenSearch è sempre più usato come piattaforma SIEM (Security Information and Event Management): raccoglie log di sicurezza da firewall, sistemi di rilevamento delle intrusioni, endpoint aziendali e servizi cloud, e aiuta i team di sicurezza a rilevare minacce, investigare incidenti e rispondere agli attacchi. Il plugin Security Analytics di OpenSearch è uno strumento completo per costruire un SOC (Security Operations Center) basato su tecnologie open source

Ricerca semantica e intelligenza artificiale: con le funzionalità di vector search e k-NN (k-Nearest Neighbors), OpenSearch permette di costruire sistemi di ricerca che vanno oltre le parole chiave. Invece di cercare corrispondenze testuali esatte, la ricerca semantica capisce il significato di una query e trova risultati concettualmente simili, anche se non contengono le stesse parole. Questo è alla base di molte applicazioni di intelligenza artificiale moderna: chatbot aziendali, assistenti basati su LLM (Large Language Models) che devono recuperare informazioni da grandi archivi documentali

Osservabilità e monitoring di infrastrutture: OpenSearch è uno dei componenti chiave delle moderne piattaforme di osservabilità. Raccoglie e correla tre tipi fondamentali di dati: Log, Metriche e Tracce. Insieme, questi tre tipi di dati permettono di avere una visione completa della salute di un sistema e di diagnosticare problemi rapidamente

OpenSearch vs Elasticsearch

Una delle domande più frequenti è quale scegliere tra i due. La risposta è: dipende dal contesto.

OpenSearchElasticsearch
LicenzaApache 2.0 (100% open source)Elastic License 2.0 (con restrizioni)
Gestito daOpenSearch Software FoundationElastic NV
Compatibilità APIMolto simile a ES 7.xNativa
Cloud managedAmazon OpenSearch ServiceElastic Cloud
Security integrataInclusa gratuitamenteAlcune funzioni a pagamento
CommunityIn forte crescitaMolto matura
Plugin cybersecuritySecurity Analytics (gratuito)Richiede licenza a pagamento

La differenza più rilevante per chi lavora in ambito sicurezza è che OpenSearch include gratuitamente molte funzionalità di sicurezza che su Elasticsearch richiedono una licenza commerciale.

Conclusione

OpenSearch è uno strumento potente, flessibile e sempre più centrale nel mondo IT. Che si voglia costruire un motore di ricerca per una applicazione, analizzare log di sistema, monitorare un’infrastruttura cloud o difendere reti aziendali da attacchi informatici, OpenSearch ha qualcosa di concreto da offrire.