SlideShare a Scribd company logo
1 of 79
Download to read offline
IBM Event StreamsApache Kafka
© 2019 IBM Corporation
Running Kafka in
Kubernetes
A practical guide
Katherine Stanley
Kafka Summit London 2019
© 2019 IBM Corporation
© 2019 IBM Corporation
Monolith
API
Monolithic application
© 2019 IBM Corporation
Microservice
Microservice
Microservice
Microservice
Microservice
Service
Registry
API
API
API
Microservices application
© 2019 IBM Corporation
Microservice
Microservice
Microservice
Microservice
Microservice
Service
Registry
API
API
API
Microservices application
REST request
© 2019 IBM Corporation
Microservice
Microservice
Microservice
Microservice
Microservice
Service
Registry
API
API
API
Microservices application
REST request
© 2019 IBM Corporation
Rise of containers
© 2019 IBM Corporation
Rise of containers
Encapsulation of dependencies
© 2019 IBM Corporation
Rise of containers
Encapsulation of dependencies
Isolation
© 2019 IBM Corporation
Rise of containers
Encapsulation of dependencies
Isolation
Dev-prod parity
© 2019 IBM Corporation
Rise of containers
Encapsulation of dependencies
Isolation
Dev-prod parity
Routing
© 2019 IBM Corporation
Rise of containers
Encapsulation of dependencies
Isolation
Dev-prod parity
Routing
Handling failure
© 2019 IBM Corporation
Rise of containers
Encapsulation of dependencies
Isolation
Dev-prod parity
Routing
Handling failure
© 2019 IBM Corporation
Kubernetes
“Helmsman” in ancient Greek
© 2019 IBM Corporation
Kubernetes
“Helmsman” in ancient Greek
Declarative —> you describe desired state,
Kubernetes makes it happen
© 2019 IBM Corporation
Kubernetes
CONTAINER A
CONTAINER B
POD A
© 2019 IBM Corporation
Kubernetes
CONTAINER A
CONTAINER B
POD A
CONTAINER A
CONTAINER B
POD B
CONTAINER A
CONTAINER B
POD C
© 2019 IBM Corporation
Kubernetes
CONTAINER A
CONTAINER B
POD A
CONTAINER A
CONTAINER B
POD B
CONTAINER A
CONTAINER B
POD C
DEPLOYMENT
© 2019 IBM Corporation
Kubernetes
CONTAINER A
CONTAINER B
POD A
CONTAINER A
CONTAINER B
POD B
CONTAINER A
CONTAINER B
POD C
SERVICE
© 2019 IBM Corporation
© 2019 IBM Corporation
© 2019 IBM Corporation
Components of an event-streaming application
App
Event Backbone
1
2 App
3
4
Building Blocks
1 :: Event Sources
2 :: Stream Processing
3 :: Event Archive
4 :: Notifications
© 2019 IBM Corporation
© 2019 IBM Corporation
Topics
0 1 2 3 4 5
Offset
© 2019 IBM Corporation
© 2019 IBM Corporation
© 2019 IBM Corporation
© 2019 IBM Corporation
© 2019 IBM Corporation
© 2019 IBM Corporation
© 2019 IBM Corporation
Kafka Pods
© 2019 IBM Corporation
$ kubectl get pods -w
NAME READY STATUS RESTARTS AGE
my-pod-123 1/1 Running 0 30s
© 2019 IBM Corporation
$ kubectl get pods -w
NAME READY STATUS RESTARTS AGE
my-pod-123 1/1 Running 0 30s
© 2019 IBM Corporation
Kubernetes health checks
Liveness
Readiness
© 2019 IBM Corporation
Kubernetes health checks
Liveness
Is container running?
Failure ! restart container
Readiness
© 2019 IBM Corporation
Kubernetes health checks
Liveness
Is container running?
Failure ! restart container
Readiness
Ready to receive requests
Failure ! remove from service list
© 2019 IBM Corporation
Kafka health checks
© 2019 IBM Corporation
Kafka health checks
/liveness
Port open
Responds to basic Kafka protocol
© 2019 IBM Corporation
Kafka health checks
/liveness
Port open
Responds to basic Kafka protocol
/readiness
e.g Check in-sync replicas
© 2019 IBM Corporation
min.insync.replicas
“The minimum number of replicas that must be in-sync for a
partition of the topic to be considered available”
© 2019 IBM Corporation
min.insync.replicas
“The minimum number of replicas that must be in-sync for a
partition of the topic to be considered available”
min.insync.replicas = 2
© 2019 IBM Corporation
min.insync.replicas
“The minimum number of replicas that must be in-sync for a
partition of the topic to be considered available”
min.insync.replicas = 2
in-syncNOT in-syncNOT in-sync
© 2019 IBM Corporation
min.insync.replicas
“The minimum number of replicas that must be in-sync for a
partition of the topic to be considered available”
min.insync.replicas = 2
in-syncNOT in-sync NOT in-sync
consumerproducer
© 2019 IBM Corporation
Managing Kafka Pods
© 2019 IBM Corporation
CONTAINER A
CONTAINER B
POD A
CONTAINER A
CONTAINER B
POD B
CONTAINER A
CONTAINER B
POD C
DEPLOYMENT
© 2019 IBM Corporation
StatefulSets
© 2019 IBM Corporation
StatefulSets
Maintains sticky identity for each Pod
Persistence via PersistentVolume
© 2019 IBM Corporation
Persistent Volumes
/mydata
© 2019 IBM Corporation
Persistent Volumes
/mydata
Persistent
Volume
© 2019 IBM Corporation
POD
Persistent Volumes
/mydata
Persistent
Volume
Persistent
Volume
Claim
© 2019 IBM Corporation
POD
Persistent Volumes
/mydata
Persistent
Volume
Persistent
Volume
Claim
Binds
© 2019 IBM Corporation
Persistent Volumes
/mydata
Persistent
Volume
Persistent
Volume
Claim
Binds
© 2019 IBM Corporation
POD
Persistent Volumes
/mydata
Persistent
Volume
Persistent
Volume
Claim
Binds
© 2019 IBM Corporation
kafka.common.InconsistentBrokerIdException:
Configured brokerId 1 doesn't match stored brokerId 0 in meta.properties
© 2019 IBM Corporation
kafka.common.InconsistentBrokerIdException:
Configured brokerId 1 doesn't match stored brokerId 0 in meta.properties
© 2019 IBM Corporation
kafka.common.InconsistentBrokerIdException:
Configured brokerId 1 doesn't match stored brokerId 0 in meta.properties
© 2019 IBM Corporation
kafka.common.InconsistentBrokerIdException:
Configured brokerId 1 doesn't match stored brokerId 0 in meta.properties
© 2019 IBM Corporation
Deploying Kafka Pods
© 2019 IBM Corporation
© 2019 IBM Corporation
Affinity/anti-affinity
© 2019 IBM Corporation
Affinity/anti-affinity
© 2019 IBM Corporation
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
172.16.160.168 Ready etcd,management,master,proxy 1d v1.12.4
172.16.163.246 Ready worker 1d v1.12.4
172.16.177.181 Ready worker 1d v1.12.4
172.16.177.193 Ready worker 1d v1.12.4
© 2019 IBM Corporation
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
172.16.160.168 Ready etcd,management,master,proxy 1d v1.12.4
172.16.163.246 Ready worker 1d v1.12.4
172.16.177.181 Ready worker 1d v1.12.4
172.16.177.193 Ready worker 1d v1.12.4
$ kubectl describe node 172.16.163.246
Non-terminated Pods:
Namespace Name
--------- ----
es myrelease-ibm-es-kafka-sts-1
es myrelease-ibm-es-zookeeper-sts-0
© 2019 IBM Corporation
Accessing Kafka
© 2019 IBM Corporation
© 2019 IBM Corporation
Headless services
apiVersion: v1
kind: Service
metadata:
labels:
app: ibm-es
name: myrelease-ibm-es-kafka-broker-svc-0
namespace: es
spec:
clusterIP: None
ports:
- name: kafka
port: 9092
protocol: TCP
targetPort: 9092
selector:
kafka: "0"
© 2019 IBM Corporation
$ kubectl get service
NAME TYPE PORT(S) AGE
myrelease-kafka-0 ClusterIP 9092/TCP 1d
myrelease-kafka-1 ClusterIP 9092/TCP 1d
myrelease-kafka-2 ClusterIP 9092/TCP 1d
© 2019 IBM Corporation
Listeners and Advertised Listeners
listeners
advertised.listeners
© 2019 IBM Corporation
Listeners and Advertised Listeners
listeners
the address the socket server listens on
advertised.listeners
© 2019 IBM Corporation
Listeners and Advertised Listeners
listeners
the address the socket server listens on
advertised.listeners
hostname and port the broker will advertise to producers and consumers
© 2019 IBM Corporation
$ cloudctl es broker-config 0 | grep listeners
listeners EXTERNAL://:9092
advertised.listeners EXTERNAL://9.30.249.46:30100
$ cloudctl es broker-config 1 | grep listeners
listeners EXTERNAL://:9092
advertised.listeners EXTERNAL://9.30.249.46:30101
$ cloudctl es broker-config 2 | grep listeners
listeners EXTERNAL://:9092
advertised.listeners EXTERNAL://9.30.249.46:30102
© 2019 IBM Corporation
$ cloudctl es broker-config 0 | grep listeners
listeners EXTERNAL://:9092
advertised.listeners EXTERNAL://9.30.249.46:30100
$ cloudctl es broker-config 1 | grep listeners
listeners EXTERNAL://:9092
advertised.listeners EXTERNAL://9.30.249.46:30101
$ cloudctl es broker-config 2 | grep listeners
listeners EXTERNAL://:9092
advertised.listeners EXTERNAL://9.30.249.46:30102
© 2019 IBM Corporation
$ cloudctl es broker-config 0 | grep listeners
listeners EXTERNAL://:9092
advertised.listeners EXTERNAL://9.30.249.46:30100
$ cloudctl es broker-config 1 | grep listeners
listeners EXTERNAL://:9092
advertised.listeners EXTERNAL://9.30.249.46:30101
$ cloudctl es broker-config 2 | grep listeners
listeners EXTERNAL://:9092
advertised.listeners EXTERNAL://9.30.249.46:30102
© 2019 IBM Corporation
Automation
© 2019 IBM Corporation
Handling automation
Helm $ helm install
$ helm upgrade
© 2019 IBM Corporation
Handling automation
Helm
Custom Kubernetes resource
$ kubectl get kafka
$ kubectl get zookeeper
$ helm install
$ helm upgrade
© 2019 IBM Corporation
Handling automation
Helm
Custom Kubernetes resource
Kubernetes Operators
$ kubectl get kafka
$ kubectl get zookeeper
$ kubectl scale kafka ??
$ helm install
$ helm upgrade
© 2019 IBM Corporation
github.com/ibm/charts/tree/master/stable/ibm-eventstreams-dev
© 2019 IBM Corporation
Thank you
IBM Event Streams: ibm.com/cloud/event-streams
https://slack-invite-ibm-cloud-tech.mybluemix.net/
Katherine Stanley
Software Engineer

