SlideShare a Scribd company logo
1 of 117
Download to read offline
KAFKA ON KUBERNETES:
Keeping It Simple
We’re not doing that…

right?
We’re not doing that…

right?
We’re not doing that…

right?
Definitely not!
ONE YEAR LATER
ONE YEAR LATER
1. Production Kafka cluster on Kubernetes.
2. Suggesting this idea to other people.
ONE YEAR LATER
1. Production Kafka cluster on Kubernetes.
2. Suggesting this idea to other people.
We’re not doing that…

right?
Definitely not!
RUNNING KAFKA ON
KUBERNETES DOESN'T
HAVE TO BE COMPLICATED.
RUNNING KAFKA ON
KUBERNETES DOESN'T
HAVE TO BE COMPLICATED.
* "Complicated"
RUNNING KAFKA ON
KUBERNETES DOESN'T
HAVE TO BE COMPLICATED.
* "Complicated" = custom resource definitions, plugins, operators, etc.
WHAT YOU’LL GET OUT OF THIS
WHAT YOU’LL GET OUT OF THIS
➤ Example of real-life production setup
WHAT YOU’LL GET OUT OF THIS
➤ Example of real-life production setup
➤ Technical tips and tricks
WHAT YOU’LL GET OUT OF THIS
➤ Example of real-life production setup
➤ Technical tips and tricks
➤ Advice for migrating production systems
SYSTEMS MENTIONED
➤ Kafka
➤ Kubernetes
➤ Chef
➤ Terraform
➤ Helm
➤ Prometheus
➤ Google Cloud Platform
SYSTEMS MENTIONED
➤ Kafka
➤ Kubernetes
➤ Chef
➤ Terraform
➤ Helm
➤ Prometheus
➤ Google Cloud Platform
SYSTEMS MENTIONED
➤ Kafka
➤ Kubernetes
➤ Chef
➤ Terraform
➤ Helm
➤ Prometheus
➤ Google Cloud Platform
WHAT WE BUILT
and how it works
WHAT WE CONSIDERED
➤ VMs + Chef
WHAT WE CONSIDERED
➤ VMs + Chef
➤ Mutable infrastructure
WHAT WE CONSIDERED
➤ VMs + Chef
➤ Mutable infrastructure
➤ VMs + Machine/Docker Images
WHAT WE CONSIDERED
➤ VMs + Chef
➤ Mutable infrastructure
➤ VMs + Machine/Docker Images
➤ Same amount of toil, new cloud infra problems
WHAT WE CONSIDERED
➤ VMs + Chef
➤ Mutable infrastructure
➤ VMs + Machine/Docker Images
➤ Same amount of toil, new cloud infra problems
➤ Managed Instance Groups
WHAT WE CONSIDERED
➤ VMs + Chef
➤ Mutable infrastructure
➤ VMs + Machine/Docker Images
➤ Same amount of toil, new cloud infra problems
➤ Managed Instance Groups
➤ Not good for stateful workloads
WHAT WE CONSIDERED
➤ VMs + Chef
➤ Mutable infrastructure
➤ VMs + Machine/Docker Images
➤ Same amount of toil, new cloud infra problems
➤ Managed Instance Groups
➤ Not good for stateful workloads
➤ …Kubernetes?!
WHAT WE CONSIDERED
➤ VMs + Chef
➤ Mutable infrastructure
➤ VMs + Machine/Docker Images
➤ Same amount of toil, new cloud infra problems
➤ Managed Instance Groups
➤ Not good for stateful workloads
➤ …Kubernetes?!
CROSS-ZONE TRAFFIC IS $$$.
RESOURCE MANAGEMENT
➤ Examples of separation:
➤ zones
RESOURCE MANAGEMENT
➤ Examples of separation:
➤ zones
➤ node type
RESOURCE MANAGEMENT
➤ Examples of separation:
➤ zones
➤ node type - varying workloads, e.g. high CPU requirement
RESOURCE MANAGEMENT
➤ Examples of separation:
➤ zones
➤ node pools - varying workloads, e.g. high CPU requirement
➤ Workload allocation controlled by:
➤ nodeSelectors
➤ pool: highmem
➤ failure-domain.beta.kubernetes.io/zone: us-central1-a
RESOURCE MANAGEMENT
➤ Examples of separation:
➤ zones
➤ node pools - varying workloads, e.g. high CPU requirement
➤ Workload allocation controlled by:
➤ nodeSelectors
➤ pool: highmem
➤ failure-domain.beta.kubernetes.io/zone: us-central1-a
➤ taints + tolerations
➤ - key: pool

operator: Equal

value: highmem

