Il nostro intero tubo dati su un MacBook Pro
Di Andrew Backes, Ingegnere del software (Data pipeline)
Abbiamo pensato che sarebbe stato davvero bello poter eseguire una copia esatta di tutto il nostro tubo di dati a livello locale. Questo avrebbe aperto una serie di possibilità. Quella per cui eravamo più entusiasti: testare l'integrazione dei sistemi, ma sui nostri portatili. Durante le ultime settimane di giugno questo è ciò su cui noi (il team dei datiShareThis) abbiamo lavorato.
Cosa significa esattamente? Al momento la nostra pipeline di dati funziona su un cluster di circa 30 nodi. Interagisce con un cluster Cassandra, un cluster Aerospike, due cluster Kafka e un nodo Graphite/Seyren. L'obiettivo era quello di far funzionare tutto questo in qualche modo su un singolo laptop. Inoltre, volevamo che i dati del gasdotto venissero effettivamente ingeriti e che dall'altra parte uscisse la cosa giusta.
Il primo passo è stato quello di containerizzare le nostre applicazioni. La parte difficile è stata che le nostre applicazioni non sono state scritte con questa capacità in mente. Fortunatamente, però, durante lo sviluppo abbiamo usato modelli di dipendenza ad iniezione e di adattatori. Questo ci ha aiutato molto a collegare correttamente le cose. Anche Docker compose ha aiutato in questo senso. Circa una settimana dopo che abbiamo fatto funzionare tutto questo, sono state annunciate le funzionalità di rete avanzate di Docker 1.7. Queste nuove funzionalità avrebbero reso il nostro lavoro molto più facile.
Alla fine abbiamo utilizzato 8 container docker (ognuno dei quali rappresenta un gruppo VPC Amazon) per le nostre applicazioni interne e un singolo container docker per ogni Cassandra, Aerospike, Kafka 7, Kafka 8 e Graphite. Dal momento che stavamo eseguendo questo su Mac, abbiamo anche dovuto pompare la quantità di memoria e lo spazio su disco era disponibile per il boot2docker nella VM. È stato un momento di gioia quando abbiamo messo alcuni dati davanti alla pipeline, siamo stati in grado di tracciarli su grafite e vedere la versione completamente elaborata uscire dall'altra parte.