SlideShare una empresa de Scribd logo
1 de 117
Descargar para leer sin conexión
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!

Más contenido relacionado

La actualidad más candente

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
 
Introduction to Kafka Streams
Introduction to Kafka StreamsIntroduction to Kafka Streams
Introduction to Kafka StreamsGuozhang Wang
 
When NOT to use Apache Kafka?
When NOT to use Apache Kafka?When NOT to use Apache Kafka?
When NOT to use Apache Kafka?Kai Wähner
 
Introduction To Streaming Data and Stream Processing with Apache Kafka
Introduction To Streaming Data and Stream Processing with Apache KafkaIntroduction To Streaming Data and Stream Processing with Apache Kafka
Introduction To Streaming Data and Stream Processing with Apache Kafkaconfluent
 
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
 
Docker Networking Overview
Docker Networking OverviewDocker Networking Overview
Docker Networking OverviewSreenivas Makam
 
Kafka Streams: What it is, and how to use it?
Kafka Streams: What it is, and how to use it?Kafka Streams: What it is, and how to use it?
Kafka Streams: What it is, and how to use it?confluent
 
Autoscaling Flink with Reactive Mode
Autoscaling Flink with Reactive ModeAutoscaling Flink with Reactive Mode
Autoscaling Flink with Reactive ModeFlink Forward
 
From Zero to Hero with Kafka Connect
From Zero to Hero with Kafka ConnectFrom Zero to Hero with Kafka Connect
From Zero to Hero with Kafka Connectconfluent
 
Architecture patterns for distributed, hybrid, edge and global Apache Kafka d...
Architecture patterns for distributed, hybrid, edge and global Apache Kafka d...Architecture patterns for distributed, hybrid, edge and global Apache Kafka d...
Architecture patterns for distributed, hybrid, edge and global Apache Kafka d...Kai Wähner
 
[Main Session] 카프카, 데이터 플랫폼의 최강자
[Main Session] 카프카, 데이터 플랫폼의 최강자[Main Session] 카프카, 데이터 플랫폼의 최강자
[Main Session] 카프카, 데이터 플랫폼의 최강자Oracle Korea
 
Getting Started with Kubernetes
Getting Started with Kubernetes Getting Started with Kubernetes
Getting Started with Kubernetes VMware Tanzu
 
Hello, kafka! (an introduction to apache kafka)
Hello, kafka! (an introduction to apache kafka)Hello, kafka! (an introduction to apache kafka)
Hello, kafka! (an introduction to apache kafka)Timothy Spann
 
Apache Flink in the Cloud-Native Era
Apache Flink in the Cloud-Native EraApache Flink in the Cloud-Native Era
Apache Flink in the Cloud-Native EraFlink Forward
 
How Apache Kafka® Works
How Apache Kafka® WorksHow Apache Kafka® Works
How Apache Kafka® Worksconfluent
 
Deep dive into Kubernetes Networking
Deep dive into Kubernetes NetworkingDeep dive into Kubernetes Networking
Deep dive into Kubernetes NetworkingSreenivas Makam
 
Kafka 101 and Developer Best Practices
Kafka 101 and Developer Best PracticesKafka 101 and Developer Best Practices
Kafka 101 and Developer Best Practicesconfluent
 
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안SANG WON PARK
 

La actualidad más candente (20)

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)
 
Introduction to Kafka Streams
Introduction to Kafka StreamsIntroduction to Kafka Streams
Introduction to Kafka Streams
 
When NOT to use Apache Kafka?
When NOT to use Apache Kafka?When NOT to use Apache Kafka?
When NOT to use Apache Kafka?
 
Introduction To Streaming Data and Stream Processing with Apache Kafka
Introduction To Streaming Data and Stream Processing with Apache KafkaIntroduction To Streaming Data and Stream Processing with Apache Kafka
Introduction To Streaming Data and Stream Processing with Apache Kafka
 
Kubernetes 101
Kubernetes 101Kubernetes 101
Kubernetes 101
 
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 ...
 
Docker Networking Overview
Docker Networking OverviewDocker Networking Overview
Docker Networking Overview
 
Kafka Streams: What it is, and how to use it?
Kafka Streams: What it is, and how to use it?Kafka Streams: What it is, and how to use it?
Kafka Streams: What it is, and how to use it?
 
Autoscaling Flink with Reactive Mode
Autoscaling Flink with Reactive ModeAutoscaling Flink with Reactive Mode
Autoscaling Flink with Reactive Mode
 
From Zero to Hero with Kafka Connect
From Zero to Hero with Kafka ConnectFrom Zero to Hero with Kafka Connect
From Zero to Hero with Kafka Connect
 
Architecture patterns for distributed, hybrid, edge and global Apache Kafka d...
Architecture patterns for distributed, hybrid, edge and global Apache Kafka d...Architecture patterns for distributed, hybrid, edge and global Apache Kafka d...
Architecture patterns for distributed, hybrid, edge and global Apache Kafka d...
 
Kafka presentation
Kafka presentationKafka presentation
Kafka presentation
 
[Main Session] 카프카, 데이터 플랫폼의 최강자
[Main Session] 카프카, 데이터 플랫폼의 최강자[Main Session] 카프카, 데이터 플랫폼의 최강자
[Main Session] 카프카, 데이터 플랫폼의 최강자
 
Getting Started with Kubernetes
Getting Started with Kubernetes Getting Started with Kubernetes
Getting Started with Kubernetes
 
Hello, kafka! (an introduction to apache kafka)
Hello, kafka! (an introduction to apache kafka)Hello, kafka! (an introduction to apache kafka)
Hello, kafka! (an introduction to apache kafka)
 
Apache Flink in the Cloud-Native Era
Apache Flink in the Cloud-Native EraApache Flink in the Cloud-Native Era
Apache Flink in the Cloud-Native Era
 
How Apache Kafka® Works
How Apache Kafka® WorksHow Apache Kafka® Works
How Apache Kafka® Works
 
Deep dive into Kubernetes Networking
Deep dive into Kubernetes NetworkingDeep dive into Kubernetes Networking
Deep dive into Kubernetes Networking
 
Kafka 101 and Developer Best Practices
Kafka 101 and Developer Best PracticesKafka 101 and Developer Best Practices
Kafka 101 and Developer Best Practices
 
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안
 

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

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
 
Quilt - Distributed Load Simulation from AWS
Quilt - Distributed Load Simulation from AWSQuilt - Distributed Load Simulation from AWS
Quilt - Distributed Load Simulation from AWSAjith Jose
 

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

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
 
Quilt - Distributed Load Simulation from AWS
Quilt - Distributed Load Simulation from AWSQuilt - Distributed Load Simulation from AWS
Quilt - Distributed Load Simulation from AWS
 

Más de 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
 

Más de 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
 

Último

Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
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
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
"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
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 

Último (20)

Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 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
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
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
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
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
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
"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...
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 

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!