effect: NoSchedule
SERVICE DISCOVERY
➤ Within the cluster: ClusterIP Service
➤ e.g. Kafka broker to Kafka broker, Kafka Connect worker to
Kafka broker
SERVICE DISCOVERY
➤ Within the cluster: ClusterIP Service
➤ e.g. Kafka broker to Kafka broker, Kafka Connect worker to
Kafka broker
➤ External services to Kafka:
➤ Bootstrapping: Cloud DNS to LoadBalancer
SERVICE DISCOVERY
➤ Within the cluster: ClusterIP Service
➤ e.g. Kafka broker to Kafka broker, Kafka Connect worker to
Kafka broker
➤ External services to Kafka:
➤ Bootstrapping: Cloud DNS to LoadBalancer
➤ Direct to broker: NodePort*
* In our specific case, ClusterIP due to VPC-native IP aliasing on GCP. Also possible: dedicated LoadBalancers.
SERVICE DISCOVERY
➤ Within the cluster: ClusterIP Service
➤ e.g. Kafka broker to Kafka broker, Kafka Connect worker to
Kafka broker
➤ External services to Kafka:
➤ Bootstrapping: Cloud DNS to LoadBalancer
➤ Direct to broker: NodePort*
➤ Configuring your Kafka listeners
* In our specific case, ClusterIP due to VPC-native IP aliasing on GCP. Also possible: dedicated LoadBalancers.
SERVICE DISCOVERY
➤ Within the cluster: ClusterIP Service
➤ e.g. Kafka broker to Kafka broker, Kafka Connect worker to
Kafka broker
➤ External services to Kafka:
➤ Bootstrapping: Cloud DNS to LoadBalancer
➤ Direct to broker: NodePort*
➤ Configuring your Kafka listeners
* In our specific case, ClusterIP due to VPC-native IP aliasing on GCP. Also possible: dedicated LoadBalancers.
SERVICE DISCOVERY
➤ Within the cluster: ClusterIP Service
➤ e.g. Kafka broker to Kafka broker, Kafka Connect worker to
Kafka broker
➤ External services to Kafka:
➤ Bootstrapping: Cloud DNS to LoadBalancer
➤ Direct to broker: NodePort*
➤ Configuring your Kafka listeners
➤ https://rmoff.net/2018/08/02/kafka-listeners-explained/
* In our specific case, ClusterIP due to VPC-native IP aliasing on GCP. Also possible: dedicated LoadBalancers.
SOME NOTES ON MANAGEMENT
SOME NOTES ON MANAGEMENT
➤ Installation, deploy:
➤ Confluent Helm charts
➤ https://github.com/confluentinc/cp-helm-charts
SOME NOTES ON MANAGEMENT
➤ Installation, deploy:
➤ Confluent Helm charts
➤ https://github.com/confluentinc/cp-helm-charts
➤ No Tiller, Helm templating only
SOME NOTES ON MANAGEMENT
➤ Installation, deploy:
➤ Confluent Helm charts
➤ https://github.com/confluentinc/cp-helm-charts
➤ No Tiller, Helm templating only
➤ Confluent Docker images, with additions
SOME NOTES ON MANAGEMENT
➤ Monitoring:
SOME NOTES ON MANAGEMENT
➤ Monitoring:
➤ Kafka exposes JMX metrics by default
SOME NOTES ON MANAGEMENT
➤ Monitoring:
➤ Kafka exposes JMX metrics by default
➤ Prometheus JMX Exporter as Java agent (vs. Helm chart
sidecar)
WHAT WE LEARNED
and what we think you should know
WHAT WE LEARNED
WHAT WE LEARNED
WHAT WE LEARNED
➤ Ephemeral resources
WHAT WE LEARNED
➤ Ephemeral resources
WHAT WE LEARNED
➤ Ephemeral resources
➤ Don’t assume static IPs; make sure Kafka clients can handle
pod evictions
WHAT WE LEARNED
➤ Ephemeral resources
➤ Don’t assume static IPs; make sure Kafka clients can handle
pod evictions
➤ Check your JVM DNS cache TTL (networkaddress.cache.ttl)
WHAT WE LEARNED
➤ Ephemeral resources
➤ Don’t assume static IPs; make sure Kafka clients can handle
pod evictions
➤ Check your JVM DNS cache TTL (networkaddress.cache.ttl)
WHAT WE LEARNED
➤ Ephemeral resources
➤ Don’t assume static IPs; make sure Kafka clients can handle
pod evictions
➤ Check your JVM DNS cache TTL (networkaddress.cache.ttl)
➤ Check the Apache Kafka JIRA
WHAT WE LEARNED
➤ Ephemeral resources
➤ Don’t assume static IPs; make sure Kafka clients can handle
pod evictions
➤ Check your JVM DNS cache TTL (networkaddress.cache.ttl)
➤ Oh, and upgrade Kafka.
WHAT WE LEARNED
➤ Ephemeral resources
➤ Don’t assume static IPs; make sure Kafka clients can handle
pod evictions
➤ Check your JVM DNS cache TTL (networkaddress.cache.ttl)
➤ Check JIRA/Upgrade Kafka
➤ Producers and consumers too!
WHAT WE LEARNED
➤ Ephemeral resources
➤ Don’t assume static IPs; make sure Kafka clients can handle
pod evictions
➤ Check your JVM DNS cache TTL (networkaddress.cache.ttl)
➤ Check JIRA/Upgrade Kafka
➤ Producers and consumers too!
➤ Examples: KAFKA-7755, KAFKA-7890
➤ See also: cp-helm-charts issue #240
WHAT WE LEARNED
➤ Different kinds of updates/rolling restarts
WHAT WE LEARNED
➤ Different kinds of updates/rolling restarts
➤ Changes to Kafka cluster: versions, broker properties
WHAT WE LEARNED
➤ Different kinds of updates/rolling restarts
➤ Changes to Kafka cluster: versions, broker properties
➤ Workload configuration: resources, security policies
WHAT WE LEARNED
➤ Different kinds of updates/rolling restarts
➤ Changes to Kafka cluster: versions, broker properties
➤ Workload configuration: resources, security policies
➤ Upgrading Kubernetes nodes
Health checks are important for self-healing clusters!
Health checks are important for self-healing clusters!
Health checks are important for self-healing clusters!
CONTAINER PROBES
CONTAINER PROBES
➤ Liveness Probe

“Should I restart this container?”
CONTAINER PROBES
➤ Liveness Probe

“Should I restart this container?”
➤ Readiness Probe

“Should this container accept traffic?”
https://github.com/andreas-schroeder/kafka-health-check
CONTAINER PROBES
➤ Liveness Probe

“Should I restart this container?”
➤ Endpoint: is this broker healthy?
CONTAINER PROBES
➤ Liveness Probe

“Should I restart this container?”
➤ Endpoint: is this broker healthy?
➤ Don’t be too strict!
https://github.com/andreas-schroeder/kafka-health-check
WHAT WE HAD TO FIGURE OUT
➤ Different kinds of updates/rolling restarts
➤ Changes to Kafka cluster: versions, broker properties
➤ Workload configuration: resources, security policies
➤ Upgrading Kubernetes nodes
➤ How health checks affect updates
WHAT WE HAD TO FIGURE OUT
➤ Different kinds of updates/rolling restarts
➤ Changes to Kafka cluster: versions, broker properties
➤ Workload configuration: resources, security policies
➤ Upgrading Kubernetes nodes
➤ How health checks affect updates
WHAT WE HAD TO FIGURE OUT
➤ Different kinds of updates/rolling restarts
➤ Changes to Kafka cluster: versions, broker properties
➤ Workload configuration: resources, security policies
➤ Upgrading Kubernetes nodes
➤ How health checks affect updates
➤ podDisruptionBudget
WHAT WE HAD TO FIGURE OUT
➤ Different kinds of updates/rolling restarts
➤ Changes to Kafka cluster: versions, broker properties
➤ Workload configuration: resources, security policies
➤ Upgrading Kubernetes nodes
➤ How health checks affect updates
➤ podDisruptionBudget, podManagementPolicy
WHAT WE HAD TO FIGURE OUT
➤ Different kinds of updates/rolling restarts
➤ Changes to Kafka cluster: versions, broker properties
➤ Workload configuration: resources, security policies
➤ Upgrading Kubernetes nodes
➤ How health checks affect updates
➤ podDisruptionBudget, podManagementPolicy
➤ Health check overrides
➤ What happens if you deploy a change that breaks the
health checks?
WHAT WE HAD TO FIGURE OUT
➤ Different kinds of updates/rolling restarts
➤ Changes to Kafka cluster: versions, broker properties
➤ Workload configuration: resources, security policies
➤ Upgrading Kubernetes nodes
➤ How health checks affect updates
➤ podDisruptionBudget, podManagementPolicy
➤ Health check overrides
➤ What happens if you deploy a change that breaks the
health checks?
➤ See Kubernetes issue #62750
MIGRATING PRODUCTION ARCHITECTURE
MIGRATING PRODUCTION ARCHITECTURE
MIGRATING PRODUCTION ARCHITECTURE
MIGRATING PRODUCTION ARCHITECTURE
MIGRATING PRODUCTION ARCHITECTURE
➤ Get your hands dirty!
MIGRATING PRODUCTION ARCHITECTURE
➤ Get your hands dirty!
MIGRATING PRODUCTION ARCHITECTURE
➤ Get your hands dirty!
➤ Simulate common maintenance tasks
MIGRATING PRODUCTION ARCHITECTURE
➤ Get your hands dirty!
➤ Simulate common maintenance tasks
➤ Benchmark for performance
➤ kafka-producer-perf-test, kafka-consumer-perf-test
MIGRATING PRODUCTION ARCHITECTURE
➤ Get your hands dirty!
➤ Simulate common maintenance tasks
➤ Benchmark for performance
➤ kafka-producer-perf-test, kafka-consumer-perf-test
➤ Variables: disk type, CPU count, producer record size,
producer batch size, Java opts…
MIGRATING PRODUCTION ARCHITECTURE
➤ Get your hands dirty!
➤ Simulate common maintenance tasks
➤ Benchmark for performance
➤ kafka-producer-perf-test, kafka-consumer-perf-test
➤ Variables: disk type, CPU count, producer record size,
producer batch size, Java opts…
➤ We were able to use Compute Engine persistent disks
(shared storage) rather than local SSDs
MIGRATING PRODUCTION ARCHITECTURE
➤ Get your hands dirty!
➤ Simulate common maintenance tasks
➤ Benchmark for performance
➤ kafka-producer-perf-test, kafka-consumer-perf-test
➤ Variables: disk type, CPU count, producer record size,
producer batch size, Java opts…
➤ We were able to use Compute Engine persistent disks
(shared storage) rather than local SSDs
➤ Simulate failure
MIGRATING PRODUCTION ARCHITECTURE
➤ Get your hands dirty!
➤ Simulate common maintenance tasks
➤ Benchmark for performance
➤ kafka-producer-perf-test, kafka-consumer-perf-test
➤ Variables: disk type, CPU count, producer record size,
producer batch size, Java opts…
➤ We were able to use Compute Engine persistent disks
(shared storage) rather than local SSDs
➤ Simulate failure
Try to keep it simple!
WHY IT WORKS FOR US
( for now, at least!)
WHY IT WORKS FOR US
WHY IT WORKS FOR US
➤ Increased automation
WHY IT WORKS FOR US
➤ Increased automation
➤ Simpler configuration
WHY IT WORKS FOR US
➤ Increased automation
➤ Simpler configuration
➤ Efficient resource usage
➤ Bin packing
➤ GKE autoscaling
WHY IT WORKS FOR US
➤ Increased automation
➤ Simpler configuration
➤ Efficient resource usage
➤ Bin packing
➤ GKE autoscaling
➤ Improved developer workflows for streaming services
➤ e.g. adding new Kafka Streams applications, Kafka Connect
workloads
THANK YOU!
Twitter: @NikkiThean

