SlideShare a Scribd company logo
1 of 27
Download to read offline
Connect, Test, Optimize!
Create an Ultimate Kafka Connector Benchmarking Toolkit
Suchi Amalapurapu
Principle Engineer, Confluent
Sudesh Wasnik
Senior Software Engineer II, Confluent
Kafka Streaming Application
A
No-Code way of connecting external systems to Kafka
Kafka
syslog
SOURCES SINKS
Kafka
Connect
Kafka
Connect
Apps
ksqlDB
Kafka Streaming Application
A
No-Code way of connecting external systems to Kafka
Kafka
syslog
SOURCES SINKS
Kafka
Connect
Kafka
Connect
Database Connectors File Store Connectors MQ Connectors SAAS Connectors
Sample Streaming Application
Kafka
Connect
External System
LetsA
MySQL Database
Kafka
MySQL Debezium Connector
Product Catalogue database
Captures change events
Stores change events
MySQL Stream Application
LetsA
MySQL Database
Kafka
High throughput
Slow CDC
Lag!
MySQL Debezium Connector
Kafka
Connect
External System
S3 Sink Streaming Application
LetsA
High throughput
Slower file flush rates
Slower ingestion
Kafka
Connect
External System
AWS S3
Kafka
Kafka Connector
LetsA
MySQL Database
Kafka
Very high throughput
Captures events, but slowly
Lag!
MySQL Debezium Connector
Kafka
Connect
External System
Performance Determinants
● Untuned Connector configuration
● #Tasks
● CPU, Resource crunch
● Unresponsive Sink
● Kafka consumer throttling
How to simulate test-scenarios ?
Slower file flush rates
S3 Sink Streaming Application
Challenges :
1. High breadth of connectors
2. End-system specifics
3. Various configuration combinations
4. Pre-existing test-scripts and systems
5. Integration with CI/CD
Test Setup
Test Setup
Kafka
Analyzer
Fetch Data
External System Kafka Connector
Generate
Load
Load Generator
Pluggable: Any Loadgen can be used
Sizeable : Configurable CPU/Memory
Scalable : Increase Replicas
Report Generation
Pluggable: Any Analyzer can be used
Sizeable : Configurable CPU/Memory
Custom Tests Designs
Report Generation
Test Setup
Kafka
Analyzer
Fetch Data
External System Kafka Connector
Generate
Load
Load Generator
Metric Analyzer
1. Scrape and replay metrics
2. Compare baselines metrics
3. Export metrics
Record Analyzer
1. Consumes destination Topic
2. Verify delivery-semantics
a. At-least once
b. Data-loss
Source System
Performance test pipeline
Run Test
Notification
Test Results
Analyze Results
Dashboards
Kafka Cluster
Connect
Analyzer
Load Generator
Storage
CI/CD
Input Specification
Kubernetes
Performance test pipeline
Run Test
Notification
Test Results
Analyze Results
Dashboards
Source System
Kafka Cluster
Connect
Analyzer
Load Generator
Kubernetes
Storage
CI/CD
Input Specification
Input Specification
Test Specification
• Each spec represents a
distinct test
• Exhaustive Spec
• Template engines like jinja2,
Django templating can be
used.
Performance test pipeline
Run Test
Notification
Test Results
Analyze Results
Dashboards
Source System
Kafka Cluster
Connect
Analyzer
Load Generator
Kubernetes
Storage
CI/CD
Input Specification
Source System
Source System
➔ Tuned.
➔ Pod crash monitoring
➔ Emit pod + end-system
metrics.
Source System
Source System
Performance test pipeline
Run Test
Notification
Test Results
Analyze Results
Dashboards
Kafka Cluster
Connect
Analyzer
Load Generator
Storage
CI/CD
Input Specification
Kubernetes
Load Generator
Source System
Performance test pipeline
Run Test
Notification
Test Results
Analyze Results
Dashboards
Kafka Cluster
Connect
Analyzer
Load Generator
Storage
CI/CD
Input Specification
Kubernetes
Kafka Cluster
Connect
➔ Set Kafka and Connect
base properties
➔ Scale application
➔ Emit JMX metrics
Kafka & Connect Cluster
Source System
Performance test pipeline
Run Test
Notification
Test Results
Analyze Results
Dashboards
Kafka Cluster
Connect
Analyzer
Load Generator
Storage
CI/CD
Input Specification
Kubernetes
Analyzer
➔ Scrape JMX / Custom
metrics
➔ Collect resource profiles
➔ Scrape custom metrics
➔ Export metrics to
metric-store (Bigquery,
Datadog)
Observability
Analysis Template
Metrics Threshold
1. CPU Usage 20%
2. Heap Memory Usage 20%
3. Source Record Poll Rate 10%
4. Producer Bytes ProduceRate 10%
➔ List Metric-name and their
properties
➔ Ex - Scrape
“kafka-consumer” metrics
only
Analysis Template
Framework is ready !
Let's review test scenarios. ..
S3-Sink Test :
Kafka
Analyzer
Fetch Data
Kafka Connector
Generate
Load
Load Generator
S3 Sink
Schema Registry
S3-Sink Test : Avro v/s JSON_SR
Result
➔ Test input-data-format : AVRO v/s JSON_SR
➔ Expectation :
◆ Avro messages smaller
◆ Avro should perform better
TEST
Low performance boost !
S3-Sink Test : File flush frequency
Result
➔ Test Flush-rate frequency
◆ Configuration-A:
● Scheduled Rotation Interval = 3 mins,
● Flush Size = 1000
◆ Configuration-B:
● Scheduled Rotation Interval = 6 mins,
● Flush Size = 3000
➔ Expectation: Configuration-B will perform
better
TEST
High performance boost !
JMS Source Test: v1 v/s v2 performance
➔ Test and compare : v1 v/s v2
➔ Issue-1 : Duplicates
➔ Issue-2: Pod restart during peak-load caused data-loss
➔ Fault Injection tests
Delivery semantics verified
Simulate Chaos in Performance tests
Chaos Scenarios Common to All Connectors
Network Loss (Chaos-Mesh)
Simulate a packet loss scenario
Pod Kill (Chaos-Mesh)
Delete k8s pods randomly
Noisy-Neighbor Scenario
Run Resource Intensive connector in same node
CPU Stress (Chaos-Mesh)
Simulate High CPU load.
Memory Stress (Chaos-Mesh)
Simulate high memory usage
Chaos Tests : Generic Scenarios
Source System
Performance test pipeline
Kafka Cluster
Connect
Analyzer
Load Generator
CI/CD
Kubernetes
A
Inject Chaos
Impact
1. Easy + repeatable tests
2. Uncover connector bottlenecks
3. LoadGen integrations
4. Report generation
5. Chaos DR tests on connectors
6. Performance gating of 15+ connectors
Takeaways
1. Importance of Kafka Connect Perf tests
2. Factors affecting connector performance
3. Test platform design guidelines
4. Configuration tuning and impact
5. Chaos tests
Special Thanks
● Scott Hendricks
● Anupam Aggarwal
● Vikas Balani
Thank you!