More Related Content

What's hot

Lessons Learned Building a Connector Using Kafka Connect (Katherine Stanley &...
Lessons Learned Building a Connector Using Kafka Connect (Katherine Stanley &...Lessons Learned Building a Connector Using Kafka Connect (Katherine Stanley &...
Lessons Learned Building a Connector Using Kafka Connect (Katherine Stanley &...confluent
 
Breaking the Monolith road to containers.pdf
Breaking the Monolith road to containers.pdfBreaking the Monolith road to containers.pdf
Breaking the Monolith road to containers.pdfAmazon Web Services
 
Kubernetes for the VI Admin
Kubernetes for the VI AdminKubernetes for the VI Admin
Kubernetes for the VI AdminKendrick Coleman
 
Services are the New Cloud Platform (Services-as-a-Platform)
Services are the New Cloud Platform (Services-as-a-Platform)Services are the New Cloud Platform (Services-as-a-Platform)
Services are the New Cloud Platform (Services-as-a-Platform)Randy Bias
 
How to Run Amazon Web Services Workloads on Your VMware vCloud®
How to Run Amazon Web Services Workloads on Your VMware vCloud®How to Run Amazon Web Services Workloads on Your VMware vCloud®
How to Run Amazon Web Services Workloads on Your VMware vCloud®Cloudsoft Corp
 
Optimizing Network Performance for Amazon EC2 Instances (CMP308-R1) - AWS re:...
Optimizing Network Performance for Amazon EC2 Instances (CMP308-R1) - AWS re:...Optimizing Network Performance for Amazon EC2 Instances (CMP308-R1) - AWS re:...
Optimizing Network Performance for Amazon EC2 Instances (CMP308-R1) - AWS re:...Amazon Web Services
 
Extend HPC Workloads to Amazon EC2 Instances with Intel and Rescale (CMP373-S...
Extend HPC Workloads to Amazon EC2 Instances with Intel and Rescale (CMP373-S...Extend HPC Workloads to Amazon EC2 Instances with Intel and Rescale (CMP373-S...
Extend HPC Workloads to Amazon EC2 Instances with Intel and Rescale (CMP373-S...Amazon Web Services
 
Mastering Application Integration Challenges in Hybrid Cloud Environments
Mastering Application Integration Challenges in Hybrid Cloud EnvironmentsMastering Application Integration Challenges in Hybrid Cloud Environments
Mastering Application Integration Challenges in Hybrid Cloud EnvironmentsSam Garforth
 
Run Stateful Apps on Kubernetes with VMware PKS - Highlight WebLogic Server
Run Stateful Apps on Kubernetes with VMware PKS - Highlight WebLogic Server Run Stateful Apps on Kubernetes with VMware PKS - Highlight WebLogic Server
Run Stateful Apps on Kubernetes with VMware PKS - Highlight WebLogic Server Simone Morellato
 
Kafka with IBM Event Streams - Technical Presentation
Kafka with IBM Event Streams - Technical PresentationKafka with IBM Event Streams - Technical Presentation
Kafka with IBM Event Streams - Technical PresentationWinton Winton
 
From Code to a running container | AWS Summit Tel Aviv 2019
From Code to a running container | AWS Summit Tel Aviv 2019From Code to a running container | AWS Summit Tel Aviv 2019
From Code to a running container | AWS Summit Tel Aviv 2019AWS Summits
 
Set Up a Million-Core Cluster to Accelerate HPC Workloads (CMP404) - AWS re:I...
Set Up a Million-Core Cluster to Accelerate HPC Workloads (CMP404) - AWS re:I...Set Up a Million-Core Cluster to Accelerate HPC Workloads (CMP404) - AWS re:I...
Set Up a Million-Core Cluster to Accelerate HPC Workloads (CMP404) - AWS re:I...Amazon Web Services
 
Networking is NOT Free: Lessons in Network Design
Networking is NOT Free: Lessons in Network DesignNetworking is NOT Free: Lessons in Network Design
Networking is NOT Free: Lessons in Network DesignRandy Bias
 
Enterprise Cloud Myth(s)
Enterprise Cloud Myth(s)Enterprise Cloud Myth(s)
Enterprise Cloud Myth(s)Randy Bias
 
Circuit breaker mechanism for Microservices based architecture
Circuit breaker mechanism for Microservices based architectureCircuit breaker mechanism for Microservices based architecture
Circuit breaker mechanism for Microservices based architectureKunal Grover
 
Running kubernetes with amazon eks
Running kubernetes with amazon eksRunning kubernetes with amazon eks
Running kubernetes with amazon eksyanaisama
 
Accelerating Development Using Custom Hardware Accelerations with Amazon EC2 ...
Accelerating Development Using Custom Hardware Accelerations with Amazon EC2 ...Accelerating Development Using Custom Hardware Accelerations with Amazon EC2 ...
Accelerating Development Using Custom Hardware Accelerations with Amazon EC2 ...Amazon Web Services
 
Unlock Sustainable Kubernetes Services for TAS
Unlock Sustainable Kubernetes Services for TASUnlock Sustainable Kubernetes Services for TAS
Unlock Sustainable Kubernetes Services for TASVMware Tanzu
 
VMware Tanzu Service Mesh from the Developer’s Perspective
VMware Tanzu Service Mesh from the Developer’s PerspectiveVMware Tanzu Service Mesh from the Developer’s Perspective
VMware Tanzu Service Mesh from the Developer’s PerspectiveVMware Tanzu
 

What's hot (20)

Lessons Learned Building a Connector Using Kafka Connect (Katherine Stanley &...
Lessons Learned Building a Connector Using Kafka Connect (Katherine Stanley &...Lessons Learned Building a Connector Using Kafka Connect (Katherine Stanley &...
Lessons Learned Building a Connector Using Kafka Connect (Katherine Stanley &...
 
Breaking the Monolith road to containers.pdf
Breaking the Monolith road to containers.pdfBreaking the Monolith road to containers.pdf
Breaking the Monolith road to containers.pdf
 
Kubernetes for the VI Admin
Kubernetes for the VI AdminKubernetes for the VI Admin
Kubernetes for the VI Admin
 
Services are the New Cloud Platform (Services-as-a-Platform)
Services are the New Cloud Platform (Services-as-a-Platform)Services are the New Cloud Platform (Services-as-a-Platform)
Services are the New Cloud Platform (Services-as-a-Platform)
 
How to Run Amazon Web Services Workloads on Your VMware vCloud®
How to Run Amazon Web Services Workloads on Your VMware vCloud®How to Run Amazon Web Services Workloads on Your VMware vCloud®
How to Run Amazon Web Services Workloads on Your VMware vCloud®
 
Optimizing Network Performance for Amazon EC2 Instances (CMP308-R1) - AWS re:...
Optimizing Network Performance for Amazon EC2 Instances (CMP308-R1) - AWS re:...Optimizing Network Performance for Amazon EC2 Instances (CMP308-R1) - AWS re:...
Optimizing Network Performance for Amazon EC2 Instances (CMP308-R1) - AWS re:...
 
Extend HPC Workloads to Amazon EC2 Instances with Intel and Rescale (CMP373-S...
Extend HPC Workloads to Amazon EC2 Instances with Intel and Rescale (CMP373-S...Extend HPC Workloads to Amazon EC2 Instances with Intel and Rescale (CMP373-S...
Extend HPC Workloads to Amazon EC2 Instances with Intel and Rescale (CMP373-S...
 
Mastering Application Integration Challenges in Hybrid Cloud Environments
Mastering Application Integration Challenges in Hybrid Cloud EnvironmentsMastering Application Integration Challenges in Hybrid Cloud Environments
Mastering Application Integration Challenges in Hybrid Cloud Environments
 
Run Stateful Apps on Kubernetes with VMware PKS - Highlight WebLogic Server
Run Stateful Apps on Kubernetes with VMware PKS - Highlight WebLogic Server Run Stateful Apps on Kubernetes with VMware PKS - Highlight WebLogic Server
Run Stateful Apps on Kubernetes with VMware PKS - Highlight WebLogic Server
 
Kafka with IBM Event Streams - Technical Presentation
Kafka with IBM Event Streams - Technical PresentationKafka with IBM Event Streams - Technical Presentation
Kafka with IBM Event Streams - Technical Presentation
 
From Code to a running container | AWS Summit Tel Aviv 2019
From Code to a running container | AWS Summit Tel Aviv 2019From Code to a running container | AWS Summit Tel Aviv 2019
From Code to a running container | AWS Summit Tel Aviv 2019
 
Set Up a Million-Core Cluster to Accelerate HPC Workloads (CMP404) - AWS re:I...
Set Up a Million-Core Cluster to Accelerate HPC Workloads (CMP404) - AWS re:I...Set Up a Million-Core Cluster to Accelerate HPC Workloads (CMP404) - AWS re:I...
Set Up a Million-Core Cluster to Accelerate HPC Workloads (CMP404) - AWS re:I...
 
AWS CDK Introduction
AWS CDK IntroductionAWS CDK Introduction
AWS CDK Introduction
 
Networking is NOT Free: Lessons in Network Design
Networking is NOT Free: Lessons in Network DesignNetworking is NOT Free: Lessons in Network Design
Networking is NOT Free: Lessons in Network Design
 
Enterprise Cloud Myth(s)
Enterprise Cloud Myth(s)Enterprise Cloud Myth(s)
Enterprise Cloud Myth(s)
 
Circuit breaker mechanism for Microservices based architecture
Circuit breaker mechanism for Microservices based architectureCircuit breaker mechanism for Microservices based architecture
Circuit breaker mechanism for Microservices based architecture
 
Running kubernetes with amazon eks
Running kubernetes with amazon eksRunning kubernetes with amazon eks
Running kubernetes with amazon eks
 
Accelerating Development Using Custom Hardware Accelerations with Amazon EC2 ...
Accelerating Development Using Custom Hardware Accelerations with Amazon EC2 ...Accelerating Development Using Custom Hardware Accelerations with Amazon EC2 ...
Accelerating Development Using Custom Hardware Accelerations with Amazon EC2 ...
 
Unlock Sustainable Kubernetes Services for TAS
Unlock Sustainable Kubernetes Services for TASUnlock Sustainable Kubernetes Services for TAS
Unlock Sustainable Kubernetes Services for TAS
 
VMware Tanzu Service Mesh from the Developer’s Perspective
VMware Tanzu Service Mesh from the Developer’s PerspectiveVMware Tanzu Service Mesh from the Developer’s Perspective
VMware Tanzu Service Mesh from the Developer’s Perspective
 

Similar to Running Kafka in Kubernetes: A Practical Guide (Katherine Stanley, IBM United Kingdom Ltd.) Kafka Summit London 2019

DevNexus - Reacting to an event driven world
DevNexus - Reacting to an event driven worldDevNexus - Reacting to an event driven world
DevNexus - Reacting to an event driven worldGrace Jansen
 
JLove conference 2020 - Reacting to an Event-Driven World
JLove conference 2020 - Reacting to an Event-Driven WorldJLove conference 2020 - Reacting to an Event-Driven World
JLove conference 2020 - Reacting to an Event-Driven WorldGrace Jansen
 
Jfokus - Reacting to an event-driven world
Jfokus - Reacting to an event-driven worldJfokus - Reacting to an event-driven world
Jfokus - Reacting to an event-driven worldGrace Jansen
 
Secure and Fast microVM for Serverless Computing using Firecracker
Secure and Fast microVM for Serverless Computing using FirecrackerSecure and Fast microVM for Serverless Computing using Firecracker
Secure and Fast microVM for Serverless Computing using FirecrackerArun Gupta
 
GIDS Architecture Live: Reacting to an event-driven world
GIDS Architecture Live: Reacting to an event-driven worldGIDS Architecture Live: Reacting to an event-driven world
GIDS Architecture Live: Reacting to an event-driven worldGrace Jansen
 
An intro to serverless and OpenWhisk for Kafka users
An intro to serverless and OpenWhisk for Kafka usersAn intro to serverless and OpenWhisk for Kafka users
An intro to serverless and OpenWhisk for Kafka usersDale Lane
 
Virtual Meetup Sweden - Reacting to an event driven world
Virtual Meetup Sweden - Reacting to an event driven worldVirtual Meetup Sweden - Reacting to an event driven world
Virtual Meetup Sweden - Reacting to an event driven worldGrace Jansen
 
JSpring Virtual 2020 - Reacting to an event-driven world
JSpring Virtual 2020 - Reacting to an event-driven worldJSpring Virtual 2020 - Reacting to an event-driven world
JSpring Virtual 2020 - Reacting to an event-driven worldGrace Jansen
 
VJUG - Reacting to an event driven world
VJUG - Reacting to an event driven worldVJUG - Reacting to an event driven world
VJUG - Reacting to an event driven worldGrace Jansen
 
Firecracker: Secure and fast microVMs for serverless computing - SEP316 - AWS...
Firecracker: Secure and fast microVMs for serverless computing - SEP316 - AWS...Firecracker: Secure and fast microVMs for serverless computing - SEP316 - AWS...
Firecracker: Secure and fast microVMs for serverless computing - SEP316 - AWS...Amazon Web Services
 
Lessons Learned Building a Connector Using Kafka Connect (Katherine Stanley &...
Lessons Learned Building a Connector Using Kafka Connect (Katherine Stanley &...Lessons Learned Building a Connector Using Kafka Connect (Katherine Stanley &...
Lessons Learned Building a Connector Using Kafka Connect (Katherine Stanley &...confluent
 
Technology choices for Apache Kafka and Change Data Capture
Technology choices for Apache Kafka and Change Data CaptureTechnology choices for Apache Kafka and Change Data Capture
Technology choices for Apache Kafka and Change Data CaptureAndrew Schofield
 
Event-driven microservices
Event-driven microservicesEvent-driven microservices
Event-driven microservicesAndrew Schofield
 
Breaking the Monolith Using AWS Container Services
Breaking the Monolith Using AWS Container ServicesBreaking the Monolith Using AWS Container Services
Breaking the Monolith Using AWS Container ServicesAmazon Web Services
 
CICDforModernApplications-Oslo.pdf
CICDforModernApplications-Oslo.pdfCICDforModernApplications-Oslo.pdf
CICDforModernApplications-Oslo.pdfAmazon Web Services
 
Exploring the fundamentals of AWS networking - SVC210 - Chicago AWS Summit
Exploring the fundamentals of AWS networking - SVC210 - Chicago AWS SummitExploring the fundamentals of AWS networking - SVC210 - Chicago AWS Summit
Exploring the fundamentals of AWS networking - SVC210 - Chicago AWS SummitAmazon Web Services
 
AWS networking fundamentals - SVC303 - Santa Clara AWS Summit
AWS networking fundamentals - SVC303 - Santa Clara AWS SummitAWS networking fundamentals - SVC303 - Santa Clara AWS Summit
AWS networking fundamentals - SVC303 - Santa Clara AWS SummitAmazon Web Services
 
Fundamentals of AWS networking - SVC303 - Atlanta AWS Summit
Fundamentals of AWS networking - SVC303 - Atlanta AWS SummitFundamentals of AWS networking - SVC303 - Atlanta AWS Summit
Fundamentals of AWS networking - SVC303 - Atlanta AWS SummitAmazon Web Services
 
Breaking the Monolith using AWS Container Services
Breaking the Monolith using AWS Container ServicesBreaking the Monolith using AWS Container Services
Breaking the Monolith using AWS Container ServicesAmazon Web Services
 

Similar to Running Kafka in Kubernetes: A Practical Guide (Katherine Stanley, IBM United Kingdom Ltd.) Kafka Summit London 2019 (20)

DevNexus - Reacting to an event driven world
DevNexus - Reacting to an event driven worldDevNexus - Reacting to an event driven world
DevNexus - Reacting to an event driven world
 
JLove conference 2020 - Reacting to an Event-Driven World
JLove conference 2020 - Reacting to an Event-Driven WorldJLove conference 2020 - Reacting to an Event-Driven World
JLove conference 2020 - Reacting to an Event-Driven World
 
Jfokus - Reacting to an event-driven world
Jfokus - Reacting to an event-driven worldJfokus - Reacting to an event-driven world
Jfokus - Reacting to an event-driven world
 
Secure and Fast microVM for Serverless Computing using Firecracker
Secure and Fast microVM for Serverless Computing using FirecrackerSecure and Fast microVM for Serverless Computing using Firecracker
Secure and Fast microVM for Serverless Computing using Firecracker
 
GIDS Architecture Live: Reacting to an event-driven world
GIDS Architecture Live: Reacting to an event-driven worldGIDS Architecture Live: Reacting to an event-driven world
GIDS Architecture Live: Reacting to an event-driven world
 
An intro to serverless and OpenWhisk for Kafka users
An intro to serverless and OpenWhisk for Kafka usersAn intro to serverless and OpenWhisk for Kafka users
An intro to serverless and OpenWhisk for Kafka users
 
Virtual Meetup Sweden - Reacting to an event driven world
Virtual Meetup Sweden - Reacting to an event driven worldVirtual Meetup Sweden - Reacting to an event driven world
Virtual Meetup Sweden - Reacting to an event driven world
 
JSpring Virtual 2020 - Reacting to an event-driven world
JSpring Virtual 2020 - Reacting to an event-driven worldJSpring Virtual 2020 - Reacting to an event-driven world
JSpring Virtual 2020 - Reacting to an event-driven world
 
VJUG - Reacting to an event driven world
VJUG - Reacting to an event driven worldVJUG - Reacting to an event driven world
VJUG - Reacting to an event driven world
 
Firecracker: Secure and fast microVMs for serverless computing - SEP316 - AWS...
Firecracker: Secure and fast microVMs for serverless computing - SEP316 - AWS...Firecracker: Secure and fast microVMs for serverless computing - SEP316 - AWS...
Firecracker: Secure and fast microVMs for serverless computing - SEP316 - AWS...
 
Lessons Learned Building a Connector Using Kafka Connect (Katherine Stanley &...
Lessons Learned Building a Connector Using Kafka Connect (Katherine Stanley &...Lessons Learned Building a Connector Using Kafka Connect (Katherine Stanley &...
Lessons Learned Building a Connector Using Kafka Connect (Katherine Stanley &...
 
Technology choices for Apache Kafka and Change Data Capture
Technology choices for Apache Kafka and Change Data CaptureTechnology choices for Apache Kafka and Change Data Capture
Technology choices for Apache Kafka and Change Data Capture
 
Event-driven microservices
Event-driven microservicesEvent-driven microservices
Event-driven microservices
 
Breaking the Monolith Using AWS Container Services
Breaking the Monolith Using AWS Container ServicesBreaking the Monolith Using AWS Container Services
Breaking the Monolith Using AWS Container Services
 
CICDforModernApplications-Oslo.pdf
CICDforModernApplications-Oslo.pdfCICDforModernApplications-Oslo.pdf
CICDforModernApplications-Oslo.pdf
 
Exploring the fundamentals of AWS networking - SVC210 - Chicago AWS Summit
Exploring the fundamentals of AWS networking - SVC210 - Chicago AWS SummitExploring the fundamentals of AWS networking - SVC210 - Chicago AWS Summit
Exploring the fundamentals of AWS networking - SVC210 - Chicago AWS Summit
 
AWS networking fundamentals - SVC303 - Santa Clara AWS Summit
AWS networking fundamentals - SVC303 - Santa Clara AWS SummitAWS networking fundamentals - SVC303 - Santa Clara AWS Summit
AWS networking fundamentals - SVC303 - Santa Clara AWS Summit
 
AWS networking fundamentals
AWS networking fundamentalsAWS networking fundamentals
AWS networking fundamentals
 
Fundamentals of AWS networking - SVC303 - Atlanta AWS Summit
Fundamentals of AWS networking - SVC303 - Atlanta AWS SummitFundamentals of AWS networking - SVC303 - Atlanta AWS Summit
Fundamentals of AWS networking - SVC303 - Atlanta AWS Summit
 
Breaking the Monolith using AWS Container Services
Breaking the Monolith using AWS Container ServicesBreaking the Monolith using AWS Container Services
Breaking the Monolith using AWS Container Services
 

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

#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
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
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfngoud9212
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
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
 
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
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
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 pragmaticsAndrey Dotsenko
 

Recently uploaded (20)

#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 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
 
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
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdf
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
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
 
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
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
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
 

Running Kafka in Kubernetes: A Practical Guide (Katherine Stanley, IBM United Kingdom Ltd.) Kafka Summit London 2019

  • 1. IBM Event StreamsApache Kafka © 2019 IBM Corporation Running Kafka in Kubernetes A practical guide Katherine Stanley Kafka Summit London 2019
  • 2. © 2019 IBM Corporation
  • 3. © 2019 IBM Corporation Monolith API Monolithic application
  • 4. © 2019 IBM Corporation Microservice Microservice Microservice Microservice Microservice Service Registry API API API Microservices application
  • 5. © 2019 IBM Corporation Microservice Microservice Microservice Microservice Microservice Service Registry API API API Microservices application REST request
  • 6. © 2019 IBM Corporation Microservice Microservice Microservice Microservice Microservice Service Registry API API API Microservices application REST request
  • 7. © 2019 IBM Corporation Rise of containers
  • 8. © 2019 IBM Corporation Rise of containers Encapsulation of dependencies
  • 9. © 2019 IBM Corporation Rise of containers Encapsulation of dependencies Isolation
  • 10. © 2019 IBM Corporation Rise of containers Encapsulation of dependencies Isolation Dev-prod parity
  • 11. © 2019 IBM Corporation Rise of containers Encapsulation of dependencies Isolation Dev-prod parity Routing
  • 12. © 2019 IBM Corporation Rise of containers Encapsulation of dependencies Isolation Dev-prod parity Routing Handling failure
  • 13. © 2019 IBM Corporation Rise of containers Encapsulation of dependencies Isolation Dev-prod parity Routing Handling failure
  • 14. © 2019 IBM Corporation Kubernetes “Helmsman” in ancient Greek
  • 15. © 2019 IBM Corporation Kubernetes “Helmsman” in ancient Greek Declarative —> you describe desired state, Kubernetes makes it happen
  • 16. © 2019 IBM Corporation Kubernetes CONTAINER A CONTAINER B POD A
  • 17. © 2019 IBM Corporation Kubernetes CONTAINER A CONTAINER B POD A CONTAINER A CONTAINER B POD B CONTAINER A CONTAINER B POD C
  • 18. © 2019 IBM Corporation Kubernetes CONTAINER A CONTAINER B POD A CONTAINER A CONTAINER B POD B CONTAINER A CONTAINER B POD C DEPLOYMENT
  • 19. © 2019 IBM Corporation Kubernetes CONTAINER A CONTAINER B POD A CONTAINER A CONTAINER B POD B CONTAINER A CONTAINER B POD C SERVICE
  • 20. © 2019 IBM Corporation
  • 21. © 2019 IBM Corporation
  • 22. © 2019 IBM Corporation Components of an event-streaming application App Event Backbone 1 2 App 3 4 Building Blocks 1 :: Event Sources 2 :: Stream Processing 3 :: Event Archive 4 :: Notifications
  • 23. © 2019 IBM Corporation
  • 24. © 2019 IBM Corporation Topics 0 1 2 3 4 5 Offset
  • 25. © 2019 IBM Corporation
  • 26. © 2019 IBM Corporation
  • 27. © 2019 IBM Corporation
  • 28. © 2019 IBM Corporation
  • 29. © 2019 IBM Corporation
  • 30. © 2019 IBM Corporation
  • 31. © 2019 IBM Corporation Kafka Pods
  • 32. © 2019 IBM Corporation $ kubectl get pods -w NAME READY STATUS RESTARTS AGE my-pod-123 1/1 Running 0 30s
  • 33. © 2019 IBM Corporation $ kubectl get pods -w NAME READY STATUS RESTARTS AGE my-pod-123 1/1 Running 0 30s
  • 34. © 2019 IBM Corporation Kubernetes health checks Liveness Readiness
  • 35. © 2019 IBM Corporation Kubernetes health checks Liveness Is container running? Failure ! restart container Readiness
  • 36. © 2019 IBM Corporation Kubernetes health checks Liveness Is container running? Failure ! restart container Readiness Ready to receive requests Failure ! remove from service list
  • 37. © 2019 IBM Corporation Kafka health checks
  • 38. © 2019 IBM Corporation Kafka health checks /liveness Port open Responds to basic Kafka protocol
  • 39. © 2019 IBM Corporation Kafka health checks /liveness Port open Responds to basic Kafka protocol /readiness e.g Check in-sync replicas
  • 40. © 2019 IBM Corporation min.insync.replicas “The minimum number of replicas that must be in-sync for a partition of the topic to be considered available”
  • 41. © 2019 IBM Corporation min.insync.replicas “The minimum number of replicas that must be in-sync for a partition of the topic to be considered available” min.insync.replicas = 2
  • 42. © 2019 IBM Corporation min.insync.replicas “The minimum number of replicas that must be in-sync for a partition of the topic to be considered available” min.insync.replicas = 2 in-syncNOT in-syncNOT in-sync
  • 43. © 2019 IBM Corporation min.insync.replicas “The minimum number of replicas that must be in-sync for a partition of the topic to be considered available” min.insync.replicas = 2 in-syncNOT in-sync NOT in-sync consumerproducer
  • 44. © 2019 IBM Corporation Managing Kafka Pods
  • 45. © 2019 IBM Corporation CONTAINER A CONTAINER B POD A CONTAINER A CONTAINER B POD B CONTAINER A CONTAINER B POD C DEPLOYMENT
  • 46. © 2019 IBM Corporation StatefulSets
  • 47. © 2019 IBM Corporation StatefulSets Maintains sticky identity for each Pod Persistence via PersistentVolume
  • 48. © 2019 IBM Corporation Persistent Volumes /mydata
  • 49. © 2019 IBM Corporation Persistent Volumes /mydata Persistent Volume
  • 50. © 2019 IBM Corporation POD Persistent Volumes /mydata Persistent Volume Persistent Volume Claim
  • 51. © 2019 IBM Corporation POD Persistent Volumes /mydata Persistent Volume Persistent Volume Claim Binds
  • 52. © 2019 IBM Corporation Persistent Volumes /mydata Persistent Volume Persistent Volume Claim Binds
  • 53. © 2019 IBM Corporation POD Persistent Volumes /mydata Persistent Volume Persistent Volume Claim Binds
  • 54. © 2019 IBM Corporation kafka.common.InconsistentBrokerIdException: Configured brokerId 1 doesn't match stored brokerId 0 in meta.properties
  • 55. © 2019 IBM Corporation kafka.common.InconsistentBrokerIdException: Configured brokerId 1 doesn't match stored brokerId 0 in meta.properties
  • 56. © 2019 IBM Corporation kafka.common.InconsistentBrokerIdException: Configured brokerId 1 doesn't match stored brokerId 0 in meta.properties
  • 57. © 2019 IBM Corporation kafka.common.InconsistentBrokerIdException: Configured brokerId 1 doesn't match stored brokerId 0 in meta.properties
  • 58. © 2019 IBM Corporation Deploying Kafka Pods
  • 59. © 2019 IBM Corporation
  • 60. © 2019 IBM Corporation Affinity/anti-affinity
  • 61. © 2019 IBM Corporation Affinity/anti-affinity
  • 62. © 2019 IBM Corporation $ kubectl get nodes NAME STATUS ROLES AGE VERSION 172.16.160.168 Ready etcd,management,master,proxy 1d v1.12.4 172.16.163.246 Ready worker 1d v1.12.4 172.16.177.181 Ready worker 1d v1.12.4 172.16.177.193 Ready worker 1d v1.12.4
  • 63. © 2019 IBM Corporation $ kubectl get nodes NAME STATUS ROLES AGE VERSION 172.16.160.168 Ready etcd,management,master,proxy 1d v1.12.4 172.16.163.246 Ready worker 1d v1.12.4 172.16.177.181 Ready worker 1d v1.12.4 172.16.177.193 Ready worker 1d v1.12.4 $ kubectl describe node 172.16.163.246 Non-terminated Pods: Namespace Name --------- ---- es myrelease-ibm-es-kafka-sts-1 es myrelease-ibm-es-zookeeper-sts-0
  • 64. © 2019 IBM Corporation Accessing Kafka
  • 65. © 2019 IBM Corporation
  • 66. © 2019 IBM Corporation Headless services apiVersion: v1 kind: Service metadata: labels: app: ibm-es name: myrelease-ibm-es-kafka-broker-svc-0 namespace: es spec: clusterIP: None ports: - name: kafka port: 9092 protocol: TCP targetPort: 9092 selector: kafka: "0"
  • 67. © 2019 IBM Corporation $ kubectl get service NAME TYPE PORT(S) AGE myrelease-kafka-0 ClusterIP 9092/TCP 1d myrelease-kafka-1 ClusterIP 9092/TCP 1d myrelease-kafka-2 ClusterIP 9092/TCP 1d
  • 68. © 2019 IBM Corporation Listeners and Advertised Listeners listeners advertised.listeners
  • 69. © 2019 IBM Corporation Listeners and Advertised Listeners listeners the address the socket server listens on advertised.listeners
  • 70. © 2019 IBM Corporation Listeners and Advertised Listeners listeners the address the socket server listens on advertised.listeners hostname and port the broker will advertise to producers and consumers
  • 71. © 2019 IBM Corporation $ cloudctl es broker-config 0 | grep listeners listeners EXTERNAL://:9092 advertised.listeners EXTERNAL://9.30.249.46:30100 $ cloudctl es broker-config 1 | grep listeners listeners EXTERNAL://:9092 advertised.listeners EXTERNAL://9.30.249.46:30101 $ cloudctl es broker-config 2 | grep listeners listeners EXTERNAL://:9092 advertised.listeners EXTERNAL://9.30.249.46:30102
  • 72. © 2019 IBM Corporation $ cloudctl es broker-config 0 | grep listeners listeners EXTERNAL://:9092 advertised.listeners EXTERNAL://9.30.249.46:30100 $ cloudctl es broker-config 1 | grep listeners listeners EXTERNAL://:9092 advertised.listeners EXTERNAL://9.30.249.46:30101 $ cloudctl es broker-config 2 | grep listeners listeners EXTERNAL://:9092 advertised.listeners EXTERNAL://9.30.249.46:30102
  • 73. © 2019 IBM Corporation $ cloudctl es broker-config 0 | grep listeners listeners EXTERNAL://:9092 advertised.listeners EXTERNAL://9.30.249.46:30100 $ cloudctl es broker-config 1 | grep listeners listeners EXTERNAL://:9092 advertised.listeners EXTERNAL://9.30.249.46:30101 $ cloudctl es broker-config 2 | grep listeners listeners EXTERNAL://:9092 advertised.listeners EXTERNAL://9.30.249.46:30102
  • 74. © 2019 IBM Corporation Automation
  • 75. © 2019 IBM Corporation Handling automation Helm $ helm install $ helm upgrade
  • 76. © 2019 IBM Corporation Handling automation Helm Custom Kubernetes resource $ kubectl get kafka $ kubectl get zookeeper $ helm install $ helm upgrade
  • 77. © 2019 IBM Corporation Handling automation Helm Custom Kubernetes resource Kubernetes Operators $ kubectl get kafka $ kubectl get zookeeper $ kubectl scale kafka ?? $ helm install $ helm upgrade
  • 78. © 2019 IBM Corporation github.com/ibm/charts/tree/master/stable/ibm-eventstreams-dev
  • 79. © 2019 IBM Corporation Thank you IBM Event Streams: ibm.com/cloud/event-streams https://slack-invite-ibm-cloud-tech.mybluemix.net/ Katherine Stanley Software Engineer