Confluent Slack: @nikki

Email: nikki.thean@gmail.com
Thank you to Kamo for drawing inspiration!

More Related Content

What's hot

Introduction to Kafka Cruise Control
Introduction to Kafka Cruise ControlIntroduction to Kafka Cruise Control
Introduction to Kafka Cruise ControlJiangjie Qin
 
Building Microservices with Apache Kafka
Building Microservices with Apache KafkaBuilding Microservices with Apache Kafka
Building Microservices with Apache Kafkaconfluent
 
Kafka Tutorial - Introduction to Apache Kafka (Part 1)
Kafka Tutorial - Introduction to Apache Kafka (Part 1)Kafka Tutorial - Introduction to Apache Kafka (Part 1)
Kafka Tutorial - Introduction to Apache Kafka (Part 1)Jean-Paul Azar
 
Common issues with Apache Kafka® Producer
Common issues with Apache Kafka® ProducerCommon issues with Apache Kafka® Producer
Common issues with Apache Kafka® Producerconfluent
 
Running Kafka as a Native Binary Using GraalVM with Ozan Günalp
Running Kafka as a Native Binary Using GraalVM with Ozan GünalpRunning Kafka as a Native Binary Using GraalVM with Ozan Günalp
Running Kafka as a Native Binary Using GraalVM with Ozan GünalpHostedbyConfluent
 
Building Large-Scale Stream Infrastructures Across Multiple Data Centers with...
Building Large-Scale Stream Infrastructures Across Multiple Data Centers with...Building Large-Scale Stream Infrastructures Across Multiple Data Centers with...
Building Large-Scale Stream Infrastructures Across Multiple Data Centers with...DataWorks Summit/Hadoop Summit
 
A visual introduction to Apache Kafka
A visual introduction to Apache KafkaA visual introduction to Apache Kafka
A visual introduction to Apache KafkaPaul Brebner
 
Introduction to Apache Kafka
Introduction to Apache KafkaIntroduction to Apache Kafka
Introduction to Apache KafkaShiao-An Yuan
 
Spring Boot+Kafka: the New Enterprise Platform
Spring Boot+Kafka: the New Enterprise PlatformSpring Boot+Kafka: the New Enterprise Platform
Spring Boot+Kafka: the New Enterprise PlatformVMware Tanzu
 
Introduction to Kafka Streams
Introduction to Kafka StreamsIntroduction to Kafka Streams
Introduction to Kafka StreamsGuozhang Wang
 
Rancher and Kubernetes Best Practices
Rancher and  Kubernetes Best PracticesRancher and  Kubernetes Best Practices
Rancher and Kubernetes Best PracticesAvinash Patil
 
Introduction to Apache Kafka
Introduction to Apache KafkaIntroduction to Apache Kafka
Introduction to Apache KafkaJeff Holoman
 
Kafka Cluster Federation at Uber (Yupeng Fui & Xiaoman Dong, Uber) Kafka Summ...
Kafka Cluster Federation at Uber (Yupeng Fui & Xiaoman Dong, Uber) Kafka Summ...Kafka Cluster Federation at Uber (Yupeng Fui & Xiaoman Dong, Uber) Kafka Summ...
Kafka Cluster Federation at Uber (Yupeng Fui & Xiaoman Dong, Uber) Kafka Summ...confluent
 
Apache Kafka, Un système distribué de messagerie hautement performant
Apache Kafka, Un système distribué de messagerie hautement performantApache Kafka, Un système distribué de messagerie hautement performant
Apache Kafka, Un système distribué de messagerie hautement performantALTIC Altic
 
Apache Kafka 0.8 basic training - Verisign
Apache Kafka 0.8 basic training - VerisignApache Kafka 0.8 basic training - Verisign
Apache Kafka 0.8 basic training - VerisignMichael Noll
 
Automated CloudStack Deployment
Automated CloudStack DeploymentAutomated CloudStack Deployment
Automated CloudStack DeploymentShapeBlue
 
Disaster Recovery with MirrorMaker 2.0 (Ryanne Dolan, Cloudera) Kafka Summit ...
Disaster Recovery with MirrorMaker 2.0 (Ryanne Dolan, Cloudera) Kafka Summit ...Disaster Recovery with MirrorMaker 2.0 (Ryanne Dolan, Cloudera) Kafka Summit ...
Disaster Recovery with MirrorMaker 2.0 (Ryanne Dolan, Cloudera) Kafka Summit ...confluent
 
Hardening Kafka Replication
Hardening Kafka Replication Hardening Kafka Replication
Hardening Kafka Replication confluent
 

What's hot (20)

Kafka internals
Kafka internalsKafka internals
Kafka internals
 
Introduction to Kafka Cruise Control
Introduction to Kafka Cruise ControlIntroduction to Kafka Cruise Control
Introduction to Kafka Cruise Control
 
Building Microservices with Apache Kafka
Building Microservices with Apache KafkaBuilding Microservices with Apache Kafka
Building Microservices with Apache Kafka
 
Kafka Tutorial - Introduction to Apache Kafka (Part 1)
Kafka Tutorial - Introduction to Apache Kafka (Part 1)Kafka Tutorial - Introduction to Apache Kafka (Part 1)
Kafka Tutorial - Introduction to Apache Kafka (Part 1)
 
Common issues with Apache Kafka® Producer
Common issues with Apache Kafka® ProducerCommon issues with Apache Kafka® Producer
Common issues with Apache Kafka® Producer
 
Running Kafka as a Native Binary Using GraalVM with Ozan Günalp
Running Kafka as a Native Binary Using GraalVM with Ozan GünalpRunning Kafka as a Native Binary Using GraalVM with Ozan Günalp
Running Kafka as a Native Binary Using GraalVM with Ozan Günalp
 
Building Large-Scale Stream Infrastructures Across Multiple Data Centers with...
Building Large-Scale Stream Infrastructures Across Multiple Data Centers with...Building Large-Scale Stream Infrastructures Across Multiple Data Centers with...
Building Large-Scale Stream Infrastructures Across Multiple Data Centers with...
 
A visual introduction to Apache Kafka
A visual introduction to Apache KafkaA visual introduction to Apache Kafka
A visual introduction to Apache Kafka
 
Introduction to Apache Kafka
Introduction to Apache KafkaIntroduction to Apache Kafka
Introduction to Apache Kafka
 
Apache Kafka Best Practices
Apache Kafka Best PracticesApache Kafka Best Practices
Apache Kafka Best Practices
 