More Related Content

Similar to Connect, Test, Optimize: The Ultimate Kafka Connector Benchmarking Toolkit

Creating Connector to Bridge the Worlds of Kafka and gRPC at Wework (Anoop Di...
Creating Connector to Bridge the Worlds of Kafka and gRPC at Wework (Anoop Di...Creating Connector to Bridge the Worlds of Kafka and gRPC at Wework (Anoop Di...
Creating Connector to Bridge the Worlds of Kafka and gRPC at Wework (Anoop Di...confluent
 
Set your Data in Motion with Confluent & Apache Kafka Tech Talk Series LME
Set your Data in Motion with Confluent & Apache Kafka Tech Talk Series LMESet your Data in Motion with Confluent & Apache Kafka Tech Talk Series LME
Set your Data in Motion with Confluent & Apache Kafka Tech Talk Series LMEconfluent
 
What is Apache Kafka and What is an Event Streaming Platform?
What is Apache Kafka and What is an Event Streaming Platform?What is Apache Kafka and What is an Event Streaming Platform?
What is Apache Kafka and What is an Event Streaming Platform?confluent
 
Accelerating Innovation with DevOps on AWS
Accelerating Innovation with DevOps on AWSAccelerating Innovation with DevOps on AWS
Accelerating Innovation with DevOps on AWSAmazon Web Services
 
Azure Event Hubs - Behind the Scenes With Kasun Indrasiri | Current 2022
Azure Event Hubs - Behind the Scenes With Kasun Indrasiri | Current 2022Azure Event Hubs - Behind the Scenes With Kasun Indrasiri | Current 2022
Azure Event Hubs - Behind the Scenes With Kasun Indrasiri | Current 2022HostedbyConfluent
 
Spark Streaming Info
Spark Streaming InfoSpark Streaming Info
Spark Streaming InfoDoug Chang
 
PipelineAI Optimizes Your Enterprise AI Pipeline from Distributed Training to...
PipelineAI Optimizes Your Enterprise AI Pipeline from Distributed Training to...PipelineAI Optimizes Your Enterprise AI Pipeline from Distributed Training to...
PipelineAI Optimizes Your Enterprise AI Pipeline from Distributed Training to...Chris Fregly
 
2016 05-16 testing_distributed_systems_v1 1
2016 05-16 testing_distributed_systems_v1 12016 05-16 testing_distributed_systems_v1 1
2016 05-16 testing_distributed_systems_v1 1Feedzai
 
Lessons Learned From PayPal: Implementing Back-Pressure With Akka Streams And...
Lessons Learned From PayPal: Implementing Back-Pressure With Akka Streams And...Lessons Learned From PayPal: Implementing Back-Pressure With Akka Streams And...
Lessons Learned From PayPal: Implementing Back-Pressure With Akka Streams And...Lightbend
 
Changing landscapes in data integration - Kafka Connect for near real-time da...
Changing landscapes in data integration - Kafka Connect for near real-time da...Changing landscapes in data integration - Kafka Connect for near real-time da...
Changing landscapes in data integration - Kafka Connect for near real-time da...HostedbyConfluent
 
Welcome to Kafka; We’re Glad You’re Here (Dave Klein, Centene) Kafka Summit 2020
Welcome to Kafka; We’re Glad You’re Here (Dave Klein, Centene) Kafka Summit 2020Welcome to Kafka; We’re Glad You’re Here (Dave Klein, Centene) Kafka Summit 2020
Welcome to Kafka; We’re Glad You’re Here (Dave Klein, Centene) Kafka Summit 2020confluent
 
Exactly-once Data Processing with Kafka Streams - July 27, 2017
Exactly-once Data Processing with Kafka Streams - July 27, 2017Exactly-once Data Processing with Kafka Streams - July 27, 2017
Exactly-once Data Processing with Kafka Streams - July 27, 2017confluent
 
KubeCon EU 2016: Leveraging ephemeral namespaces in a CI/CD pipeline
KubeCon EU 2016: Leveraging ephemeral namespaces in a CI/CD pipelineKubeCon EU 2016: Leveraging ephemeral namespaces in a CI/CD pipeline
KubeCon EU 2016: Leveraging ephemeral namespaces in a CI/CD pipelineKubeAcademy
 
Learning spark ch10 - Spark Streaming
Learning spark ch10 - Spark StreamingLearning spark ch10 - Spark Streaming
Learning spark ch10 - Spark Streamingphanleson
 
Steps to Building a Streaming ETL Pipeline with Apache Kafka® and KSQL
Steps to Building a Streaming ETL Pipeline with Apache Kafka® and KSQLSteps to Building a Streaming ETL Pipeline with Apache Kafka® and KSQL
Steps to Building a Streaming ETL Pipeline with Apache Kafka® and KSQLconfluent
 
Day 3 - DevOps Culture - Continuous Integration & Continuous Deployment on th...
Day 3 - DevOps Culture - Continuous Integration & Continuous Deployment on th...Day 3 - DevOps Culture - Continuous Integration & Continuous Deployment on th...
Day 3 - DevOps Culture - Continuous Integration & Continuous Deployment on th...Amazon Web Services
 
AWS re:Invent 2016: Infrastructure Continuous Delivery Using AWS CloudFormati...
AWS re:Invent 2016: Infrastructure Continuous Delivery Using AWS CloudFormati...AWS re:Invent 2016: Infrastructure Continuous Delivery Using AWS CloudFormati...
AWS re:Invent 2016: Infrastructure Continuous Delivery Using AWS CloudFormati...Amazon Web Services
 
Data Pipelines with Kafka Connect
Data Pipelines with Kafka ConnectData Pipelines with Kafka Connect
Data Pipelines with Kafka ConnectKaufman Ng
 
Clipper: A Low-Latency Online Prediction Serving System
Clipper: A Low-Latency Online Prediction Serving SystemClipper: A Low-Latency Online Prediction Serving System
Clipper: A Low-Latency Online Prediction Serving SystemDatabricks
 

Similar to Connect, Test, Optimize: The Ultimate Kafka Connector Benchmarking Toolkit (20)

Creating Connector to Bridge the Worlds of Kafka and gRPC at Wework (Anoop Di...
Creating Connector to Bridge the Worlds of Kafka and gRPC at Wework (Anoop Di...Creating Connector to Bridge the Worlds of Kafka and gRPC at Wework (Anoop Di...
Creating Connector to Bridge the Worlds of Kafka and gRPC at Wework (Anoop Di...
 
Set your Data in Motion with Confluent & Apache Kafka Tech Talk Series LME
Set your Data in Motion with Confluent & Apache Kafka Tech Talk Series LMESet your Data in Motion with Confluent & Apache Kafka Tech Talk Series LME
Set your Data in Motion with Confluent & Apache Kafka Tech Talk Series LME
 
What is Apache Kafka and What is an Event Streaming Platform?
What is Apache Kafka and What is an Event Streaming Platform?What is Apache Kafka and What is an Event Streaming Platform?
What is Apache Kafka and What is an Event Streaming Platform?
 
Accelerating Innovation with DevOps on AWS
Accelerating Innovation with DevOps on AWSAccelerating Innovation with DevOps on AWS
Accelerating Innovation with DevOps on AWS
 
Azure Event Hubs - Behind the Scenes With Kasun Indrasiri | Current 2022
Azure Event Hubs - Behind the Scenes With Kasun Indrasiri | Current 2022Azure Event Hubs - Behind the Scenes With Kasun Indrasiri | Current 2022
Azure Event Hubs - Behind the Scenes With Kasun Indrasiri | Current 2022
 
Spark Streaming Info
Spark Streaming InfoSpark Streaming Info
Spark Streaming Info
 
PipelineAI Optimizes Your Enterprise AI Pipeline from Distributed Training to...
PipelineAI Optimizes Your Enterprise AI Pipeline from Distributed Training to...PipelineAI Optimizes Your Enterprise AI Pipeline from Distributed Training to...
PipelineAI Optimizes Your Enterprise AI Pipeline from Distributed Training to...
 
2016 05-16 testing_distributed_systems_v1 1
2016 05-16 testing_distributed_systems_v1 12016 05-16 testing_distributed_systems_v1 1
2016 05-16 testing_distributed_systems_v1 1
 
Lessons Learned From PayPal: Implementing Back-Pressure With Akka Streams And...
Lessons Learned From PayPal: Implementing Back-Pressure With Akka Streams And...Lessons Learned From PayPal: Implementing Back-Pressure With Akka Streams And...
Lessons Learned From PayPal: Implementing Back-Pressure With Akka Streams And...
 
Changing landscapes in data integration - Kafka Connect for near real-time da...
Changing landscapes in data integration - Kafka Connect for near real-time da...Changing landscapes in data integration - Kafka Connect for near real-time da...
Changing landscapes in data integration - Kafka Connect for near real-time da...
 
Welcome to Kafka; We’re Glad You’re Here (Dave Klein, Centene) Kafka Summit 2020
Welcome to Kafka; We’re Glad You’re Here (Dave Klein, Centene) Kafka Summit 2020Welcome to Kafka; We’re Glad You’re Here (Dave Klein, Centene) Kafka Summit 2020
Welcome to Kafka; We’re Glad You’re Here (Dave Klein, Centene) Kafka Summit 2020
 
Exactly-once Data Processing with Kafka Streams - July 27, 2017
Exactly-once Data Processing with Kafka Streams - July 27, 2017Exactly-once Data Processing with Kafka Streams - July 27, 2017
Exactly-once Data Processing with Kafka Streams - July 27, 2017
 
KubeCon EU 2016: Leveraging ephemeral namespaces in a CI/CD pipeline
KubeCon EU 2016: Leveraging ephemeral namespaces in a CI/CD pipelineKubeCon EU 2016: Leveraging ephemeral namespaces in a CI/CD pipeline
KubeCon EU 2016: Leveraging ephemeral namespaces in a CI/CD pipeline
 
Learning spark ch10 - Spark Streaming
Learning spark ch10 - Spark StreamingLearning spark ch10 - Spark Streaming
Learning spark ch10 - Spark Streaming
 
App fabric introduction
App fabric introductionApp fabric introduction
App fabric introduction
 
Steps to Building a Streaming ETL Pipeline with Apache Kafka® and KSQL
Steps to Building a Streaming ETL Pipeline with Apache Kafka® and KSQLSteps to Building a Streaming ETL Pipeline with Apache Kafka® and KSQL
Steps to Building a Streaming ETL Pipeline with Apache Kafka® and KSQL
 
Day 3 - DevOps Culture - Continuous Integration & Continuous Deployment on th...
Day 3 - DevOps Culture - Continuous Integration & Continuous Deployment on th...Day 3 - DevOps Culture - Continuous Integration & Continuous Deployment on th...
Day 3 - DevOps Culture - Continuous Integration & Continuous Deployment on th...
 
AWS re:Invent 2016: Infrastructure Continuous Delivery Using AWS CloudFormati...
AWS re:Invent 2016: Infrastructure Continuous Delivery Using AWS CloudFormati...AWS re:Invent 2016: Infrastructure Continuous Delivery Using AWS CloudFormati...
AWS re:Invent 2016: Infrastructure Continuous Delivery Using AWS CloudFormati...
 
Data Pipelines with Kafka Connect
Data Pipelines with Kafka ConnectData Pipelines with Kafka Connect
Data Pipelines with Kafka Connect
 
Clipper: A Low-Latency Online Prediction Serving System
Clipper: A Low-Latency Online Prediction Serving SystemClipper: A Low-Latency Online Prediction Serving System
Clipper: A Low-Latency Online Prediction Serving System
 

More from HostedbyConfluent

Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Renaming a Kafka Topic | Kafka Summit London
Renaming a Kafka Topic | Kafka Summit LondonRenaming a Kafka Topic | Kafka Summit London
Renaming a Kafka Topic | Kafka Summit LondonHostedbyConfluent
 
Evolution of NRT Data Ingestion Pipeline at Trendyol
Evolution of NRT Data Ingestion Pipeline at TrendyolEvolution of NRT Data Ingestion Pipeline at Trendyol
Evolution of NRT Data Ingestion Pipeline at TrendyolHostedbyConfluent
 
Ensuring Kafka Service Resilience: A Dive into Health-Checking Techniques
Ensuring Kafka Service Resilience: A Dive into Health-Checking TechniquesEnsuring Kafka Service Resilience: A Dive into Health-Checking Techniques
Ensuring Kafka Service Resilience: A Dive into Health-Checking TechniquesHostedbyConfluent
 
Exactly-once Stream Processing with Arroyo and Kafka
Exactly-once Stream Processing with Arroyo and KafkaExactly-once Stream Processing with Arroyo and Kafka
Exactly-once Stream Processing with Arroyo and KafkaHostedbyConfluent
 
Fish Plays Pokemon | Kafka Summit London
Fish Plays Pokemon | Kafka Summit LondonFish Plays Pokemon | Kafka Summit London
Fish Plays Pokemon | Kafka Summit LondonHostedbyConfluent
 
Tiered Storage 101 | Kafla Summit London
Tiered Storage 101 | Kafla Summit LondonTiered Storage 101 | Kafla Summit London
Tiered Storage 101 | Kafla Summit LondonHostedbyConfluent
 
Building a Self-Service Stream Processing Portal: How And Why
Building a Self-Service Stream Processing Portal: How And WhyBuilding a Self-Service Stream Processing Portal: How And Why
Building a Self-Service Stream Processing Portal: How And WhyHostedbyConfluent
 
From the Trenches: Improving Kafka Connect Source Connector Ingestion from 7 ...
From the Trenches: Improving Kafka Connect Source Connector Ingestion from 7 ...From the Trenches: Improving Kafka Connect Source Connector Ingestion from 7 ...
From the Trenches: Improving Kafka Connect Source Connector Ingestion from 7 ...HostedbyConfluent
 
Future with Zero Down-Time: End-to-end Resiliency with Chaos Engineering and ...
Future with Zero Down-Time: End-to-end Resiliency with Chaos Engineering and ...Future with Zero Down-Time: End-to-end Resiliency with Chaos Engineering and ...
Future with Zero Down-Time: End-to-end Resiliency with Chaos Engineering and ...HostedbyConfluent
 
Navigating Private Network Connectivity Options for Kafka Clusters
Navigating Private Network Connectivity Options for Kafka ClustersNavigating Private Network Connectivity Options for Kafka Clusters
Navigating Private Network Connectivity Options for Kafka ClustersHostedbyConfluent
 
Apache Flink: Building a Company-wide Self-service Streaming Data Platform
Apache Flink: Building a Company-wide Self-service Streaming Data PlatformApache Flink: Building a Company-wide Self-service Streaming Data Platform
Apache Flink: Building a Company-wide Self-service Streaming Data PlatformHostedbyConfluent
 
Explaining How Real-Time GenAI Works in a Noisy Pub
Explaining How Real-Time GenAI Works in a Noisy PubExplaining How Real-Time GenAI Works in a Noisy Pub
Explaining How Real-Time GenAI Works in a Noisy PubHostedbyConfluent
 
TL;DR Kafka Metrics | Kafka Summit London
TL;DR Kafka Metrics | Kafka Summit LondonTL;DR Kafka Metrics | Kafka Summit London
TL;DR Kafka Metrics | Kafka Summit LondonHostedbyConfluent
 
A Window Into Your Kafka Streams Tasks | KSL
A Window Into Your Kafka Streams Tasks | KSLA Window Into Your Kafka Streams Tasks | KSL
A Window Into Your Kafka Streams Tasks | KSLHostedbyConfluent
 
Mastering Kafka Producer Configs: A Guide to Optimizing Performance
Mastering Kafka Producer Configs: A Guide to Optimizing PerformanceMastering Kafka Producer Configs: A Guide to Optimizing Performance
Mastering Kafka Producer Configs: A Guide to Optimizing PerformanceHostedbyConfluent
 
Data Contracts Management: Schema Registry and Beyond
Data Contracts Management: Schema Registry and BeyondData Contracts Management: Schema Registry and Beyond
Data Contracts Management: Schema Registry and BeyondHostedbyConfluent
 
Code-First Approach: Crafting Efficient Flink Apps
Code-First Approach: Crafting Efficient Flink AppsCode-First Approach: Crafting Efficient Flink Apps
Code-First Approach: Crafting Efficient Flink AppsHostedbyConfluent
 
Debezium vs. the World: An Overview of the CDC Ecosystem
Debezium vs. the World: An Overview of the CDC EcosystemDebezium vs. the World: An Overview of the CDC Ecosystem
Debezium vs. the World: An Overview of the CDC EcosystemHostedbyConfluent
 
Beyond Tiered Storage: Serverless Kafka with No Local Disks
Beyond Tiered Storage: Serverless Kafka with No Local DisksBeyond Tiered Storage: Serverless Kafka with No Local Disks
Beyond Tiered Storage: Serverless Kafka with No Local DisksHostedbyConfluent
 

More from HostedbyConfluent (20)

Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Renaming a Kafka Topic | Kafka Summit London
Renaming a Kafka Topic | Kafka Summit LondonRenaming a Kafka Topic | Kafka Summit London
Renaming a Kafka Topic | Kafka Summit London
 
Evolution of NRT Data Ingestion Pipeline at Trendyol
Evolution of NRT Data Ingestion Pipeline at TrendyolEvolution of NRT Data Ingestion Pipeline at Trendyol
Evolution of NRT Data Ingestion Pipeline at Trendyol
 
Ensuring Kafka Service Resilience: A Dive into Health-Checking Techniques
Ensuring Kafka Service Resilience: A Dive into Health-Checking TechniquesEnsuring Kafka Service Resilience: A Dive into Health-Checking Techniques
Ensuring Kafka Service Resilience: A Dive into Health-Checking Techniques
 
Exactly-once Stream Processing with Arroyo and Kafka
Exactly-once Stream Processing with Arroyo and KafkaExactly-once Stream Processing with Arroyo and Kafka
Exactly-once Stream Processing with Arroyo and Kafka
 
Fish Plays Pokemon | Kafka Summit London
Fish Plays Pokemon | Kafka Summit LondonFish Plays Pokemon | Kafka Summit London
Fish Plays Pokemon | Kafka Summit London
 
Tiered Storage 101 | Kafla Summit London
Tiered Storage 101 | Kafla Summit LondonTiered Storage 101 | Kafla Summit London
Tiered Storage 101 | Kafla Summit London
 
Building a Self-Service Stream Processing Portal: How And Why
Building a Self-Service Stream Processing Portal: How And WhyBuilding a Self-Service Stream Processing Portal: How And Why
Building a Self-Service Stream Processing Portal: How And Why
 
From the Trenches: Improving Kafka Connect Source Connector Ingestion from 7 ...
From the Trenches: Improving Kafka Connect Source Connector Ingestion from 7 ...From the Trenches: Improving Kafka Connect Source Connector Ingestion from 7 ...
From the Trenches: Improving Kafka Connect Source Connector Ingestion from 7 ...
 
Future with Zero Down-Time: End-to-end Resiliency with Chaos Engineering and ...
Future with Zero Down-Time: End-to-end Resiliency with Chaos Engineering and ...Future with Zero Down-Time: End-to-end Resiliency with Chaos Engineering and ...
Future with Zero Down-Time: End-to-end Resiliency with Chaos Engineering and ...
 
Navigating Private Network Connectivity Options for Kafka Clusters
Navigating Private Network Connectivity Options for Kafka ClustersNavigating Private Network Connectivity Options for Kafka Clusters
Navigating Private Network Connectivity Options for Kafka Clusters
 
Apache Flink: Building a Company-wide Self-service Streaming Data Platform
Apache Flink: Building a Company-wide Self-service Streaming Data PlatformApache Flink: Building a Company-wide Self-service Streaming Data Platform
Apache Flink: Building a Company-wide Self-service Streaming Data Platform
 
Explaining How Real-Time GenAI Works in a Noisy Pub
Explaining How Real-Time GenAI Works in a Noisy PubExplaining How Real-Time GenAI Works in a Noisy Pub
Explaining How Real-Time GenAI Works in a Noisy Pub
 
TL;DR Kafka Metrics | Kafka Summit London
TL;DR Kafka Metrics | Kafka Summit LondonTL;DR Kafka Metrics | Kafka Summit London
TL;DR Kafka Metrics | Kafka Summit London
 
A Window Into Your Kafka Streams Tasks | KSL
A Window Into Your Kafka Streams Tasks | KSLA Window Into Your Kafka Streams Tasks | KSL
A Window Into Your Kafka Streams Tasks | KSL
 
Mastering Kafka Producer Configs: A Guide to Optimizing Performance
Mastering Kafka Producer Configs: A Guide to Optimizing PerformanceMastering Kafka Producer Configs: A Guide to Optimizing Performance
Mastering Kafka Producer Configs: A Guide to Optimizing Performance
 
Data Contracts Management: Schema Registry and Beyond
Data Contracts Management: Schema Registry and BeyondData Contracts Management: Schema Registry and Beyond
Data Contracts Management: Schema Registry and Beyond
 
Code-First Approach: Crafting Efficient Flink Apps
Code-First Approach: Crafting Efficient Flink AppsCode-First Approach: Crafting Efficient Flink Apps
Code-First Approach: Crafting Efficient Flink Apps
 
Debezium vs. the World: An Overview of the CDC Ecosystem
Debezium vs. the World: An Overview of the CDC EcosystemDebezium vs. the World: An Overview of the CDC Ecosystem
Debezium vs. the World: An Overview of the CDC Ecosystem
 
Beyond Tiered Storage: Serverless Kafka with No Local Disks
Beyond Tiered Storage: Serverless Kafka with No Local DisksBeyond Tiered Storage: Serverless Kafka with No Local Disks
Beyond Tiered Storage: Serverless Kafka with No Local Disks
 

Recently uploaded

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
 
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
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
"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
 
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
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
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
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
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
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsPrecisely
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 

Recently uploaded (20)

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
 
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
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
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
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
"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...
 
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
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
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?
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
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
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power Systems
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 

Connect, Test, Optimize: The Ultimate Kafka Connector Benchmarking Toolkit

  • 1. Connect, Test, Optimize! Create an Ultimate Kafka Connector Benchmarking Toolkit Suchi Amalapurapu Principle Engineer, Confluent Sudesh Wasnik Senior Software Engineer II, Confluent
  • 2. Kafka Streaming Application A No-Code way of connecting external systems to Kafka Kafka syslog SOURCES SINKS Kafka Connect Kafka Connect Apps ksqlDB
  • 3. Kafka Streaming Application A No-Code way of connecting external systems to Kafka Kafka syslog SOURCES SINKS Kafka Connect Kafka Connect Database Connectors File Store Connectors MQ Connectors SAAS Connectors
  • 4. Sample Streaming Application Kafka Connect External System LetsA MySQL Database Kafka MySQL Debezium Connector Product Catalogue database Captures change events Stores change events
  • 5. MySQL Stream Application LetsA MySQL Database Kafka High throughput Slow CDC Lag! MySQL Debezium Connector Kafka Connect External System
  • 6. S3 Sink Streaming Application LetsA High throughput Slower file flush rates Slower ingestion Kafka Connect External System AWS S3 Kafka Kafka Connector
  • 7. LetsA MySQL Database Kafka Very high throughput Captures events, but slowly Lag! MySQL Debezium Connector Kafka Connect External System Performance Determinants ● Untuned Connector configuration ● #Tasks ● CPU, Resource crunch ● Unresponsive Sink ● Kafka consumer throttling How to simulate test-scenarios ? Slower file flush rates S3 Sink Streaming Application
  • 8. Challenges : 1. High breadth of connectors 2. End-system specifics 3. Various configuration combinations 4. Pre-existing test-scripts and systems 5. Integration with CI/CD Test Setup
  • 9. Test Setup Kafka Analyzer Fetch Data External System Kafka Connector Generate Load Load Generator Pluggable: Any Loadgen can be used Sizeable : Configurable CPU/Memory Scalable : Increase Replicas Report Generation Pluggable: Any Analyzer can be used Sizeable : Configurable CPU/Memory Custom Tests Designs Report Generation
  • 10. Test Setup Kafka Analyzer Fetch Data External System Kafka Connector Generate Load Load Generator Metric Analyzer 1. Scrape and replay metrics 2. Compare baselines metrics 3. Export metrics Record Analyzer 1. Consumes destination Topic 2. Verify delivery-semantics a. At-least once b. Data-loss
  • 11. Source System Performance test pipeline Run Test Notification Test Results Analyze Results Dashboards Kafka Cluster Connect Analyzer Load Generator Storage CI/CD Input Specification Kubernetes
  • 12. Performance test pipeline Run Test Notification Test Results Analyze Results Dashboards Source System Kafka Cluster Connect Analyzer Load Generator Kubernetes Storage CI/CD Input Specification Input Specification Test Specification • Each spec represents a distinct test • Exhaustive Spec • Template engines like jinja2, Django templating can be used.
  • 13. Performance test pipeline Run Test Notification Test Results Analyze Results Dashboards Source System Kafka Cluster Connect Analyzer Load Generator Kubernetes Storage CI/CD Input Specification Source System Source System ➔ Tuned. ➔ Pod crash monitoring ➔ Emit pod + end-system metrics. Source System
  • 14. Source System Performance test pipeline Run Test Notification Test Results Analyze Results Dashboards Kafka Cluster Connect Analyzer Load Generator Storage CI/CD Input Specification Kubernetes Load Generator
  • 15. Source System Performance test pipeline Run Test Notification Test Results Analyze Results Dashboards Kafka Cluster Connect Analyzer Load Generator Storage CI/CD Input Specification Kubernetes Kafka Cluster Connect ➔ Set Kafka and Connect base properties ➔ Scale application ➔ Emit JMX metrics Kafka & Connect Cluster
  • 16. Source System Performance test pipeline Run Test Notification Test Results Analyze Results Dashboards Kafka Cluster Connect Analyzer Load Generator Storage CI/CD Input Specification Kubernetes Analyzer ➔ Scrape JMX / Custom metrics ➔ Collect resource profiles ➔ Scrape custom metrics ➔ Export metrics to metric-store (Bigquery, Datadog) Observability Analysis Template Metrics Threshold 1. CPU Usage 20% 2. Heap Memory Usage 20% 3. Source Record Poll Rate 10% 4. Producer Bytes ProduceRate 10% ➔ List Metric-name and their properties ➔ Ex - Scrape “kafka-consumer” metrics only Analysis Template
  • 17. Framework is ready ! Let's review test scenarios. ..
  • 18. S3-Sink Test : Kafka Analyzer Fetch Data Kafka Connector Generate Load Load Generator S3 Sink Schema Registry
  • 19. S3-Sink Test : Avro v/s JSON_SR Result ➔ Test input-data-format : AVRO v/s JSON_SR ➔ Expectation : ◆ Avro messages smaller ◆ Avro should perform better TEST Low performance boost !
  • 20. S3-Sink Test : File flush frequency Result ➔ Test Flush-rate frequency ◆ Configuration-A: ● Scheduled Rotation Interval = 3 mins, ● Flush Size = 1000 ◆ Configuration-B: ● Scheduled Rotation Interval = 6 mins, ● Flush Size = 3000 ➔ Expectation: Configuration-B will perform better TEST High performance boost !
  • 21. JMS Source Test: v1 v/s v2 performance ➔ Test and compare : v1 v/s v2 ➔ Issue-1 : Duplicates ➔ Issue-2: Pod restart during peak-load caused data-loss ➔ Fault Injection tests Delivery semantics verified
  • 22. Simulate Chaos in Performance tests
  • 23. Chaos Scenarios Common to All Connectors Network Loss (Chaos-Mesh) Simulate a packet loss scenario Pod Kill (Chaos-Mesh) Delete k8s pods randomly Noisy-Neighbor Scenario Run Resource Intensive connector in same node CPU Stress (Chaos-Mesh) Simulate High CPU load. Memory Stress (Chaos-Mesh) Simulate high memory usage Chaos Tests : Generic Scenarios
  • 24. Source System Performance test pipeline Kafka Cluster Connect Analyzer Load Generator CI/CD Kubernetes A Inject Chaos
  • 25. Impact 1. Easy + repeatable tests 2. Uncover connector bottlenecks 3. LoadGen integrations 4. Report generation 5. Chaos DR tests on connectors 6. Performance gating of 15+ connectors
  • 26. Takeaways 1. Importance of Kafka Connect Perf tests 2. Factors affecting connector performance 3. Test platform design guidelines 4. Configuration tuning and impact 5. Chaos tests
  • 27. Special Thanks ● Scott Hendricks ● Anupam Aggarwal ● Vikas Balani Thank you!