Kafka on Kubernetes: Does it really have to be “The Hard Way”?

A presentation at Cloud Native Day in June 2019 in Montreal, QC, Canada by Viktor Gamov

Slide 1

Slide 1

Kafka on Kubernetes: Does it really have to be «The Hard Way»? June, 2019 / Montreal, CA, 2019 @gamussa @gamussa || #ImCloudNative #ImCloudNative || @ConfluentINc @ConfluentINc

Slide 2

Slide 2

2 @gamussa | #ImCloudNative | @ConfluentINc

Slide 3

Slide 3

3 I build highly scalable Hello World apps @gamussa | #ImCloudNative | @ConfluentINc

Slide 4

Slide 4

Raffle, yeah 🚀 Follow @gamussa @confluentinc 📸🖼👬 Tag @gamussa With #ImCloudNative

Slide 5

Slide 5

5 A company is build on DATA FLOWS but All we have is DATA STORES @gamussa | #ImCloudNative | @ConfluentINc

Slide 6

Slide 6

6 Pre-Streaming @gamussa | #ImCloudNative | @ConfluentINc

Slide 7

Slide 7

7 @gamussa | #ImCloudNative | @ConfluentINc

Slide 8

Slide 8

8 New World Streaming first • DB/DWH + Many more distributed data systems • Monolith -> Microservices • Batch -> Real-time @gamussa | #ImCloudNative | @ConfluentINc

Slide 9

Slide 9

9 Evolution of #devkafkaops ansible/chef Docker Kubernetes Shell scripts @gamussa | #ImCloudNative | @ConfluentINc

Slide 10

Slide 10

10 https://twitter.com/claesmogren/status/1108456688175079424 @gamussa | #ImCloudNative | @ConfluentINc

Slide 11

Slide 11

11 🙋 @gamussa | #ImCloudNative | @ConfluentINc

Slide 12

Slide 12

12 Who run stateless workloads in Kubernetes? 🙋 Who thinks it’s a good idea? Who run stateful workloads in Kubernetes? Who thinks it’s a good idea? @gamussa | #ImCloudNative | @ConfluentINc

Slide 13

Slide 13

13 kafkaesque world of Kafka on Kubernetes @gamussa | #ImCloudNative | @ConfluentINc

Slide 14

Slide 14

14 #devkafkaops Well, it’s tricky © Translating an existing architecture to Kubernetes External access to brokers and other components Persistent Storage options on prem and clouds Security Configuration and Upgrades @gamussa | #ImCloudNative | @ConfluentINc

Slide 15

Slide 15

15 But I just want to deploy kafka @gamussa | #ImCloudNative | @ConfluentINc

Slide 16

Slide 16

16 Workloads Deployment @gamussa | #ImCloudNative | @ConfluentINc

Slide 17

Slide 17

17 Helm Charts @gamussa | #ImCloudNative | @ConfluentINc

Slide 18

Slide 18

18 Helm Charts @gamussa | #ImCloudNative | @ConfluentINc

Slide 19

Slide 19

19 Helm Charts @gamussa | #ImCloudNative | @ConfluentINc

Slide 20

Slide 20

20 https://cnfl.io/helm_video @gamussa | #ImCloudNative | @ConfluentINc

Slide 21

Slide 21

21 Helm Charts is just a GO Templates. How Charts help with rolling update? @gamussa | #ImCloudNative | @ConfluentINc

Slide 22

Slide 22

Rolling Upgrade Kafka Broker Upgrades: 1. Stop the broker, upgrade Kafka 2. Wait for Partition Leader reassignment 3. Start the upgraded broker 4. Wait for zero underreplicated partitions 5. Upgrade the next broker @gamussa | #ImCloudNative | @ConfluentINc 22

Slide 23

Slide 23

23 We will use StatefulSets with OrderedReady @gamussa | #ImCloudNative | @ConfluentINc

Slide 24

Slide 24

24 We need SRE / Operator knowledge to manage the platform. You need Operator! @gamussa | #ImCloudNative | @ConfluentINc

Slide 25

Slide 25

25 @gamussa | #ImCloudNative | @ConfluentINc

Slide 26

Slide 26

26 Show me your Operator @gamussa | #ImCloudNative | @ConfluentINc

Slide 27

Slide 27

27 KLyfft - Kafka app on Kubernetes 2 Web Apps powered by a microservice each Apps are a ride sharing driver and rider location tracking Rider hails a ride and the driver drives towards the rider Real time location events powered by Kafka on Kubernetes Rider @gamussa | #ImCloudNative | @ConfluentINc Driver

Slide 28

Slide 28

28 Demo @gamussa | #ImCloudNative | @ConfluentINc

Slide 29

Slide 29

29 DO KAFKA ON KUBERNETES DEMO AND EVERYONE LOOSES THEIR MIND @gamussa | #ImCloudNative | @ConfluentINc

Slide 30

Slide 30

30 Confluent Operator - Automated Security Configuration SASL PLAIN and Mutual TLS Authentication Automate configuration of truststores and keystores with secret objects Automate configuration of Kafka and all Confluent Platform Components @gamussa | #ImCloudNative | @ConfluentINc

Slide 31

Slide 31

31 Be like Justin! @gamussa | #ImCloudNative | @ConfluentINc

Slide 32

Slide 32

Rolling Upgrade Kafka Broker Upgrades: 1. Stop the broker, upgrade Kafka 2. Wait for Partition Leader reassignment 3. Start the upgraded broker 4. Wait for zero underreplicated partitions 5. Upgrade the next broker @gamussa | #ImCloudNative | @ConfluentINc 32

Slide 33

Slide 33

33 Want to see advanced deployment? vs. @gamussa | #ImCloudNative | @ConfluentINc

Slide 34

Slide 34

34 http://gamov.dev/ksummit_nyc19_k8s @gamussa | #ImCloudNative | @ConfluentINc

Slide 35

Slide 35

35 ● We are in private Preview GA Plans Release is over! ● 24 customers testing the Operator in Preview: ● Global customers ● Banks, Fin Tech, Retailers, Consumer Tech ● We are in the final stages of Preview and about to launch soon @gamussa | #ImCloudNative | @ConfluentINc

Slide 36

Slide 36

Thanks! @gamussa viktor@confluent.io https://slackpass.io/confluentcommunity #kubernetes @gamussa | @ #ImCloudNative | @ConfluentINc

Slide 37

Slide 37

37