Spring Boot+Kafka: the New Enterprise Platform
Spring Boot+Kafka: the New Enterprise PlatformSpring Boot+Kafka: the New Enterprise Platform
Spring Boot+Kafka: the New Enterprise Platform
 
Introduction to Kafka Streams
Introduction to Kafka StreamsIntroduction to Kafka Streams
Introduction to Kafka Streams
 
Rancher and Kubernetes Best Practices
Rancher and  Kubernetes Best PracticesRancher and  Kubernetes Best Practices
Rancher and Kubernetes Best Practices
 
Introduction to Apache Kafka
Introduction to Apache KafkaIntroduction to Apache Kafka
Introduction to Apache Kafka
 
Kafka Cluster Federation at Uber (Yupeng Fui & Xiaoman Dong, Uber) Kafka Summ...
Kafka Cluster Federation at Uber (Yupeng Fui & Xiaoman Dong, Uber) Kafka Summ...Kafka Cluster Federation at Uber (Yupeng Fui & Xiaoman Dong, Uber) Kafka Summ...
Kafka Cluster Federation at Uber (Yupeng Fui & Xiaoman Dong, Uber) Kafka Summ...
 
Apache Kafka, Un système distribué de messagerie hautement performant
Apache Kafka, Un système distribué de messagerie hautement performantApache Kafka, Un système distribué de messagerie hautement performant
Apache Kafka, Un système distribué de messagerie hautement performant
 
Apache Kafka 0.8 basic training - Verisign
Apache Kafka 0.8 basic training - VerisignApache Kafka 0.8 basic training - Verisign
Apache Kafka 0.8 basic training - Verisign
 
Automated CloudStack Deployment
Automated CloudStack DeploymentAutomated CloudStack Deployment
Automated CloudStack Deployment
 
Disaster Recovery with MirrorMaker 2.0 (Ryanne Dolan, Cloudera) Kafka Summit ...
Disaster Recovery with MirrorMaker 2.0 (Ryanne Dolan, Cloudera) Kafka Summit ...Disaster Recovery with MirrorMaker 2.0 (Ryanne Dolan, Cloudera) Kafka Summit ...
Disaster Recovery with MirrorMaker 2.0 (Ryanne Dolan, Cloudera) Kafka Summit ...
 
Hardening Kafka Replication
Hardening Kafka Replication Hardening Kafka Replication
Hardening Kafka Replication
 

Similar to Kafka on Kubernetes: Keeping It Simple (Nikki Thean, Etsy) Kafka Summit SF 2019

Kubernetes Networking
Kubernetes NetworkingKubernetes Networking
Kubernetes NetworkingCJ Cullen
 
Networking in Kubernetes
Networking in KubernetesNetworking in Kubernetes
Networking in KubernetesMinhan Xia
 
Build and Deploy Cloud Native Camel Quarkus routes with Tekton and Knative
Build and Deploy Cloud Native Camel Quarkus routes with Tekton and KnativeBuild and Deploy Cloud Native Camel Quarkus routes with Tekton and Knative
Build and Deploy Cloud Native Camel Quarkus routes with Tekton and KnativeOmar Al-Safi
 
Cross the streams thanks to Kafka and Flink (Christophe Philemotte, Digazu) K...
Cross the streams thanks to Kafka and Flink (Christophe Philemotte, Digazu) K...Cross the streams thanks to Kafka and Flink (Christophe Philemotte, Digazu) K...
Cross the streams thanks to Kafka and Flink (Christophe Philemotte, Digazu) K...confluent
 
Production Ready Kafka on Kubernetes (Devandra Tagare, Lyft) Kafka Summit SF ...
Production Ready Kafka on Kubernetes (Devandra Tagare, Lyft) Kafka Summit SF ...Production Ready Kafka on Kubernetes (Devandra Tagare, Lyft) Kafka Summit SF ...
Production Ready Kafka on Kubernetes (Devandra Tagare, Lyft) Kafka Summit SF ...confluent
 
Learnings From Shipping 1000+ Streaming Data Pipelines To Production with Hak...
Learnings From Shipping 1000+ Streaming Data Pipelines To Production with Hak...Learnings From Shipping 1000+ Streaming Data Pipelines To Production with Hak...
Learnings From Shipping 1000+ Streaming Data Pipelines To Production with Hak...HostedbyConfluent
 
9th docker meetup 2016.07.13
9th docker meetup 2016.07.139th docker meetup 2016.07.13
9th docker meetup 2016.07.13Amrita Prasad
 
Digital Forensics and Incident Response in The Cloud Part 3
Digital Forensics and Incident Response in The Cloud Part 3Digital Forensics and Incident Response in The Cloud Part 3
Digital Forensics and Incident Response in The Cloud Part 3Velocidex Enterprises
 
Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry
Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundryCassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry
Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundryDataStax Academy
 
Introduction to Container Management on AWS
Introduction to Container Management on AWSIntroduction to Container Management on AWS
Introduction to Container Management on AWSAmazon Web Services
 
Connect, Test, Optimize: The Ultimate Kafka Connector Benchmarking Toolkit
Connect, Test, Optimize: The Ultimate Kafka Connector Benchmarking ToolkitConnect, Test, Optimize: The Ultimate Kafka Connector Benchmarking Toolkit
Connect, Test, Optimize: The Ultimate Kafka Connector Benchmarking ToolkitHostedbyConfluent
 
PipelineAI + TensorFlow AI + Spark ML + Kuberenetes + Istio + AWS SageMaker +...
PipelineAI + TensorFlow AI + Spark ML + Kuberenetes + Istio + AWS SageMaker +...PipelineAI + TensorFlow AI + Spark ML + Kuberenetes + Istio + AWS SageMaker +...
PipelineAI + TensorFlow AI + Spark ML + Kuberenetes + Istio + AWS SageMaker +...Chris Fregly
 
Containing Chaos with Kubernetes - Terrence Ryan, Google - DevOpsDays Tel Avi...
Containing Chaos with Kubernetes - Terrence Ryan, Google - DevOpsDays Tel Avi...Containing Chaos with Kubernetes - Terrence Ryan, Google - DevOpsDays Tel Avi...
Containing Chaos with Kubernetes - Terrence Ryan, Google - DevOpsDays Tel Avi...DevOpsDays Tel Aviv
 
Load Balancing for Containers and Cloud Native Architecture
Load Balancing for Containers and Cloud Native ArchitectureLoad Balancing for Containers and Cloud Native Architecture
Load Balancing for Containers and Cloud Native ArchitectureChiradeep Vittal
 
14th Athens Big Data Meetup - Landoop Workshop - Apache Kafka Entering The St...
14th Athens Big Data Meetup - Landoop Workshop - Apache Kafka Entering The St...14th Athens Big Data Meetup - Landoop Workshop - Apache Kafka Entering The St...
14th Athens Big Data Meetup - Landoop Workshop - Apache Kafka Entering The St...Athens Big Data
 
AWS Summit Singapore 2019 | Autoscaling Your Kubernetes Workloads
AWS Summit Singapore 2019 | Autoscaling Your Kubernetes WorkloadsAWS Summit Singapore 2019 | Autoscaling Your Kubernetes Workloads
AWS Summit Singapore 2019 | Autoscaling Your Kubernetes WorkloadsAWS Summits
 
Communication Amongst Microservices: Kubernetes, Istio, and Spring Cloud with...
Communication Amongst Microservices: Kubernetes, Istio, and Spring Cloud with...Communication Amongst Microservices: Kubernetes, Istio, and Spring Cloud with...
Communication Amongst Microservices: Kubernetes, Istio, and Spring Cloud with...VMware Tanzu
 
