Toda nuestra tubería de datos en un MacBook Pro
Por Andrew Backes, Ingeniero de software (Pipeline de datos)
Pensamos que sería genial si pudiéramos ejecutar una copia exacta de toda nuestra tubería de datos localmente. Esto abriría un montón de posibilidades. La que más nos entusiasmaba: la integración de sistemas de prueba, pero en nuestras laptops. Durante las últimas semanas de junio esto es lo que (el equipo de datos en ShareThis ) trabajado encendido.
¿Qué significa esto exactamente? En este momento nuestra canalización de datos se ejecuta en un clúster de unos 30 nodos. Interactúa con un clúster de Cassandra, un cluster aerospike, dos clusters de Kafka y un nodo grafito/Seyren. La meta era conseguir todo esto para funcionar de alguna manera en un solo ordenador portátil. También, queríamos realmente tener la tubería de recopilación de datos y tener la cosa correcta salir del otro extremo.
El primer paso fue encajar nuestras aplicaciones. La parte complicada era que nuestras aplicaciones no estaban escritas con esta capacidad en mente. Afortunadamente, utilizamos modelos de inyección de dependencia y adaptadores durante el desarrollo. Esto resultó ayudar un poco en conseguir cosas para alambre juntos correctamente. Docker componer también ayudó en ese sentido. Alrededor de una semana después de que conseguimos todo el trabajo, las características avanzadas de red de Docker 1,7 se anunciaron. Esas nuevas características habrían hecho nuestro trabajo mucho más fácil.
Al final utilizamos 8 contenedores Docker (cada uno de los cuales representa un grupo VPC Amazon) para nuestras aplicaciones internas y un contenedor Docker único para cada Cassandra, aerospike, Kafka 7, Kafka 8 y Graphite. Ya que estábamos ejecutando esto en Mac, también tuvimos que bombear la cantidad de memoria y espacio en disco estaba disponible para boot2docker en la VM. Fue un momento de alegría cuando pusimos algunos datos delante de la tubería, pudimos rastrearlo en grafito y ver la versión completamente procesada pop out el otro extremo.