37
Tackling Kafka, with a Small Team

Tackling Kafka, with a Small Team · Kafka is a messaging system which provides an immutable, linearizable, sharded log of messages. Throughput and storage capacity scale linearly

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Tackling Kafka, with a Small Team · Kafka is a messaging system which provides an immutable, linearizable, sharded log of messages. Throughput and storage capacity scale linearly

Tackling Kafka, with a Small Team

Page 2: Tackling Kafka, with a Small Team · Kafka is a messaging system which provides an immutable, linearizable, sharded log of messages. Throughput and storage capacity scale linearly

@JarenGlover

Page 3: Tackling Kafka, with a Small Team · Kafka is a messaging system which provides an immutable, linearizable, sharded log of messages. Throughput and storage capacity scale linearly
Page 4: Tackling Kafka, with a Small Team · Kafka is a messaging system which provides an immutable, linearizable, sharded log of messages. Throughput and storage capacity scale linearly
Page 5: Tackling Kafka, with a Small Team · Kafka is a messaging system which provides an immutable, linearizable, sharded log of messages. Throughput and storage capacity scale linearly

Organization Evolution Engineering Trade Offs

Page 6: Tackling Kafka, with a Small Team · Kafka is a messaging system which provides an immutable, linearizable, sharded log of messages. Throughput and storage capacity scale linearly
Page 7: Tackling Kafka, with a Small Team · Kafka is a messaging system which provides an immutable, linearizable, sharded log of messages. Throughput and storage capacity scale linearly

circa 2015

Page 8: Tackling Kafka, with a Small Team · Kafka is a messaging system which provides an immutable, linearizable, sharded log of messages. Throughput and storage capacity scale linearly

Product Analytics

Page 9: Tackling Kafka, with a Small Team · Kafka is a messaging system which provides an immutable, linearizable, sharded log of messages. Throughput and storage capacity scale linearly

We wanted to build our own event pipeline.

Page 10: Tackling Kafka, with a Small Team · Kafka is a messaging system which provides an immutable, linearizable, sharded log of messages. Throughput and storage capacity scale linearly

Kafka Concerns

Page 11: Tackling Kafka, with a Small Team · Kafka is a messaging system which provides an immutable, linearizable, sharded log of messages. Throughput and storage capacity scale linearly
Page 12: Tackling Kafka, with a Small Team · Kafka is a messaging system which provides an immutable, linearizable, sharded log of messages. Throughput and storage capacity scale linearly
Page 13: Tackling Kafka, with a Small Team · Kafka is a messaging system which provides an immutable, linearizable, sharded log of messages. Throughput and storage capacity scale linearly

Real Time Business Decisions

Page 14: Tackling Kafka, with a Small Team · Kafka is a messaging system which provides an immutable, linearizable, sharded log of messages. Throughput and storage capacity scale linearly

Run Experiments

Page 15: Tackling Kafka, with a Small Team · Kafka is a messaging system which provides an immutable, linearizable, sharded log of messages. Throughput and storage capacity scale linearly

Actual Application Visibility

Page 16: Tackling Kafka, with a Small Team · Kafka is a messaging system which provides an immutable, linearizable, sharded log of messages. Throughput and storage capacity scale linearly

Is Kafka Down?

Page 17: Tackling Kafka, with a Small Team · Kafka is a messaging system which provides an immutable, linearizable, sharded log of messages. Throughput and storage capacity scale linearly

Application Engineer’s Perspective

Page 18: Tackling Kafka, with a Small Team · Kafka is a messaging system which provides an immutable, linearizable, sharded log of messages. Throughput and storage capacity scale linearly

Application Engineer’s Perspective

● Implicit Trust

Page 19: Tackling Kafka, with a Small Team · Kafka is a messaging system which provides an immutable, linearizable, sharded log of messages. Throughput and storage capacity scale linearly

Application Engineer’s Perspective

● Implicit Trust● Retry Logic

Page 20: Tackling Kafka, with a Small Team · Kafka is a messaging system which provides an immutable, linearizable, sharded log of messages. Throughput and storage capacity scale linearly

Application Engineer’s Perspective

● Implicit Trust● Retry Logic● Library Ownership

Page 21: Tackling Kafka, with a Small Team · Kafka is a messaging system which provides an immutable, linearizable, sharded log of messages. Throughput and storage capacity scale linearly

Infrastructure Engineer’s Perspective

Page 22: Tackling Kafka, with a Small Team · Kafka is a messaging system which provides an immutable, linearizable, sharded log of messages. Throughput and storage capacity scale linearly
Page 23: Tackling Kafka, with a Small Team · Kafka is a messaging system which provides an immutable, linearizable, sharded log of messages. Throughput and storage capacity scale linearly
Page 24: Tackling Kafka, with a Small Team · Kafka is a messaging system which provides an immutable, linearizable, sharded log of messages. Throughput and storage capacity scale linearly
Page 25: Tackling Kafka, with a Small Team · Kafka is a messaging system which provides an immutable, linearizable, sharded log of messages. Throughput and storage capacity scale linearly

Infrastructure Engineer’s Perspective

● Suffering from Success ● Technical Whack-A-Mole● Library Ownership

Page 26: Tackling Kafka, with a Small Team · Kafka is a messaging system which provides an immutable, linearizable, sharded log of messages. Throughput and storage capacity scale linearly

Engineering Trade Offs

Page 27: Tackling Kafka, with a Small Team · Kafka is a messaging system which provides an immutable, linearizable, sharded log of messages. Throughput and storage capacity scale linearly

What We Got Right

Replacing Unhealthy Brokers

Page 28: Tackling Kafka, with a Small Team · Kafka is a messaging system which provides an immutable, linearizable, sharded log of messages. Throughput and storage capacity scale linearly
Page 29: Tackling Kafka, with a Small Team · Kafka is a messaging system which provides an immutable, linearizable, sharded log of messages. Throughput and storage capacity scale linearly
Page 30: Tackling Kafka, with a Small Team · Kafka is a messaging system which provides an immutable, linearizable, sharded log of messages. Throughput and storage capacity scale linearly

… Recently Got Right

Tooling for Rolling Restarts

Page 31: Tackling Kafka, with a Small Team · Kafka is a messaging system which provides an immutable, linearizable, sharded log of messages. Throughput and storage capacity scale linearly
Page 32: Tackling Kafka, with a Small Team · Kafka is a messaging system which provides an immutable, linearizable, sharded log of messages. Throughput and storage capacity scale linearly

Thanks Prometheus and Fabric

Page 33: Tackling Kafka, with a Small Team · Kafka is a messaging system which provides an immutable, linearizable, sharded log of messages. Throughput and storage capacity scale linearly

Soon to be Right ...

Overhaul the Client Library

Page 34: Tackling Kafka, with a Small Team · Kafka is a messaging system which provides an immutable, linearizable, sharded log of messages. Throughput and storage capacity scale linearly

Shared Library Improvements ● More Implementation Structure

Page 35: Tackling Kafka, with a Small Team · Kafka is a messaging system which provides an immutable, linearizable, sharded log of messages. Throughput and storage capacity scale linearly

Shared Library Improvements ● More Implementation Structure

● Observability for Free

Page 36: Tackling Kafka, with a Small Team · Kafka is a messaging system which provides an immutable, linearizable, sharded log of messages. Throughput and storage capacity scale linearly

Shared Library Improvements ● More Implementation Structure

● Observability for Free

● Integration and Regression Testing

Page 37: Tackling Kafka, with a Small Team · Kafka is a messaging system which provides an immutable, linearizable, sharded log of messages. Throughput and storage capacity scale linearly

“You can do it too!”