Canary Deployments for Kubernetes (KubeCon 2018 North America)
Canary Deployments for Kubernetes (KubeCon 2018 North America)Canary Deployments for Kubernetes (KubeCon 2018 North America)
Canary Deployments for Kubernetes (KubeCon 2018 North America)Nail Islamov
 
Continuous Delivery: The Next Frontier
Continuous Delivery: The Next FrontierContinuous Delivery: The Next Frontier
Continuous Delivery: The Next FrontierCarlos Sanchez
 

Similar to Kafka on Kubernetes: Keeping It Simple (Nikki Thean, Etsy) Kafka Summit SF 2019 (20)

Kubernetes Networking
Kubernetes NetworkingKubernetes Networking
Kubernetes Networking
 
Capistrano
CapistranoCapistrano
Capistrano
 
Networking in Kubernetes
Networking in KubernetesNetworking in Kubernetes
Networking in Kubernetes
 
Build and Deploy Cloud Native Camel Quarkus routes with Tekton and Knative
Build and Deploy Cloud Native Camel Quarkus routes with Tekton and KnativeBuild and Deploy Cloud Native Camel Quarkus routes with Tekton and Knative
Build and Deploy Cloud Native Camel Quarkus routes with Tekton and Knative
 
Cross the streams thanks to Kafka and Flink (Christophe Philemotte, Digazu) K...
Cross the streams thanks to Kafka and Flink (Christophe Philemotte, Digazu) K...Cross the streams thanks to Kafka and Flink (Christophe Philemotte, Digazu) K...
Cross the streams thanks to Kafka and Flink (Christophe Philemotte, Digazu) K...
 
Production Ready Kafka on Kubernetes (Devandra Tagare, Lyft) Kafka Summit SF ...
Production Ready Kafka on Kubernetes (Devandra Tagare, Lyft) Kafka Summit SF ...Production Ready Kafka on Kubernetes (Devandra Tagare, Lyft) Kafka Summit SF ...
Production Ready Kafka on Kubernetes (Devandra Tagare, Lyft) Kafka Summit SF ...
 
Learnings From Shipping 1000+ Streaming Data Pipelines To Production with Hak...
Learnings From Shipping 1000+ Streaming Data Pipelines To Production with Hak...Learnings From Shipping 1000+ Streaming Data Pipelines To Production with Hak...
Learnings From Shipping 1000+ Streaming Data Pipelines To Production with Hak...
 
9th docker meetup 2016.07.13
9th docker meetup 2016.07.139th docker meetup 2016.07.13
9th docker meetup 2016.07.13
 
Digital Forensics and Incident Response in The Cloud Part 3
Digital Forensics and Incident Response in The Cloud Part 3Digital Forensics and Incident Response in The Cloud Part 3
Digital Forensics and Incident Response in The Cloud Part 3
 
Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry
Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundryCassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry
Cassandra Summit 2014: Apache Cassandra on Pivotal CloudFoundry
 
Introduction to Container Management on AWS
Introduction to Container Management on AWSIntroduction to Container Management on AWS
Introduction to Container Management on AWS
 
Connect, Test, Optimize: The Ultimate Kafka Connector Benchmarking Toolkit
Connect, Test, Optimize: The Ultimate Kafka Connector Benchmarking ToolkitConnect, Test, Optimize: The Ultimate Kafka Connector Benchmarking Toolkit
Connect, Test, Optimize: The Ultimate Kafka Connector Benchmarking Toolkit
 
PipelineAI + TensorFlow AI + Spark ML + Kuberenetes + Istio + AWS SageMaker +...
PipelineAI + TensorFlow AI + Spark ML + Kuberenetes + Istio + AWS SageMaker +...PipelineAI + TensorFlow AI + Spark ML + Kuberenetes + Istio + AWS SageMaker +...
PipelineAI + TensorFlow AI + Spark ML + Kuberenetes + Istio + AWS SageMaker +...
 
Containing Chaos with Kubernetes - Terrence Ryan, Google - DevOpsDays Tel Avi...
Containing Chaos with Kubernetes - Terrence Ryan, Google - DevOpsDays Tel Avi...Containing Chaos with Kubernetes - Terrence Ryan, Google - DevOpsDays Tel Avi...
Containing Chaos with Kubernetes - Terrence Ryan, Google - DevOpsDays Tel Avi...
 
Load Balancing for Containers and Cloud Native Architecture
Load Balancing for Containers and Cloud Native ArchitectureLoad Balancing for Containers and Cloud Native Architecture
Load Balancing for Containers and Cloud Native Architecture
 
14th Athens Big Data Meetup - Landoop Workshop - Apache Kafka Entering The St...
14th Athens Big Data Meetup - Landoop Workshop - Apache Kafka Entering The St...14th Athens Big Data Meetup - Landoop Workshop - Apache Kafka Entering The St...
14th Athens Big Data Meetup - Landoop Workshop - Apache Kafka Entering The St...
 
AWS Summit Singapore 2019 | Autoscaling Your Kubernetes Workloads
AWS Summit Singapore 2019 | Autoscaling Your Kubernetes WorkloadsAWS Summit Singapore 2019 | Autoscaling Your Kubernetes Workloads
AWS Summit Singapore 2019 | Autoscaling Your Kubernetes Workloads
 
Communication Amongst Microservices: Kubernetes, Istio, and Spring Cloud with...
Communication Amongst Microservices: Kubernetes, Istio, and Spring Cloud with...Communication Amongst Microservices: Kubernetes, Istio, and Spring Cloud with...
Communication Amongst Microservices: Kubernetes, Istio, and Spring Cloud with...
 
Canary Deployments for Kubernetes (KubeCon 2018 North America)
Canary Deployments for Kubernetes (KubeCon 2018 North America)Canary Deployments for Kubernetes (KubeCon 2018 North America)
Canary Deployments for Kubernetes (KubeCon 2018 North America)
 
Continuous Delivery: The Next Frontier
Continuous Delivery: The Next FrontierContinuous Delivery: The Next Frontier
Continuous Delivery: The Next Frontier
 

More from confluent

Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
Santander Stream Processing with Apache Flink
Santander Stream Processing with Apache FlinkSantander Stream Processing with Apache Flink
Santander Stream Processing with Apache Flinkconfluent
 
Unlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insightsUnlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insightsconfluent
 
Workshop híbrido: Stream Processing con Flink
Workshop híbrido: Stream Processing con FlinkWorkshop híbrido: Stream Processing con Flink
Workshop híbrido: Stream Processing con Flinkconfluent
 
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...confluent
 
AWS Immersion Day Mapfre - Confluent
AWS Immersion Day Mapfre   -   ConfluentAWS Immersion Day Mapfre   -   Confluent
AWS Immersion Day Mapfre - Confluentconfluent
 
Eventos y Microservicios - Santander TechTalk
Eventos y Microservicios - Santander TechTalkEventos y Microservicios - Santander TechTalk
Eventos y Microservicios - Santander TechTalkconfluent
 
Q&A with Confluent Experts: Navigating Networking in Confluent Cloud
Q&A with Confluent Experts: Navigating Networking in Confluent CloudQ&A with Confluent Experts: Navigating Networking in Confluent Cloud
Q&A with Confluent Experts: Navigating Networking in Confluent Cloudconfluent
 
Citi TechTalk Session 2: Kafka Deep Dive
Citi TechTalk Session 2: Kafka Deep DiveCiti TechTalk Session 2: Kafka Deep Dive
Citi TechTalk Session 2: Kafka Deep Diveconfluent
 
Build real-time streaming data pipelines to AWS with Confluent
Build real-time streaming data pipelines to AWS with ConfluentBuild real-time streaming data pipelines to AWS with Confluent
Build real-time streaming data pipelines to AWS with Confluentconfluent
 
