Inspired by the Jepsen series of database test suites I created kafka-mirror-tester, a cross-Atlantic automated test suite for Kafka mirroring using Golang and Kubernetes. There, I said k8s, need I say more? 

Join me to learn how k8s solves database automation tasks and Go drives those tests.

kafka-mirror-tester (https://github.com/AppsFlyer/kafka-mirror-tester) is an automated test suite for Kafka mirroring used at appsflyer to test the correctness and effectiveness of various Kafka mirroring tools, mainly uReplicator (https://github.com/uber/uReplicator). kafka-mirror-tester automates the tasks of datacenter setup by creating two K8s clusters, one on each side of the Atlantic, then setting up Kafka clusters at both sides, then setting up replication in between, running specialized Golang producers and consumers at both sides and then injecting faults to test durability. All done hands-free, completely automated. With lovely prometheus & Grafana dashboards.

Distributed systems. Are. Hard. At AppsFlyer Kafka is the backbone and part of my team’s work on multiple datacenter deployment was making sure we are able to mirror (replicate) Kafka messages across datacenters. This kind of things you want to test before reaching production and you want to be able to simulate failure scenarios such as broker down, replicator down, slow network etc under the neon light so that you’d know what to expect in reality. To achieve that in a completely reliable and repetitive manner and inspired by the Jepsen (https://jepsen.io/) series of semi-automated database test suites I’ve set our to create our own automated Kafka mirroring test suite, Kubernetest, Prometheus, Golang and more in my toolbelt. In this session you’ll learn about the interesting challenges of automating database and Kafka in particular tests, stressing out the system and making sure everything works correctly, and then tearing apart the system by injecting failure and observing the points where it breaks. This is fun! 

Ran Tavory

Kafka Mirror Tester: Go and Kubernetes Powered Test Suite for Kafka Replication

Software plumber, AppsFlyer

12:00-12:30 | Track 2