SlideShare ist ein Scribd-Unternehmen logo
1 von 43
End to end performance
testing with Clojure
About me
Gerard Klijs
● @GKlijs
● https://github.com/gklijs
● Java developer with
● Used Kafka several times
● Author of
schema_registry_converter
● Living in Papendrecht
Contents
● Demo
● Test setup
● Used libraries
● Results comparing linger.ms 0 and 100
● Questions
Bank simulation with end-to-end performance test
Overview of the whole system
Every yellow component will be explained in details, and are all but the command
handler only written in Clojure. We use the schema registry for schema
management, also making the messages smaller. All messages will have string as
key and avro as value type.
Meaning of the colors:
● Orange are the Confluent platform parts
● Yellow are the parts of open bank mark
● Green is an NginX instance
● Light blue are PostgreSQL databases
Code example start consuming
Code example producer
Topology
Common dependency of the other parts.
Several functions:
● One way to set the logging for all components.
● All components have knowledge over the topics and data types without
needing to connect.
● Will generate Avro object for (de)serialization.
● Functions wrapping the (Java) Kafka Consumer and Producer.
● Functions for dealing with IBAN and UUID.
Synchronizer
Makes sure both the correct topics and schema’s are set.
Checks if it’s possible to set the replication factor to what’s in the config, takes the
minimum of the available nodes and the config.
Note that this has been used only on a clean Kafka cluster, and there is currently
no check for topic properties being correct.
Heartbeat
Just a simple producer for easy debugging.
Used a simple message with just a long value.
Exposes and nrepl. A nrepl is a network repl, which can be used to execute code
remotely and get the result back. This is a powerful concept, making it possible to
apply fixes as the code runs, or interactively solve bugs. With the nrepl the pace of
the send messages can be changed.
Command generator
Consumes the heartbeats and generates a command for each received heartbeat.
This will be ConfirmAccountCreation first, as it runs there will be less of these. It
rondomly ceates different kinds of ConfirmMoneyTransfer which might fail
because it would cause the balance to become below the limit.
Using seancorfield/next.jdbc for PostgreSQL
Command handler
Handles the different kinds of command.
● AccountCreationCommand: generates a new iban, if it not already exists
creates a balance using the default values, if it does exists gives back an
AccountCreationFailed.
● ConfirmMoneyTransfer: if the supplied token is correct, and there is enough
money, makes the transfer. Updates both to and form if they are ‘open-bank’
ibans. And creates a BalanceChanged event for each changed balance.
GraphQL-endpoint
GraphQL-endpoint
Exposes a GraphQL endpoint to make it easy to issue commands and get the
results back in the frontend. All services have there own consumer, and share the
producer and the database.
● Transaction service: makes it possible to query or subscribe to balance
changed events.
● Account creation service: used to create an account. Will link the username
used to log in with the uuid send for the account creation, in order to get the
same iban back should the user log in at another time.
● Money transfer service: tries to transfer money, and provides feedback.
GraphQL subscriptions using Lacinia-pedestal
Frontend
Frontend
The frontend is build on several parts that all end up in a NginX container to be
served.
● The javascript part is build using clojurescript, an important part is the re-
graph library. For clojurescript re-frame is often used, which uses react to
update the dom depending on a global state. Clojurescript is using the Google
Closure compiler to reduce the size of the resulting javascript.
● Bulma is used for the css with just the colors set differently and some
additional animations.
● The output from the tests are added to NginX to make them easily accessible.
Running a test
When the test is run it will do several kind of transaction that either increase or
lower the money on the balance in such a way as much goes in as goes out after
10 runs. It measures the time till the new balance comes in.
During the test the load of the system is increased by using the nrepl of the
heartbeat. Increasing the number of heartbeats which in turn will trigger additional
commands to be processed.
Also during the test using lispyclouds/clj-docker-client both the cpu and memory of
parts of the system are measured.
Al the data is written into a file so it can be analyzed later on.
Test frontend with etaoin using chrome
Using lispyclouds/clj-docker-client for docker
Output a test
The generated files can be compared to other files to generate graphs.
All the data is combined, and for each point with the same load some statistics are
calculated. Most often the mean and the standard error.
For different values graphs are generated in the public folder for the frontend so
they can be easily viewed. They are available at the background tab at open-bank.
Using kixi/stats to prepare the data
Using metasoarous/oz to display using vega
Example test, difference linger.ms 0 vs 100
linger.ms is an important setting of the kafka producer. Default is 0 for the client,
but 100 for kafka streams. Instead of 1 message at a time, multiple are send at a
time allowing higher efficiency.
Run on 6-core Macbook Pro with for Docker:
● 4 Cpu
● 12 GiB Memory
● 3 GiB Swap
Questions? Code available at open-bank-mark