Q&A with Confluent Professional Services: Confluent Service Mesh
Q&A with Confluent Professional Services: Confluent Service MeshQ&A with Confluent Professional Services: Confluent Service Mesh
Q&A with Confluent Professional Services: Confluent Service Meshconfluent
 
Citi Tech Talk: Event Driven Kafka Microservices
Citi Tech Talk: Event Driven Kafka MicroservicesCiti Tech Talk: Event Driven Kafka Microservices
Citi Tech Talk: Event Driven Kafka Microservicesconfluent
 
Confluent & GSI Webinars series - Session 3
Confluent & GSI Webinars series - Session 3Confluent & GSI Webinars series - Session 3
Confluent & GSI Webinars series - Session 3confluent
 
Citi Tech Talk: Messaging Modernization
Citi Tech Talk: Messaging ModernizationCiti Tech Talk: Messaging Modernization
Citi Tech Talk: Messaging Modernizationconfluent
 
Citi Tech Talk: Data Governance for streaming and real time data
Citi Tech Talk: Data Governance for streaming and real time dataCiti Tech Talk: Data Governance for streaming and real time data
Citi Tech Talk: Data Governance for streaming and real time dataconfluent
 
Confluent & GSI Webinars series: Session 2
Confluent & GSI Webinars series: Session 2Confluent & GSI Webinars series: Session 2
Confluent & GSI Webinars series: Session 2confluent
 
Data In Motion Paris 2023
Data In Motion Paris 2023Data In Motion Paris 2023
Data In Motion Paris 2023confluent
 
Confluent Partner Tech Talk with Synthesis
Confluent Partner Tech Talk with SynthesisConfluent Partner Tech Talk with Synthesis
Confluent Partner Tech Talk with Synthesisconfluent
 
The Future of Application Development - API Days - Melbourne 2023
The Future of Application Development - API Days - Melbourne 2023The Future of Application Development - API Days - Melbourne 2023
The Future of Application Development - API Days - Melbourne 2023confluent
 
The Playful Bond Between REST And Data Streams
The Playful Bond Between REST And Data StreamsThe Playful Bond Between REST And Data Streams
The Playful Bond Between REST And Data Streamsconfluent
 

More from confluent (20)

Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
Santander Stream Processing with Apache Flink
Santander Stream Processing with Apache FlinkSantander Stream Processing with Apache Flink
Santander Stream Processing with Apache Flink
 
Unlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insightsUnlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insights
 
Workshop híbrido: Stream Processing con Flink
Workshop híbrido: Stream Processing con FlinkWorkshop híbrido: Stream Processing con Flink
Workshop híbrido: Stream Processing con Flink
 
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
 
AWS Immersion Day Mapfre - Confluent
AWS Immersion Day Mapfre   -   ConfluentAWS Immersion Day Mapfre   -   Confluent
AWS Immersion Day Mapfre - Confluent
 
Eventos y Microservicios - Santander TechTalk
Eventos y Microservicios - Santander TechTalkEventos y Microservicios - Santander TechTalk
Eventos y Microservicios - Santander TechTalk
 
Q&A with Confluent Experts: Navigating Networking in Confluent Cloud
Q&A with Confluent Experts: Navigating Networking in Confluent CloudQ&A with Confluent Experts: Navigating Networking in Confluent Cloud
Q&A with Confluent Experts: Navigating Networking in Confluent Cloud
 
Citi TechTalk Session 2: Kafka Deep Dive
Citi TechTalk Session 2: Kafka Deep DiveCiti TechTalk Session 2: Kafka Deep Dive
Citi TechTalk Session 2: Kafka Deep Dive
 
Build real-time streaming data pipelines to AWS with Confluent
Build real-time streaming data pipelines to AWS with ConfluentBuild real-time streaming data pipelines to AWS with Confluent
Build real-time streaming data pipelines to AWS with Confluent
 
Q&A with Confluent Professional Services: Confluent Service Mesh
Q&A with Confluent Professional Services: Confluent Service MeshQ&A with Confluent Professional Services: Confluent Service Mesh
Q&A with Confluent Professional Services: Confluent Service Mesh
 
Citi Tech Talk: Event Driven Kafka Microservices
Citi Tech Talk: Event Driven Kafka MicroservicesCiti Tech Talk: Event Driven Kafka Microservices
Citi Tech Talk: Event Driven Kafka Microservices
 
Confluent & GSI Webinars series - Session 3
Confluent & GSI Webinars series - Session 3Confluent & GSI Webinars series - Session 3
Confluent & GSI Webinars series - Session 3
 
Citi Tech Talk: Messaging Modernization
Citi Tech Talk: Messaging ModernizationCiti Tech Talk: Messaging Modernization
Citi Tech Talk: Messaging Modernization
 
Citi Tech Talk: Data Governance for streaming and real time data
Citi Tech Talk: Data Governance for streaming and real time dataCiti Tech Talk: Data Governance for streaming and real time data
Citi Tech Talk: Data Governance for streaming and real time data
 
Confluent & GSI Webinars series: Session 2
Confluent & GSI Webinars series: Session 2Confluent & GSI Webinars series: Session 2
Confluent & GSI Webinars series: Session 2
 
Data In Motion Paris 2023
Data In Motion Paris 2023Data In Motion Paris 2023
Data In Motion Paris 2023
 
Confluent Partner Tech Talk with Synthesis
Confluent Partner Tech Talk with SynthesisConfluent Partner Tech Talk with Synthesis
Confluent Partner Tech Talk with Synthesis
 
The Future of Application Development - API Days - Melbourne 2023
The Future of Application Development - API Days - Melbourne 2023The Future of Application Development - API Days - Melbourne 2023
The Future of Application Development - API Days - Melbourne 2023
 
The Playful Bond Between REST And Data Streams
The Playful Bond Between REST And Data StreamsThe Playful Bond Between REST And Data Streams
The Playful Bond Between REST And Data Streams
 

Recently uploaded

Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsPrecisely
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 

Recently uploaded (20)

Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power Systems
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 

