Gli ingegneri di GitHub hanno rilasciato sotto licenza open source una nuova libreria, chiamata Vulcaniser, pensata per interfacciarsi con i cluster di Elasticsearch.
Elasticsearch è un server di ricerca basato su Lucene, con capacità Full Text, che offre il supporto alle architetture distribuite. Tutte le funzionalità di Elasticsearch sono nativamente esposte tramite interfaccia RESTful, mentre le informazioni sono gestite sotto forma di documenti JSON.
Nel dettaglio Elasticsearch è quindi un RESTful search/analytics engine distribuito, in grado di gestire numerose operazioni di ricerca, strutturate e non strutturate. Il team della piattaforma di code sharing sfrutta quindi tale progetto per incrementare l'efficienza del suo servizio di ricerca.
Nick Canzoneri, membro del Database Infrastructure team di Github, ha chiarito i motivi del rilascio sotto licenza open source di questa libreria:
"Fino al 2017 abbiamo utilizzato una collezione di comandi e script, realizzati in Bash e Ruby, per la gestione dei diversi cluster Elasticsearch. Tali script però erano poco versatili e anche rendendoli open source sarebbe stato difficile per la community adattarli alle proprie esigenze, visto che erano pensati esclusivamente per le esigenze dell'infrastruttura di Github.
Quindi abbiamo realizzato una high-level API versatile e capace di eseguire le operazioni di gestione dei cluster di Elasticsearch che ci servivano."
Vulcaniser è una libreria sviluppata in Go che si occupa appunto di comunicare con i cluster Elasticsearch. Fornire un API di alto livello per aiutare gli ingegneri durante i task ordinari di gestione dei cluster come ad esempio: querying per l'health status dei cluster, la migrazione dei dati tra i vari nodi, gli aggiornamenti ed il cluster setting.
Via Vulcanizer