Weitere ähnliche Inhalte

Was ist angesagt?

Gatling Tool in Action at Devoxx 2012
Gatling Tool in Action at Devoxx 2012Gatling Tool in Action at Devoxx 2012
Gatling Tool in Action at Devoxx 2012
slandelle
 
Flink Forward SF 2017: Stephan Ewen - Convergence of real-time analytics and ...
Flink Forward SF 2017: Stephan Ewen - Convergence of real-time analytics and ...Flink Forward SF 2017: Stephan Ewen - Convergence of real-time analytics and ...
Flink Forward SF 2017: Stephan Ewen - Convergence of real-time analytics and ...
Flink Forward
 

Was ist angesagt? (20)

Introducing Exactly Once Semantics in Apache Kafka with Matthias J. Sax
Introducing Exactly Once Semantics in Apache Kafka with Matthias J. SaxIntroducing Exactly Once Semantics in Apache Kafka with Matthias J. Sax
Introducing Exactly Once Semantics in Apache Kafka with Matthias J. Sax
 
Flink Forward Berlin 2017: Matt Zimmer - Custom, Complex Windows at Scale Usi...
Flink Forward Berlin 2017: Matt Zimmer - Custom, Complex Windows at Scale Usi...Flink Forward Berlin 2017: Matt Zimmer - Custom, Complex Windows at Scale Usi...
Flink Forward Berlin 2017: Matt Zimmer - Custom, Complex Windows at Scale Usi...
 
Cassandra Meetup Nov 2019 - Cassandra Resiliency
Cassandra Meetup Nov 2019 -  Cassandra ResiliencyCassandra Meetup Nov 2019 -  Cassandra Resiliency
Cassandra Meetup Nov 2019 - Cassandra Resiliency
 
Virtual Flink Forward 2020: Autoscaling Flink at Netflix - Timothy Farkas
Virtual Flink Forward 2020: Autoscaling Flink at Netflix - Timothy FarkasVirtual Flink Forward 2020: Autoscaling Flink at Netflix - Timothy Farkas
Virtual Flink Forward 2020: Autoscaling Flink at Netflix - Timothy Farkas
 
Temporal Performance Modelling of Serverless Computing Platforms - WoSC6
Temporal Performance Modelling of Serverless Computing Platforms - WoSC6Temporal Performance Modelling of Serverless Computing Platforms - WoSC6
Temporal Performance Modelling of Serverless Computing Platforms - WoSC6
 
Flink Forward Berlin 2017: Piotr Wawrzyniak - Extending Apache Flink stream p...
Flink Forward Berlin 2017: Piotr Wawrzyniak - Extending Apache Flink stream p...Flink Forward Berlin 2017: Piotr Wawrzyniak - Extending Apache Flink stream p...
Flink Forward Berlin 2017: Piotr Wawrzyniak - Extending Apache Flink stream p...
 
Flink Forward Berlin 2017: Maciek Próchniak - TouK Nussknacker - creating Fli...
Flink Forward Berlin 2017: Maciek Próchniak - TouK Nussknacker - creating Fli...Flink Forward Berlin 2017: Maciek Próchniak - TouK Nussknacker - creating Fli...
Flink Forward Berlin 2017: Maciek Próchniak - TouK Nussknacker - creating Fli...
 
promgen - prometheus managemnet tool / simpleclient_java hacks @ Prometheus c...
promgen - prometheus managemnet tool / simpleclient_java hacks @ Prometheus c...promgen - prometheus managemnet tool / simpleclient_java hacks @ Prometheus c...
promgen - prometheus managemnet tool / simpleclient_java hacks @ Prometheus c...
 
Spring batch in action
Spring batch in actionSpring batch in action
Spring batch in action
 
Basics of Node.js
Basics of Node.jsBasics of Node.js
Basics of Node.js
 
Time to-live: How to Perform Automatic State Cleanup in Apache Flink - Andrey...
Time to-live: How to Perform Automatic State Cleanup in Apache Flink - Andrey...Time to-live: How to Perform Automatic State Cleanup in Apache Flink - Andrey...
Time to-live: How to Perform Automatic State Cleanup in Apache Flink - Andrey...
 
Flink Forward SF 2017: Stefan Richter - Improvements for large state and reco...
Flink Forward SF 2017: Stefan Richter - Improvements for large state and reco...Flink Forward SF 2017: Stefan Richter - Improvements for large state and reco...
Flink Forward SF 2017: Stefan Richter - Improvements for large state and reco...
 
Ob1k presentation at Java.IL
Ob1k presentation at Java.ILOb1k presentation at Java.IL
Ob1k presentation at Java.IL
 
