Facebook sta pianificando il rilascio del codice sorgente di LogDevice, il software sviluppato internamente dall’azienda per il collezionamento e lo stoccaggio dei log da diversi datacenter sparsi per il mondo.
E’ facile intuire quanto l’archiviazione e la gestione di questi log sia di vitale importanza per Facebook, sia perchè la quantità degli stessi è enorme, sia perchè probabilmente buona parte del business dell’azienda stessa è basato sull’analisi di questi.
Insomma, con più di 2 miliardi di utenti attivi ogni mese (fonte Wikipedia) la quantità di log possiamo solo immaginare essere epica, e probabilmente soluzioni open molto ben testate ed utilizzate (per fare un esempio, Graylog) non performano abbastanza bene per quei carichi. La soluzione -come spesso avviene nell’azienda di Zucherberg- è quella di svilupparsi “in casa” un sistema ottimizzato per le specifiche necessità.
Ed è qui che nasce LogDevice, un data store creato specificatamente per contenere i log seguendo questa logica:
- Record-oriented: i dati vengono scritti in record indivisibili, invece che come bytes individuali, ed il record è l’unità più piccola con cui si può far riferimento a questi log; si può iniziare a leggere da un dato record, e si riceveranno i dati uno o più record alla volta. Inoltre, la numerazione di questi record potrebbe non essere continua.
- Append-only: considerando che i log vengono scritti, ma non dovrebbero mai essere modificati, questo sistema supporta solo l’aggiunta di record, non è possibile modificare i record una volta inseriti
- Trimming: normalmente i log devono essere mantenuti per un tempo relativamente lungo (giorni, mesi o anni) prima di essere cancellati; il metodo principale che LogDevice fornisce per lo svecchiamento dei record è il trimming ovvero la cancellazione dei record più vecchi specificando politiche di retention basate sul tempo o sulla dimensione
Se siete interessati ai dettagli dello strumento, Facebook ha rilasciato un articolo dettagliato sul funzionamento e le logiche architetturali dello stesso, ve ne consigliamo la lettura.
La buona notizia è che, durante l’annuale ScaleConf, Facebook ha annunciato che l’intero sistema LogDevice sarà rilasciato in open source entro la fine del 2017.
Facebook non è nuova a questa pratica di rilasciare pubblicamente software (ed hardware) inizialmente sviluppati internamente per sue esigenze specifiche, come ad esempio RocksDB o Open Rack.
Pronti a sporcarvi le mani di log?
Utente Linux/Unix da più di 20 anni, cerco sempre di condividere il mio know-how; occasionalmente, litigo con lo sviluppatore di Postfix e risolvo piccoli bug in GNOME. Adoro tutto ciò che può essere automatizzato e reso dinamico, l’HA e l’universo container. Autore dal 2011, provo a condividere quei piccoli tips&tricks che migliorano il lavoro e la giornata.
Lascia un commento