Kafka on Kubernetes: Keeping It Simple (Nikki Thean, Etsy) Kafka Summit SF 2019

  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8. We’re not doing that…
 right?
  • 9. We’re not doing that…
 right?
  • 10. We’re not doing that…
 right? Definitely not!
  • 12. ONE YEAR LATER 1. Production Kafka cluster on Kubernetes. 2. Suggesting this idea to other people.
  • 13. ONE YEAR LATER 1. Production Kafka cluster on Kubernetes. 2. Suggesting this idea to other people.
  • 14. We’re not doing that…
 right? Definitely not!
  • 15. RUNNING KAFKA ON KUBERNETES DOESN'T HAVE TO BE COMPLICATED.
  • 16. RUNNING KAFKA ON KUBERNETES DOESN'T HAVE TO BE COMPLICATED. * "Complicated"
  • 17. RUNNING KAFKA ON KUBERNETES DOESN'T HAVE TO BE COMPLICATED. * "Complicated" = custom resource definitions, plugins, operators, etc.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24. WHAT YOU’LL GET OUT OF THIS
  • 25. WHAT YOU’LL GET OUT OF THIS ➤ Example of real-life production setup
  • 26. WHAT YOU’LL GET OUT OF THIS ➤ Example of real-life production setup ➤ Technical tips and tricks
  • 27. WHAT YOU’LL GET OUT OF THIS ➤ Example of real-life production setup ➤ Technical tips and tricks ➤ Advice for migrating production systems
  • 28. SYSTEMS MENTIONED ➤ Kafka ➤ Kubernetes ➤ Chef ➤ Terraform ➤ Helm ➤ Prometheus ➤ Google Cloud Platform
  • 29. SYSTEMS MENTIONED ➤ Kafka ➤ Kubernetes ➤ Chef ➤ Terraform ➤ Helm ➤ Prometheus ➤ Google Cloud Platform
  • 30. SYSTEMS MENTIONED ➤ Kafka ➤ Kubernetes ➤ Chef ➤ Terraform ➤ Helm ➤ Prometheus ➤ Google Cloud Platform
  • 31. WHAT WE BUILT and how it works
  • 32.
  • 34. WHAT WE CONSIDERED ➤ VMs + Chef ➤ Mutable infrastructure
  • 35. WHAT WE CONSIDERED ➤ VMs + Chef ➤ Mutable infrastructure ➤ VMs + Machine/Docker Images
  • 36. WHAT WE CONSIDERED ➤ VMs + Chef ➤ Mutable infrastructure ➤ VMs + Machine/Docker Images ➤ Same amount of toil, new cloud infra problems
  • 37. WHAT WE CONSIDERED ➤ VMs + Chef ➤ Mutable infrastructure ➤ VMs + Machine/Docker Images ➤ Same amount of toil, new cloud infra problems ➤ Managed Instance Groups
  • 38. WHAT WE CONSIDERED ➤ VMs + Chef ➤ Mutable infrastructure ➤ VMs + Machine/Docker Images ➤ Same amount of toil, new cloud infra problems ➤ Managed Instance Groups ➤ Not good for stateful workloads
  • 39. WHAT WE CONSIDERED ➤ VMs + Chef ➤ Mutable infrastructure ➤ VMs + Machine/Docker Images ➤ Same amount of toil, new cloud infra problems ➤ Managed Instance Groups ➤ Not good for stateful workloads ➤ …Kubernetes?!
  • 40. WHAT WE CONSIDERED ➤ VMs + Chef ➤ Mutable infrastructure ➤ VMs + Machine/Docker Images ➤ Same amount of toil, new cloud infra problems ➤ Managed Instance Groups ➤ Not good for stateful workloads ➤ …Kubernetes?!
  • 41.
  • 42.
  • 44. RESOURCE MANAGEMENT ➤ Examples of separation: ➤ zones
  • 45. RESOURCE MANAGEMENT ➤ Examples of separation: ➤ zones ➤ node type
  • 46. RESOURCE MANAGEMENT ➤ Examples of separation: ➤ zones ➤ node type - varying workloads, e.g. high CPU requirement
  • 47. RESOURCE MANAGEMENT ➤ Examples of separation: ➤ zones ➤ node pools - varying workloads, e.g. high CPU requirement ➤ Workload allocation controlled by: ➤ nodeSelectors ➤ pool: highmem ➤ failure-domain.beta.kubernetes.io/zone: us-central1-a
  • 48. RESOURCE MANAGEMENT ➤ Examples of separation: ➤ zones ➤ node pools - varying workloads, e.g. high CPU requirement ➤ Workload allocation controlled by: ➤ nodeSelectors ➤ pool: highmem ➤ failure-domain.beta.kubernetes.io/zone: us-central1-a ➤ taints + tolerations ➤ - key: pool
 operator: Equal
 value: highmem
 effect: NoSchedule
  • 49. SERVICE DISCOVERY ➤ Within the cluster: ClusterIP Service ➤ e.g. Kafka broker to Kafka broker, Kafka Connect worker to Kafka broker
  • 50.
  • 51. SERVICE DISCOVERY ➤ Within the cluster: ClusterIP Service ➤ e.g. Kafka broker to Kafka broker, Kafka Connect worker to Kafka broker ➤ External services to Kafka: ➤ Bootstrapping: Cloud DNS to LoadBalancer
  • 52.
  • 53. SERVICE DISCOVERY ➤ Within the cluster: ClusterIP Service ➤ e.g. Kafka broker to Kafka broker, Kafka Connect worker to Kafka broker ➤ External services to Kafka: ➤ Bootstrapping: Cloud DNS to LoadBalancer ➤ Direct to broker: NodePort* * In our specific case, ClusterIP due to VPC-native IP aliasing on GCP. Also possible: dedicated LoadBalancers.
  • 54. SERVICE DISCOVERY ➤ Within the cluster: ClusterIP Service ➤ e.g. Kafka broker to Kafka broker, Kafka Connect worker to Kafka broker ➤ External services to Kafka: ➤ Bootstrapping: Cloud DNS to LoadBalancer ➤ Direct to broker: NodePort* ➤ Configuring your Kafka listeners * In our specific case, ClusterIP due to VPC-native IP aliasing on GCP. Also possible: dedicated LoadBalancers.
  • 55. SERVICE DISCOVERY ➤ Within the cluster: ClusterIP Service ➤ e.g. Kafka broker to Kafka broker, Kafka Connect worker to Kafka broker ➤ External services to Kafka: ➤ Bootstrapping: Cloud DNS to LoadBalancer ➤ Direct to broker: NodePort* ➤ Configuring your Kafka listeners * In our specific case, ClusterIP due to VPC-native IP aliasing on GCP. Also possible: dedicated LoadBalancers.
  • 56. SERVICE DISCOVERY ➤ Within the cluster: ClusterIP Service ➤ e.g. Kafka broker to Kafka broker, Kafka Connect worker to Kafka broker ➤ External services to Kafka: ➤ Bootstrapping: Cloud DNS to LoadBalancer ➤ Direct to broker: NodePort* ➤ Configuring your Kafka listeners ➤ https://rmoff.net/2018/08/02/kafka-listeners-explained/ * In our specific case, ClusterIP due to VPC-native IP aliasing on GCP. Also possible: dedicated LoadBalancers.
  • 57. SOME NOTES ON MANAGEMENT
  • 58. SOME NOTES ON MANAGEMENT ➤ Installation, deploy: ➤ Confluent Helm charts ➤ https://github.com/confluentinc/cp-helm-charts
  • 59. SOME NOTES ON MANAGEMENT ➤ Installation, deploy: ➤ Confluent Helm charts ➤ https://github.com/confluentinc/cp-helm-charts ➤ No Tiller, Helm templating only
  • 60. SOME NOTES ON MANAGEMENT ➤ Installation, deploy: ➤ Confluent Helm charts ➤ https://github.com/confluentinc/cp-helm-charts ➤ No Tiller, Helm templating only ➤ Confluent Docker images, with additions
  • 61. SOME NOTES ON MANAGEMENT ➤ Monitoring:
  • 62. SOME NOTES ON MANAGEMENT ➤ Monitoring: ➤ Kafka exposes JMX metrics by default
  • 63. SOME NOTES ON MANAGEMENT ➤ Monitoring: ➤ Kafka exposes JMX metrics by default ➤ Prometheus JMX Exporter as Java agent (vs. Helm chart sidecar)
  • 64. WHAT WE LEARNED and what we think you should know
  • 67. WHAT WE LEARNED ➤ Ephemeral resources
  • 68. WHAT WE LEARNED ➤ Ephemeral resources
  • 69. WHAT WE LEARNED ➤ Ephemeral resources ➤ Don’t assume static IPs; make sure Kafka clients can handle pod evictions
  • 70. WHAT WE LEARNED ➤ Ephemeral resources ➤ Don’t assume static IPs; make sure Kafka clients can handle pod evictions ➤ Check your JVM DNS cache TTL (networkaddress.cache.ttl)
  • 71. WHAT WE LEARNED ➤ Ephemeral resources ➤ Don’t assume static IPs; make sure Kafka clients can handle pod evictions ➤ Check your JVM DNS cache TTL (networkaddress.cache.ttl)
  • 72. WHAT WE LEARNED ➤ Ephemeral resources ➤ Don’t assume static IPs; make sure Kafka clients can handle pod evictions ➤ Check your JVM DNS cache TTL (networkaddress.cache.ttl) ➤ Check the Apache Kafka JIRA
  • 73. WHAT WE LEARNED ➤ Ephemeral resources ➤ Don’t assume static IPs; make sure Kafka clients can handle pod evictions ➤ Check your JVM DNS cache TTL (networkaddress.cache.ttl) ➤ Oh, and upgrade Kafka.
  • 74. WHAT WE LEARNED ➤ Ephemeral resources ➤ Don’t assume static IPs; make sure Kafka clients can handle pod evictions ➤ Check your JVM DNS cache TTL (networkaddress.cache.ttl) ➤ Check JIRA/Upgrade Kafka ➤ Producers and consumers too!
  • 75. WHAT WE LEARNED ➤ Ephemeral resources ➤ Don’t assume static IPs; make sure Kafka clients can handle pod evictions ➤ Check your JVM DNS cache TTL (networkaddress.cache.ttl) ➤ Check JIRA/Upgrade Kafka ➤ Producers and consumers too! ➤ Examples: KAFKA-7755, KAFKA-7890 ➤ See also: cp-helm-charts issue #240
  • 76. WHAT WE LEARNED ➤ Different kinds of updates/rolling restarts
  • 77. WHAT WE LEARNED ➤ Different kinds of updates/rolling restarts ➤ Changes to Kafka cluster: versions, broker properties
  • 78. WHAT WE LEARNED ➤ Different kinds of updates/rolling restarts ➤ Changes to Kafka cluster: versions, broker properties ➤ Workload configuration: resources, security policies
  • 79. WHAT WE LEARNED ➤ Different kinds of updates/rolling restarts ➤ Changes to Kafka cluster: versions, broker properties ➤ Workload configuration: resources, security policies ➤ Upgrading Kubernetes nodes
  • 80. Health checks are important for self-healing clusters!
  • 81. Health checks are important for self-healing clusters!
  • 82. Health checks are important for self-healing clusters!
  • 84. CONTAINER PROBES ➤ Liveness Probe
 “Should I restart this container?”
  • 85. CONTAINER PROBES ➤ Liveness Probe
 “Should I restart this container?” ➤ Readiness Probe
 “Should this container accept traffic?”
  • 86.
  • 88. CONTAINER PROBES ➤ Liveness Probe
 “Should I restart this container?” ➤ Endpoint: is this broker healthy?
  • 89. CONTAINER PROBES ➤ Liveness Probe
 “Should I restart this container?” ➤ Endpoint: is this broker healthy? ➤ Don’t be too strict!
  • 91. WHAT WE HAD TO FIGURE OUT ➤ Different kinds of updates/rolling restarts ➤ Changes to Kafka cluster: versions, broker properties ➤ Workload configuration: resources, security policies ➤ Upgrading Kubernetes nodes ➤ How health checks affect updates
  • 92. WHAT WE HAD TO FIGURE OUT ➤ Different kinds of updates/rolling restarts ➤ Changes to Kafka cluster: versions, broker properties ➤ Workload configuration: resources, security policies ➤ Upgrading Kubernetes nodes ➤ How health checks affect updates
  • 93. WHAT WE HAD TO FIGURE OUT ➤ Different kinds of updates/rolling restarts ➤ Changes to Kafka cluster: versions, broker properties ➤ Workload configuration: resources, security policies ➤ Upgrading Kubernetes nodes ➤ How health checks affect updates ➤ podDisruptionBudget
  • 94. WHAT WE HAD TO FIGURE OUT ➤ Different kinds of updates/rolling restarts ➤ Changes to Kafka cluster: versions, broker properties ➤ Workload configuration: resources, security policies ➤ Upgrading Kubernetes nodes ➤ How health checks affect updates ➤ podDisruptionBudget, podManagementPolicy
  • 95. WHAT WE HAD TO FIGURE OUT ➤ Different kinds of updates/rolling restarts ➤ Changes to Kafka cluster: versions, broker properties ➤ Workload configuration: resources, security policies ➤ Upgrading Kubernetes nodes ➤ How health checks affect updates ➤ podDisruptionBudget, podManagementPolicy ➤ Health check overrides ➤ What happens if you deploy a change that breaks the health checks?
  • 96. WHAT WE HAD TO FIGURE OUT ➤ Different kinds of updates/rolling restarts ➤ Changes to Kafka cluster: versions, broker properties ➤ Workload configuration: resources, security policies ➤ Upgrading Kubernetes nodes ➤ How health checks affect updates ➤ podDisruptionBudget, podManagementPolicy ➤ Health check overrides ➤ What happens if you deploy a change that breaks the health checks? ➤ See Kubernetes issue #62750
  • 101. MIGRATING PRODUCTION ARCHITECTURE ➤ Get your hands dirty!
  • 102. MIGRATING PRODUCTION ARCHITECTURE ➤ Get your hands dirty!
  • 103. MIGRATING PRODUCTION ARCHITECTURE ➤ Get your hands dirty! ➤ Simulate common maintenance tasks
  • 104. MIGRATING PRODUCTION ARCHITECTURE ➤ Get your hands dirty! ➤ Simulate common maintenance tasks ➤ Benchmark for performance ➤ kafka-producer-perf-test, kafka-consumer-perf-test
  • 105. MIGRATING PRODUCTION ARCHITECTURE ➤ Get your hands dirty! ➤ Simulate common maintenance tasks ➤ Benchmark for performance ➤ kafka-producer-perf-test, kafka-consumer-perf-test ➤ Variables: disk type, CPU count, producer record size, producer batch size, Java opts…
  • 106. MIGRATING PRODUCTION ARCHITECTURE ➤ Get your hands dirty! ➤ Simulate common maintenance tasks ➤ Benchmark for performance ➤ kafka-producer-perf-test, kafka-consumer-perf-test ➤ Variables: disk type, CPU count, producer record size, producer batch size, Java opts… ➤ We were able to use Compute Engine persistent disks (shared storage) rather than local SSDs
  • 107. MIGRATING PRODUCTION ARCHITECTURE ➤ Get your hands dirty! ➤ Simulate common maintenance tasks ➤ Benchmark for performance ➤ kafka-producer-perf-test, kafka-consumer-perf-test ➤ Variables: disk type, CPU count, producer record size, producer batch size, Java opts… ➤ We were able to use Compute Engine persistent disks (shared storage) rather than local SSDs ➤ Simulate failure
  • 108. MIGRATING PRODUCTION ARCHITECTURE ➤ Get your hands dirty! ➤ Simulate common maintenance tasks ➤ Benchmark for performance ➤ kafka-producer-perf-test, kafka-consumer-perf-test ➤ Variables: disk type, CPU count, producer record size, producer batch size, Java opts… ➤ We were able to use Compute Engine persistent disks (shared storage) rather than local SSDs ➤ Simulate failure
  • 109. Try to keep it simple!
  • 110. WHY IT WORKS FOR US ( for now, at least!)
  • 111. WHY IT WORKS FOR US
  • 112. WHY IT WORKS FOR US ➤ Increased automation
  • 113. WHY IT WORKS FOR US ➤ Increased automation ➤ Simpler configuration
  • 114. WHY IT WORKS FOR US ➤ Increased automation ➤ Simpler configuration ➤ Efficient resource usage ➤ Bin packing ➤ GKE autoscaling
  • 115. WHY IT WORKS FOR US ➤ Increased automation ➤ Simpler configuration ➤ Efficient resource usage ➤ Bin packing ➤ GKE autoscaling ➤ Improved developer workflows for streaming services ➤ e.g. adding new Kafka Streams applications, Kafka Connect workloads
  • 116.
  • 117. THANK YOU! Twitter: @NikkiThean
 Confluent Slack: @nikki
 Email: nikki.thean@gmail.com Thank you to Kamo for drawing inspiration!