Reactive
ReactiveReactive
Reactive
 
Gatling Tool in Action at Devoxx 2012
Gatling Tool in Action at Devoxx 2012Gatling Tool in Action at Devoxx 2012
Gatling Tool in Action at Devoxx 2012
 
Gatling - Stress test tool
Gatling - Stress test toolGatling - Stress test tool
Gatling - Stress test tool
 
Intro to React
Intro to ReactIntro to React
Intro to React
 
Flink Forward SF 2017: Stephan Ewen - Convergence of real-time analytics and ...
Flink Forward SF 2017: Stephan Ewen - Convergence of real-time analytics and ...Flink Forward SF 2017: Stephan Ewen - Convergence of real-time analytics and ...
Flink Forward SF 2017: Stephan Ewen - Convergence of real-time analytics and ...
 
Flink Forward Berlin 2017: Andreas Kunft - Efficiently executing R Dataframes...
Flink Forward Berlin 2017: Andreas Kunft - Efficiently executing R Dataframes...Flink Forward Berlin 2017: Andreas Kunft - Efficiently executing R Dataframes...
Flink Forward Berlin 2017: Andreas Kunft - Efficiently executing R Dataframes...
 
Low latency in java 8 by Peter Lawrey
Low latency in java 8 by Peter Lawrey Low latency in java 8 by Peter Lawrey
Low latency in java 8 by Peter Lawrey
 

Ähnlich wie End to end testing a web application with Clojure

Ähnlich wie End to end testing a web application with Clojure (20)

Migration To Multi Core - Parallel Programming Models
Migration To Multi Core - Parallel Programming ModelsMigration To Multi Core - Parallel Programming Models
Migration To Multi Core - Parallel Programming Models
 
Gatling
Gatling Gatling
Gatling
 
Performance Test Automation With Gatling
Performance Test Automation  With GatlingPerformance Test Automation  With Gatling
Performance Test Automation With Gatling
 
Embulk - 進化するバルクデータローダ
Embulk - 進化するバルクデータローダEmbulk - 進化するバルクデータローダ
Embulk - 進化するバルクデータローダ
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetes
 
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...
 
Software architecture for data applications
Software architecture for data applicationsSoftware architecture for data applications
Software architecture for data applications
 
Ultimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on KubernetesUltimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on Kubernetes
 
14th Athens Big Data Meetup - Landoop Workshop - Apache Kafka Entering The St...
14th Athens Big Data Meetup - Landoop Workshop - Apache Kafka Entering The St...14th Athens Big Data Meetup - Landoop Workshop - Apache Kafka Entering The St...
14th Athens Big Data Meetup - Landoop Workshop - Apache Kafka Entering The St...
 
Netty training
Netty trainingNetty training
Netty training
 
Faster computation with matlab
Faster computation with matlabFaster computation with matlab
Faster computation with matlab
 
Distributed Tensorflow with Kubernetes - data2day - Jakob Karalus
Distributed Tensorflow with Kubernetes - data2day - Jakob KaralusDistributed Tensorflow with Kubernetes - data2day - Jakob Karalus
Distributed Tensorflow with Kubernetes - data2day - Jakob Karalus
 
Phil Basford - machine learning at scale with aws sage maker
Phil Basford - machine learning at scale with aws sage makerPhil Basford - machine learning at scale with aws sage maker
Phil Basford - machine learning at scale with aws sage maker
 
Machine learning at scale with aws sage maker
Machine learning at scale with aws sage makerMachine learning at scale with aws sage maker
Machine learning at scale with aws sage maker
 
Scaling Up Logging and Metrics
Scaling Up Logging and MetricsScaling Up Logging and Metrics
Scaling Up Logging and Metrics
 
Netty training
Netty trainingNetty training
Netty training
 
Distributed Performance testing by funkload
Distributed Performance testing by funkloadDistributed Performance testing by funkload
Distributed Performance testing by funkload
 
Apache Big Data Europe 2015: Selected Talks
Apache Big Data Europe 2015: Selected TalksApache Big Data Europe 2015: Selected Talks
Apache Big Data Europe 2015: Selected Talks
 
Matopt
MatoptMatopt
Matopt
 
Netflix Data Pipeline With Kafka
Netflix Data Pipeline With KafkaNetflix Data Pipeline With Kafka
Netflix Data Pipeline With Kafka
 

Kürzlich hochgeladen

+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 

Kürzlich hochgeladen (20)

+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verifiedSector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Pharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodologyPharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodology
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 

End to end testing a web application with Clojure

  • 1. End to end performance testing with Clojure
  • 2. About me Gerard Klijs ● @GKlijs ● https://github.com/gklijs ● Java developer with ● Used Kafka several times ● Author of schema_registry_converter ● Living in Papendrecht
  • 3. Contents ● Demo ● Test setup ● Used libraries ● Results comparing linger.ms 0 and 100 ● Questions
  • 4. Bank simulation with end-to-end performance test
  • 5.
  • 6. Overview of the whole system Every yellow component will be explained in details, and are all but the command handler only written in Clojure. We use the schema registry for schema management, also making the messages smaller. All messages will have string as key and avro as value type. Meaning of the colors: ● Orange are the Confluent platform parts ● Yellow are the parts of open bank mark ● Green is an NginX instance ● Light blue are PostgreSQL databases
  • 7.
  • 8. Code example start consuming
  • 10. Topology Common dependency of the other parts. Several functions: ● One way to set the logging for all components. ● All components have knowledge over the topics and data types without needing to connect. ● Will generate Avro object for (de)serialization. ● Functions wrapping the (Java) Kafka Consumer and Producer. ● Functions for dealing with IBAN and UUID.
  • 11.
  • 12. Synchronizer Makes sure both the correct topics and schema’s are set. Checks if it’s possible to set the replication factor to what’s in the config, takes the minimum of the available nodes and the config. Note that this has been used only on a clean Kafka cluster, and there is currently no check for topic properties being correct.
  • 13.
  • 14. Heartbeat Just a simple producer for easy debugging. Used a simple message with just a long value. Exposes and nrepl. A nrepl is a network repl, which can be used to execute code remotely and get the result back. This is a powerful concept, making it possible to apply fixes as the code runs, or interactively solve bugs. With the nrepl the pace of the send messages can be changed.
  • 15.
  • 16. Command generator Consumes the heartbeats and generates a command for each received heartbeat. This will be ConfirmAccountCreation first, as it runs there will be less of these. It rondomly ceates different kinds of ConfirmMoneyTransfer which might fail because it would cause the balance to become below the limit.
  • 17.
  • 19. Command handler Handles the different kinds of command. ● AccountCreationCommand: generates a new iban, if it not already exists creates a balance using the default values, if it does exists gives back an AccountCreationFailed. ● ConfirmMoneyTransfer: if the supplied token is correct, and there is enough money, makes the transfer. Updates both to and form if they are ‘open-bank’ ibans. And creates a BalanceChanged event for each changed balance.
  • 21. GraphQL-endpoint Exposes a GraphQL endpoint to make it easy to issue commands and get the results back in the frontend. All services have there own consumer, and share the producer and the database. ● Transaction service: makes it possible to query or subscribe to balance changed events. ● Account creation service: used to create an account. Will link the username used to log in with the uuid send for the account creation, in order to get the same iban back should the user log in at another time. ● Money transfer service: tries to transfer money, and provides feedback.
  • 22.
  • 23. GraphQL subscriptions using Lacinia-pedestal
  • 24.
  • 25.
  • 27. Frontend The frontend is build on several parts that all end up in a NginX container to be served. ● The javascript part is build using clojurescript, an important part is the re- graph library. For clojurescript re-frame is often used, which uses react to update the dom depending on a global state. Clojurescript is using the Google Closure compiler to reduce the size of the resulting javascript. ● Bulma is used for the css with just the colors set differently and some additional animations. ● The output from the tests are added to NginX to make them easily accessible.
  • 28.
  • 29. Running a test When the test is run it will do several kind of transaction that either increase or lower the money on the balance in such a way as much goes in as goes out after 10 runs. It measures the time till the new balance comes in. During the test the load of the system is increased by using the nrepl of the heartbeat. Increasing the number of heartbeats which in turn will trigger additional commands to be processed. Also during the test using lispyclouds/clj-docker-client both the cpu and memory of parts of the system are measured. Al the data is written into a file so it can be analyzed later on.
  • 30. Test frontend with etaoin using chrome
  • 32.
  • 33. Output a test The generated files can be compared to other files to generate graphs. All the data is combined, and for each point with the same load some statistics are calculated. Most often the mean and the standard error. For different values graphs are generated in the public folder for the frontend so they can be easily viewed. They are available at the background tab at open-bank.
  • 34. Using kixi/stats to prepare the data
  • 35. Using metasoarous/oz to display using vega
  • 36. Example test, difference linger.ms 0 vs 100 linger.ms is an important setting of the kafka producer. Default is 0 for the client, but 100 for kafka streams. Instead of 1 message at a time, multiple are send at a time allowing higher efficiency. Run on 6-core Macbook Pro with for Docker: ● 4 Cpu ● 12 GiB Memory ● 3 GiB Swap
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43. Questions? Code available at open-bank-mark

Hinweis der Redaktion

  1. bla
  2. bla