SlideShare a Scribd company logo
1 of 36
Download to read offline
GATLING
GATLING 
DSLing your System For Scalability Testing Using Gatling 
Sept 23 2014, Dublin Scala User Group
Speaking for ourselves and not our 
employer
Thanks! 
• The Team 
• Gatling Walkthrough 
• Example Results 
• Our App - and what we need 
• and a lab!
The Team
CHRIS 
LAWLESS 
Code Wrangler 
Polygon creator 
KEVIN 
YU WEI XIA 
Code Wrangler 
CIARAN 
Ó HUALLACHÁIN 
Code Wrangler 
FERGAL 
CARROLL 
Code Wrangler 
@phergalkarl 
AMAN KOHLI 
Architect 
@akohli 
BILL MONKS 
Leader in Chief 
@billmonks 
The Team
HACKENBUSH 
We’re Not Experts
Enterprise Mobile 
Many Users, Many Systems 
• > 20k users 
• ~ 20k systems (joke!) 
Lots of different security access 
and systems 
Device plurality 
Many Locations, Many 
Networks
Gatling 
• http://gatling.io | https:// 
github.com/gatling/ 
• Built on Netty + Akka + Scala 
• add to sbt - 
libraryDependencies += 
"io.gatling.highcharts" % "gatling-charts- 
highcharts" % "2.0.0-RC5" 
• Good start http:// 
www.thoughtworks.com/ 
insights/blog/gatling-take-your- 
performance-tests-next-level
Why Gatling 
• Powerful, simple DSL 
scn.users(10).ramp(30).protocolConfig( 
httpConf)! 
• Easy to add security and 
other elements 
• Varying transport support 
• HTTP 
• Websockets 
• JMS 
• We found Jmeter fiddly.
Why Gatling (2) 
• Great Reporting and Charting 
• Active Users, Requests 
• Over time 
• See Example 1 
• walk through Details and 
Global views
Anatomy of a Gatling Script
Example 
Transport, and host 
header cfg
Example 
Transport, and host 
header cfg 
endpoint 
scenario 
name Req Name Method
Example 
Transport, and host 
header cfg
Making it a bit like flod
GITHUB.COM/SPUMKO/FLOD 
$ flod -n 2000 -t 1500 -c 100..1000 -v http://target-place 
! 
!
GITHUB.COM/SPUMKO/FLOD 
num req per 
batch 
range of concurrent request per batch - 
$ flod -n 2000 -t 1500 -c 100..1000 -v http://target-place 
! 
! 
timeout 
“rate”
FLOD OUTPUT 
## 6k page results 
ec2-user@ip-10-199-51-233 node-hapi]$ flod -n 2000 -t 1500 -c 100..1000 -v http://localhost/loremipsum-6k-ish.html 
This is Flod, version 0.2.2 
Copyright 2013 Walmart, http://github.com/spumko/flod 
! 
Benchmarking (hold on)... 
! 
Server Requests/sec Latency (ms) 
--------------------------------------- ------------ --------------- 
http://localhost/loremipsum-6k-ish.html 100 96.48 ± 18.54 
http://localhost/loremipsum-6k-ish.html 200 164.24 ± 17.03 
http://localhost/loremipsum-6k-ish.html 300 263.80 ± 62.44 
http://localhost/loremipsum-6k-ish.html 400 359.61 ± 49.20 
http://localhost/loremipsum-6k-ish.html 500 437.66 ± 58.69 
http://localhost/loremipsum-6k-ish.html 600 481.29 ± 120.04 
http://localhost/loremipsum-6k-ish.html 700 606.74 ± 114.45 
http://localhost/loremipsum-6k-ish.html 800 555.08 ± 133.74 
http://localhost/loremipsum-6k-ish.html 900 674.08 ± 190.91 
http://localhost/loremipsum-6k-ish.html 1000 763.27 ± 69.25 
## running with high timeout - doubling responses times vs nginx direct 
[ec2-user@ip-10-199-51-233 node-hapi]$ ../node_modules/flod/bin/flod -n 2000 -t 4500 -c 100..1000 -v http://localhost:8000 
This is Flod, version 0.2.2 
Copyright 2013 Walmart, http://github.com/spumko/flod 
! 
Benchmarking (hold on)... 
! 
Server Requests/sec Latency (ms) 
--------------------- ------------ ---------------- 
http://localhost:8000 100 200.55 ± 39.40 
http://localhost:8000 200 389.54 ± 67.39 
http://localhost:8000 300 558.14 ± 112.57 
http://localhost:8000 400 777.09 ± 160.01 
http://localhost:8000 500 970.61 ± 305.76 
http://localhost:8000 600 1032.37 ± 274.44 
http://localhost:8000 700 1216.49 ± 249.94 
http://localhost:8000 800 1483.31 ± 690.64 
http://localhost:8000 900 1559.54 ± 805.31 
http://localhost:8000 1000 1909.23 ± 845.81
NQF (not quite Flod)
Results
Random Wait Test 
• 100 users, 100 invocations each 
• ramp to 100 users over 20 seconds 
• Tests took 1 
minute to run 
• 10k requests
Users over Execution
Response Time
Requests and Responses per Second
Our Application 
And what we need
Security Pass 
Sensors Employee Devices 
The Physical World 
THE REFLEKTOR 
Security Services 
AuthZ 
AuthN 
… 
Eventing 
Engine 
Bridge 
Payment 
Services 
Access 
Services 
Printing 
Services 
the Reflektor 
Bridge and New Services 
App Services and 
Resources
thePROXY First Release
THE FLOW 
• The Protocol 
• Security - Gateway Access 
• Federated Identity - kinda
PROTOCOL 
Request 
json body 
target 
headers 
body/post-data 
loginfo 
request = { 
URL = "http://www.citigroup.net/", 
method = "GET", 
timeout = 19500, 
clientInfo = { 
identifier = “…E”, 
model = "iPad Simulator", 
systemName = "iPhone OS", 
systemVersion = "7.1", 
}, 
headers = { 
Accept = "text/html,application/xhtml 
+xml,application/xml;q=0.9,*/*;q=0.8", 
Cookie = "CGPLNG=ENG; JSESSIONID_CGNR3=..”, 
"User-Agent" = "Mozilla/5.0 (iPad; CPU OS 7_1 like 
Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Mobile/ 
11D167" 
}, 
logEntries = [ 
{ 
URL = “https://cinternal.site/target/fooa”, 
downstreamDuration = 656, 
httpMethod = "GET", 
roundtripDuration = 3461, 
statusCode = 200 
} ] 
}
RESPONSE 
body = “<base64>", 
code = 200, 
duration = 31, 
headers = { 
"Accept-Ranges" = [ 
"bytes" 
], 
"Content-Length" = [ 
225 
], 
"Content-Type" = [ 
"text/html" 
], 
Date = [ 
"Thu, 29 May 2014 15:28:29 GMT" 
], 
Etag = [ 
""e1-4e50c74f"" 
], 
"Last-Modified" = [ 
"Sun, 21 Aug 2011 08:52:31 GMT" 
] 
}, 
message = "OK" 
}
Any Questions? 
– Anon.
Lab
Invocation 
• Fixed Endpoint 
• http://cakohli.local:9001/waitfor/500 
• Random Endpoint 
• http://cakohli.local:9001/wait 
• Interleave
Thank you Scala Dublin 
and @gilttech and @greheine and Joe McCarthy (@jmcarthy99) and 
@nounproject
NOUN PROJECTS THANKS 
Smartphone designed by James Fenton from the Noun Project 
! 
Creative Commons – Attribution (CC BY 3.0) 
Identification designed by Mark Shorter from the Noun Project 
Ibeacon designed by Stéphanie Rusch from the 
Nount Project 
! 
Creative Commons – Attribution (CC BY 3.0) 
Arduino designed by uizin from the Noun Project 
!

More Related Content

What's hot

[오픈소스컨설팅] EFK Stack 소개와 설치 방법
[오픈소스컨설팅] EFK Stack 소개와 설치 방법[오픈소스컨설팅] EFK Stack 소개와 설치 방법
[오픈소스컨설팅] EFK Stack 소개와 설치 방법Open Source Consulting
 
Rihards Olups - Zabbix 3.0: Excited for new features?
Rihards Olups -  Zabbix 3.0: Excited for new features?Rihards Olups -  Zabbix 3.0: Excited for new features?
Rihards Olups - Zabbix 3.0: Excited for new features?Zabbix
 
Large Scale Log collection using LogStash & mongoDB
Large Scale Log collection using LogStash & mongoDB Large Scale Log collection using LogStash & mongoDB
Large Scale Log collection using LogStash & mongoDB Gaurav Bhardwaj
 
Massively Scaled High Performance Web Services with PHP
Massively Scaled High Performance Web Services with PHPMassively Scaled High Performance Web Services with PHP
Massively Scaled High Performance Web Services with PHPDemin Yin
 
DevOps tools for everyone - Vagrant, Puppet and Webmin
DevOps tools for everyone - Vagrant, Puppet and WebminDevOps tools for everyone - Vagrant, Puppet and Webmin
DevOps tools for everyone - Vagrant, Puppet and Webminpostrational
 
Automated Application Management with SaltStack
Automated Application Management with SaltStackAutomated Application Management with SaltStack
Automated Application Management with SaltStackinovex GmbH
 
ChinaNetCloud - The Zabbix Database - Zabbix Conference 2014
ChinaNetCloud - The Zabbix Database - Zabbix Conference 2014ChinaNetCloud - The Zabbix Database - Zabbix Conference 2014
ChinaNetCloud - The Zabbix Database - Zabbix Conference 2014ChinaNetCloud
 
Ruby/rails performance and profiling
Ruby/rails performance and profilingRuby/rails performance and profiling
Ruby/rails performance and profilingDanny Guinther
 
Ansible with AWS
Ansible with AWSAnsible with AWS
Ansible with AWSAllan Denot
 
CRX2Oak - all the secrets of repository migration
CRX2Oak - all the secrets of repository migrationCRX2Oak - all the secrets of repository migration
CRX2Oak - all the secrets of repository migrationTomasz Rękawek
 
잘 키운 모노리스 하나 열 마이크로서비스 안 부럽다
잘 키운 모노리스 하나 열 마이크로서비스 안 부럽다잘 키운 모노리스 하나 열 마이크로서비스 안 부럽다
잘 키운 모노리스 하나 열 마이크로서비스 안 부럽다Arawn Park
 
openstack源码分析(1)
openstack源码分析(1)openstack源码分析(1)
openstack源码分析(1)cannium
 
Network Automation: Ansible 102
Network Automation: Ansible 102Network Automation: Ansible 102
Network Automation: Ansible 102APNIC
 
Using SaltStack to orchestrate microservices in application containers at Sal...
Using SaltStack to orchestrate microservices in application containers at Sal...Using SaltStack to orchestrate microservices in application containers at Sal...
Using SaltStack to orchestrate microservices in application containers at Sal...Love Nyberg
 
Kraken Front-Trends
Kraken Front-TrendsKraken Front-Trends
Kraken Front-TrendsPayPal
 
WebCamp 2016: DevOps. Николай Дойков: Опыт создания клауда для потокового вид...
WebCamp 2016: DevOps. Николай Дойков: Опыт создания клауда для потокового вид...WebCamp 2016: DevOps. Николай Дойков: Опыт создания клауда для потокового вид...
WebCamp 2016: DevOps. Николай Дойков: Опыт создания клауда для потокового вид...WebCamp
 

What's hot (20)

[오픈소스컨설팅] EFK Stack 소개와 설치 방법
[오픈소스컨설팅] EFK Stack 소개와 설치 방법[오픈소스컨설팅] EFK Stack 소개와 설치 방법
[오픈소스컨설팅] EFK Stack 소개와 설치 방법
 
Rihards Olups - Zabbix 3.0: Excited for new features?
Rihards Olups -  Zabbix 3.0: Excited for new features?Rihards Olups -  Zabbix 3.0: Excited for new features?
Rihards Olups - Zabbix 3.0: Excited for new features?
 
Large Scale Log collection using LogStash & mongoDB
Large Scale Log collection using LogStash & mongoDB Large Scale Log collection using LogStash & mongoDB
Large Scale Log collection using LogStash & mongoDB
 
Massively Scaled High Performance Web Services with PHP
Massively Scaled High Performance Web Services with PHPMassively Scaled High Performance Web Services with PHP
Massively Scaled High Performance Web Services with PHP
 
DevOps tools for everyone - Vagrant, Puppet and Webmin
DevOps tools for everyone - Vagrant, Puppet and WebminDevOps tools for everyone - Vagrant, Puppet and Webmin
DevOps tools for everyone - Vagrant, Puppet and Webmin
 
Automated Application Management with SaltStack
Automated Application Management with SaltStackAutomated Application Management with SaltStack
Automated Application Management with SaltStack
 
ChinaNetCloud - The Zabbix Database - Zabbix Conference 2014
ChinaNetCloud - The Zabbix Database - Zabbix Conference 2014ChinaNetCloud - The Zabbix Database - Zabbix Conference 2014
ChinaNetCloud - The Zabbix Database - Zabbix Conference 2014
 
Cyansible
CyansibleCyansible
Cyansible
 
Celery introduction
Celery introductionCelery introduction
Celery introduction
 
Ruby/rails performance and profiling
Ruby/rails performance and profilingRuby/rails performance and profiling
Ruby/rails performance and profiling
 
Ansible with AWS
Ansible with AWSAnsible with AWS
Ansible with AWS
 
CRX2Oak - all the secrets of repository migration
CRX2Oak - all the secrets of repository migrationCRX2Oak - all the secrets of repository migration
CRX2Oak - all the secrets of repository migration
 
ESIGate dev meeting #4 21-11-2013
ESIGate dev meeting #4 21-11-2013ESIGate dev meeting #4 21-11-2013
ESIGate dev meeting #4 21-11-2013
 
잘 키운 모노리스 하나 열 마이크로서비스 안 부럽다
잘 키운 모노리스 하나 열 마이크로서비스 안 부럽다잘 키운 모노리스 하나 열 마이크로서비스 안 부럽다
잘 키운 모노리스 하나 열 마이크로서비스 안 부럽다
 
openstack源码分析(1)
openstack源码分析(1)openstack源码分析(1)
openstack源码分析(1)
 
Network Automation: Ansible 102
Network Automation: Ansible 102Network Automation: Ansible 102
Network Automation: Ansible 102
 
OHHttpStubs
OHHttpStubsOHHttpStubs
OHHttpStubs
 
Using SaltStack to orchestrate microservices in application containers at Sal...
Using SaltStack to orchestrate microservices in application containers at Sal...Using SaltStack to orchestrate microservices in application containers at Sal...
Using SaltStack to orchestrate microservices in application containers at Sal...
 
Kraken Front-Trends
Kraken Front-TrendsKraken Front-Trends
Kraken Front-Trends
 
WebCamp 2016: DevOps. Николай Дойков: Опыт создания клауда для потокового вид...
WebCamp 2016: DevOps. Николай Дойков: Опыт создания клауда для потокового вид...WebCamp 2016: DevOps. Николай Дойков: Опыт создания клауда для потокового вид...
WebCamp 2016: DevOps. Николай Дойков: Опыт создания клауда для потокового вид...
 

Viewers also liked

Gatling - Stress test tool
Gatling - Stress test toolGatling - Stress test tool
Gatling - Stress test toolKnoldus Inc.
 
Cómo testear performance sin morir en el intento
Cómo testear performance sin morir en el intentoCómo testear performance sin morir en el intento
Cómo testear performance sin morir en el intentoDiego Cardozo
 
Evento TestingUY 2014 - Testing para Todos: proyecto Nahual
Evento TestingUY 2014 - Testing para Todos: proyecto NahualEvento TestingUY 2014 - Testing para Todos: proyecto Nahual
Evento TestingUY 2014 - Testing para Todos: proyecto NahualTestingUy
 
Meetup TestingUY 2016 - Performance durante y después - Federico Toledo
Meetup TestingUY 2016 - Performance durante y después - Federico ToledoMeetup TestingUY 2016 - Performance durante y después - Federico Toledo
Meetup TestingUY 2016 - Performance durante y después - Federico ToledoFederico Toledo
 
Meetup TestingUY 2016: Adopting testing in a cross-functional team
Meetup TestingUY 2016: Adopting testing in a cross-functional teamMeetup TestingUY 2016: Adopting testing in a cross-functional team
Meetup TestingUY 2016: Adopting testing in a cross-functional teamClaudia Badell
 
Gatling - oružje u redovima performansnog testiranja
Gatling - oružje u redovima performansnog testiranjaGatling - oružje u redovima performansnog testiranja
Gatling - oružje u redovima performansnog testiranjaA. Kranjec
 
Charla evento TestingUY 2016 - Muerte ágil del tester - Federico Toledo y Gab...
Charla evento TestingUY 2016 - Muerte ágil del tester - Federico Toledo y Gab...Charla evento TestingUY 2016 - Muerte ágil del tester - Federico Toledo y Gab...
Charla evento TestingUY 2016 - Muerte ágil del tester - Federico Toledo y Gab...Federico Toledo
 
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source Tools
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source ToolsTYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source Tools
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source ToolsMichael Lihs
 
Automated Testing Talk from Meet Magento New York 2014
Automated Testing Talk from Meet Magento New York 2014Automated Testing Talk from Meet Magento New York 2014
Automated Testing Talk from Meet Magento New York 2014Joshua Warren
 
Continuous performance: Load testing for developers with gatling
Continuous performance: Load testing for developers with gatlingContinuous performance: Load testing for developers with gatling
Continuous performance: Load testing for developers with gatlingTim van Eijndhoven
 
Gatling Tool in Action at DevoxxFR 2012
Gatling Tool in Action at DevoxxFR 2012Gatling Tool in Action at DevoxxFR 2012
Gatling Tool in Action at DevoxxFR 2012slandelle
 
Performance and stability testing \w Gatling
Performance and stability testing \w GatlingPerformance and stability testing \w Gatling
Performance and stability testing \w GatlingDmitry Vrublevsky
 
TestWorks Conf Performance testing made easy with gatling - Guillaume Corré
TestWorks Conf Performance testing made easy with gatling - Guillaume CorréTestWorks Conf Performance testing made easy with gatling - Guillaume Corré
TestWorks Conf Performance testing made easy with gatling - Guillaume CorréXebia Nederland BV
 
Meetup TestingUY 2017 - Integración Continua con Jenkins + Taurus
Meetup TestingUY 2017 - Integración Continua con Jenkins + TaurusMeetup TestingUY 2017 - Integración Continua con Jenkins + Taurus
Meetup TestingUY 2017 - Integración Continua con Jenkins + TaurusTestingUy
 
Taller evento TestingUY 2016 - Probando la experiencia de usuario
Taller evento TestingUY 2016 - Probando la experiencia de usuarioTaller evento TestingUY 2016 - Probando la experiencia de usuario
Taller evento TestingUY 2016 - Probando la experiencia de usuarioTestingUy
 
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 2012slandelle
 
Hands On, Duchess 10/17/2012
Hands On, Duchess 10/17/2012Hands On, Duchess 10/17/2012
Hands On, Duchess 10/17/2012slandelle
 
Gatling @ Scala.Io 2013
Gatling @ Scala.Io 2013Gatling @ Scala.Io 2013
Gatling @ Scala.Io 2013slandelle
 
Démo Gatling au Performance User Group de Casablanca - 25 sept 2014
Démo Gatling au Performance User Group de Casablanca - 25 sept 2014Démo Gatling au Performance User Group de Casablanca - 25 sept 2014
Démo Gatling au Performance User Group de Casablanca - 25 sept 2014Benoît de CHATEAUVIEUX
 

Viewers also liked (20)

Gatling - Stress test tool
Gatling - Stress test toolGatling - Stress test tool
Gatling - Stress test tool
 
Cómo testear performance sin morir en el intento
Cómo testear performance sin morir en el intentoCómo testear performance sin morir en el intento
Cómo testear performance sin morir en el intento
 
Evento TestingUY 2014 - Testing para Todos: proyecto Nahual
Evento TestingUY 2014 - Testing para Todos: proyecto NahualEvento TestingUY 2014 - Testing para Todos: proyecto Nahual
Evento TestingUY 2014 - Testing para Todos: proyecto Nahual
 
Meetup TestingUY 2016 - Performance durante y después - Federico Toledo
Meetup TestingUY 2016 - Performance durante y después - Federico ToledoMeetup TestingUY 2016 - Performance durante y después - Federico Toledo
Meetup TestingUY 2016 - Performance durante y después - Federico Toledo
 
Meetup TestingUY 2016: Adopting testing in a cross-functional team
Meetup TestingUY 2016: Adopting testing in a cross-functional teamMeetup TestingUY 2016: Adopting testing in a cross-functional team
Meetup TestingUY 2016: Adopting testing in a cross-functional team
 
Gatling - oružje u redovima performansnog testiranja
Gatling - oružje u redovima performansnog testiranjaGatling - oružje u redovima performansnog testiranja
Gatling - oružje u redovima performansnog testiranja
 
Charla evento TestingUY 2016 - Muerte ágil del tester - Federico Toledo y Gab...
Charla evento TestingUY 2016 - Muerte ágil del tester - Federico Toledo y Gab...Charla evento TestingUY 2016 - Muerte ágil del tester - Federico Toledo y Gab...
Charla evento TestingUY 2016 - Muerte ágil del tester - Federico Toledo y Gab...
 
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source Tools
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source ToolsTYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source Tools
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source Tools
 
Automated Testing Talk from Meet Magento New York 2014
Automated Testing Talk from Meet Magento New York 2014Automated Testing Talk from Meet Magento New York 2014
Automated Testing Talk from Meet Magento New York 2014
 
Continuous performance: Load testing for developers with gatling
Continuous performance: Load testing for developers with gatlingContinuous performance: Load testing for developers with gatling
Continuous performance: Load testing for developers with gatling
 
Gatling Tool in Action at DevoxxFR 2012
Gatling Tool in Action at DevoxxFR 2012Gatling Tool in Action at DevoxxFR 2012
Gatling Tool in Action at DevoxxFR 2012
 
Performance and stability testing \w Gatling
Performance and stability testing \w GatlingPerformance and stability testing \w Gatling
Performance and stability testing \w Gatling
 
TestWorks Conf Performance testing made easy with gatling - Guillaume Corré
TestWorks Conf Performance testing made easy with gatling - Guillaume CorréTestWorks Conf Performance testing made easy with gatling - Guillaume Corré
TestWorks Conf Performance testing made easy with gatling - Guillaume Corré
 
Las palmas devops: Pruebas de carga web
Las palmas devops: Pruebas de carga webLas palmas devops: Pruebas de carga web
Las palmas devops: Pruebas de carga web
 
Meetup TestingUY 2017 - Integración Continua con Jenkins + Taurus
Meetup TestingUY 2017 - Integración Continua con Jenkins + TaurusMeetup TestingUY 2017 - Integración Continua con Jenkins + Taurus
Meetup TestingUY 2017 - Integración Continua con Jenkins + Taurus
 
Taller evento TestingUY 2016 - Probando la experiencia de usuario
Taller evento TestingUY 2016 - Probando la experiencia de usuarioTaller evento TestingUY 2016 - Probando la experiencia de usuario
Taller evento TestingUY 2016 - Probando la experiencia de usuario
 
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
 
Hands On, Duchess 10/17/2012
Hands On, Duchess 10/17/2012Hands On, Duchess 10/17/2012
Hands On, Duchess 10/17/2012
 
Gatling @ Scala.Io 2013
Gatling @ Scala.Io 2013Gatling @ Scala.Io 2013
Gatling @ Scala.Io 2013
 
Démo Gatling au Performance User Group de Casablanca - 25 sept 2014
Démo Gatling au Performance User Group de Casablanca - 25 sept 2014Démo Gatling au Performance User Group de Casablanca - 25 sept 2014
Démo Gatling au Performance User Group de Casablanca - 25 sept 2014
 

Similar to DSLing your System For Scalability Testing Using Gatling - Dublin Scala User Group

Being HAPI! Reverse Proxying on Purpose
Being HAPI! Reverse Proxying on PurposeBeing HAPI! Reverse Proxying on Purpose
Being HAPI! Reverse Proxying on PurposeAman Kohli
 
Presto anatomy
Presto anatomyPresto anatomy
Presto anatomyDongmin Yu
 
The Real World - Plugging the Enterprise Into It (nodejs)
The Real World - Plugging  the Enterprise Into It (nodejs)The Real World - Plugging  the Enterprise Into It (nodejs)
The Real World - Plugging the Enterprise Into It (nodejs)Aman Kohli
 
Session: A Reference Architecture for Running Modern APIs with NGINX Unit and...
Session: A Reference Architecture for Running Modern APIs with NGINX Unit and...Session: A Reference Architecture for Running Modern APIs with NGINX Unit and...
Session: A Reference Architecture for Running Modern APIs with NGINX Unit and...NGINX, Inc.
 
"Swoole: double troubles in c", Alexandr Vronskiy
"Swoole: double troubles in c", Alexandr Vronskiy"Swoole: double troubles in c", Alexandr Vronskiy
"Swoole: double troubles in c", Alexandr VronskiyFwdays
 
Designing High Performance RTC Signaling Servers
Designing High Performance RTC Signaling ServersDesigning High Performance RTC Signaling Servers
Designing High Performance RTC Signaling ServersDaniel-Constantin Mierla
 
SaltConf14 - Eric johnson, Google - Orchestrating Google Compute Engine with ...
SaltConf14 - Eric johnson, Google - Orchestrating Google Compute Engine with ...SaltConf14 - Eric johnson, Google - Orchestrating Google Compute Engine with ...
SaltConf14 - Eric johnson, Google - Orchestrating Google Compute Engine with ...SaltStack
 
Docker Logging and analysing with Elastic Stack - Jakub Hajek
Docker Logging and analysing with Elastic Stack - Jakub Hajek Docker Logging and analysing with Elastic Stack - Jakub Hajek
Docker Logging and analysing with Elastic Stack - Jakub Hajek PROIDEA
 
Docker Logging and analysing with Elastic Stack
Docker Logging and analysing with Elastic StackDocker Logging and analysing with Elastic Stack
Docker Logging and analysing with Elastic StackJakub Hajek
 
gRPC with Scala and Swift
gRPC with Scala and SwiftgRPC with Scala and Swift
gRPC with Scala and SwiftMarkus Jura
 
[245] presto 내부구조 파헤치기
[245] presto 내부구조 파헤치기[245] presto 내부구조 파헤치기
[245] presto 내부구조 파헤치기NAVER D2
 
Composing re-useable ETL on Hadoop
Composing re-useable ETL on HadoopComposing re-useable ETL on Hadoop
Composing re-useable ETL on HadoopPaul Lam
 
Original slides from Ryan Dahl's NodeJs intro talk
Original slides from Ryan Dahl's NodeJs intro talkOriginal slides from Ryan Dahl's NodeJs intro talk
Original slides from Ryan Dahl's NodeJs intro talkAarti Parikh
 
Introduction to Vert.x
Introduction to Vert.xIntroduction to Vert.x
Introduction to Vert.xYiguang Hu
 
Real-Time Python Web: Gevent and Socket.io
Real-Time Python Web: Gevent and Socket.ioReal-Time Python Web: Gevent and Socket.io
Real-Time Python Web: Gevent and Socket.ioRick Copeland
 
Nodejs and WebSockets
Nodejs and WebSocketsNodejs and WebSockets
Nodejs and WebSocketsGonzalo Ayuso
 
Cape Cod Web Technology Meetup - 2
Cape Cod Web Technology Meetup - 2Cape Cod Web Technology Meetup - 2
Cape Cod Web Technology Meetup - 2Asher Martin
 

Similar to DSLing your System For Scalability Testing Using Gatling - Dublin Scala User Group (20)

Being HAPI! Reverse Proxying on Purpose
Being HAPI! Reverse Proxying on PurposeBeing HAPI! Reverse Proxying on Purpose
Being HAPI! Reverse Proxying on Purpose
 
Into The Box 2018 Ortus Keynote
Into The Box 2018 Ortus KeynoteInto The Box 2018 Ortus Keynote
Into The Box 2018 Ortus Keynote
 
Presto anatomy
Presto anatomyPresto anatomy
Presto anatomy
 
The Real World - Plugging the Enterprise Into It (nodejs)
The Real World - Plugging  the Enterprise Into It (nodejs)The Real World - Plugging  the Enterprise Into It (nodejs)
The Real World - Plugging the Enterprise Into It (nodejs)
 
Session: A Reference Architecture for Running Modern APIs with NGINX Unit and...
Session: A Reference Architecture for Running Modern APIs with NGINX Unit and...Session: A Reference Architecture for Running Modern APIs with NGINX Unit and...
Session: A Reference Architecture for Running Modern APIs with NGINX Unit and...
 
"Swoole: double troubles in c", Alexandr Vronskiy
"Swoole: double troubles in c", Alexandr Vronskiy"Swoole: double troubles in c", Alexandr Vronskiy
"Swoole: double troubles in c", Alexandr Vronskiy
 
Designing High Performance RTC Signaling Servers
Designing High Performance RTC Signaling ServersDesigning High Performance RTC Signaling Servers
Designing High Performance RTC Signaling Servers
 
SaltConf14 - Eric johnson, Google - Orchestrating Google Compute Engine with ...
SaltConf14 - Eric johnson, Google - Orchestrating Google Compute Engine with ...SaltConf14 - Eric johnson, Google - Orchestrating Google Compute Engine with ...
SaltConf14 - Eric johnson, Google - Orchestrating Google Compute Engine with ...
 
Docker Logging and analysing with Elastic Stack - Jakub Hajek
Docker Logging and analysing with Elastic Stack - Jakub Hajek Docker Logging and analysing with Elastic Stack - Jakub Hajek
Docker Logging and analysing with Elastic Stack - Jakub Hajek
 
Docker Logging and analysing with Elastic Stack
Docker Logging and analysing with Elastic StackDocker Logging and analysing with Elastic Stack
Docker Logging and analysing with Elastic Stack
 
gRPC with Scala and Swift
gRPC with Scala and SwiftgRPC with Scala and Swift
gRPC with Scala and Swift
 
[245] presto 내부구조 파헤치기
[245] presto 내부구조 파헤치기[245] presto 내부구조 파헤치기
[245] presto 내부구조 파헤치기
 
Composing re-useable ETL on Hadoop
Composing re-useable ETL on HadoopComposing re-useable ETL on Hadoop
Composing re-useable ETL on Hadoop
 
Original slides from Ryan Dahl's NodeJs intro talk
Original slides from Ryan Dahl's NodeJs intro talkOriginal slides from Ryan Dahl's NodeJs intro talk
Original slides from Ryan Dahl's NodeJs intro talk
 
Rack
RackRack
Rack
 
Introduction to Vert.x
Introduction to Vert.xIntroduction to Vert.x
Introduction to Vert.x
 
The HTML5 WebSocket API
The HTML5 WebSocket APIThe HTML5 WebSocket API
The HTML5 WebSocket API
 
Real-Time Python Web: Gevent and Socket.io
Real-Time Python Web: Gevent and Socket.ioReal-Time Python Web: Gevent and Socket.io
Real-Time Python Web: Gevent and Socket.io
 
Nodejs and WebSockets
Nodejs and WebSocketsNodejs and WebSockets
Nodejs and WebSockets
 
Cape Cod Web Technology Meetup - 2
Cape Cod Web Technology Meetup - 2Cape Cod Web Technology Meetup - 2
Cape Cod Web Technology Meetup - 2
 

More from Aman Kohli

New Payments Architectures and Infrastructures
New Payments Architectures and Infrastructures New Payments Architectures and Infrastructures
New Payments Architectures and Infrastructures Aman Kohli
 
Decentralisation - DISTRIBUTED COMPUTING ON A MASSIVE SCALE
Decentralisation - DISTRIBUTED COMPUTING ON A MASSIVE SCALEDecentralisation - DISTRIBUTED COMPUTING ON A MASSIVE SCALE
Decentralisation - DISTRIBUTED COMPUTING ON A MASSIVE SCALEAman Kohli
 
Mobile trends 2013
Mobile trends 2013Mobile trends 2013
Mobile trends 2013Aman Kohli
 
What's Next: Talk to ITT Tallaght Final Year Computing Graduates
What's Next: Talk to ITT Tallaght Final Year Computing GraduatesWhat's Next: Talk to ITT Tallaght Final Year Computing Graduates
What's Next: Talk to ITT Tallaght Final Year Computing GraduatesAman Kohli
 
Greasing The Wheels
Greasing The WheelsGreasing The Wheels
Greasing The WheelsAman Kohli
 
Frayed Edges - Architecture In Practice
Frayed Edges - Architecture In PracticeFrayed Edges - Architecture In Practice
Frayed Edges - Architecture In PracticeAman Kohli
 

More from Aman Kohli (6)

New Payments Architectures and Infrastructures
New Payments Architectures and Infrastructures New Payments Architectures and Infrastructures
New Payments Architectures and Infrastructures
 
Decentralisation - DISTRIBUTED COMPUTING ON A MASSIVE SCALE
Decentralisation - DISTRIBUTED COMPUTING ON A MASSIVE SCALEDecentralisation - DISTRIBUTED COMPUTING ON A MASSIVE SCALE
Decentralisation - DISTRIBUTED COMPUTING ON A MASSIVE SCALE
 
Mobile trends 2013
Mobile trends 2013Mobile trends 2013
Mobile trends 2013
 
What's Next: Talk to ITT Tallaght Final Year Computing Graduates
What's Next: Talk to ITT Tallaght Final Year Computing GraduatesWhat's Next: Talk to ITT Tallaght Final Year Computing Graduates
What's Next: Talk to ITT Tallaght Final Year Computing Graduates
 
Greasing The Wheels
Greasing The WheelsGreasing The Wheels
Greasing The Wheels
 
Frayed Edges - Architecture In Practice
Frayed Edges - Architecture In PracticeFrayed Edges - Architecture In Practice
Frayed Edges - Architecture In Practice
 

Recently uploaded

Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024The Digital Insurer
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024SynarionITSolutions
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 

Recently uploaded (20)

Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 

DSLing your System For Scalability Testing Using Gatling - Dublin Scala User Group

  • 2. GATLING DSLing your System For Scalability Testing Using Gatling Sept 23 2014, Dublin Scala User Group
  • 3. Speaking for ourselves and not our employer
  • 4. Thanks! • The Team • Gatling Walkthrough • Example Results • Our App - and what we need • and a lab!
  • 6. CHRIS LAWLESS Code Wrangler Polygon creator KEVIN YU WEI XIA Code Wrangler CIARAN Ó HUALLACHÁIN Code Wrangler FERGAL CARROLL Code Wrangler @phergalkarl AMAN KOHLI Architect @akohli BILL MONKS Leader in Chief @billmonks The Team
  • 8. Enterprise Mobile Many Users, Many Systems • > 20k users • ~ 20k systems (joke!) Lots of different security access and systems Device plurality Many Locations, Many Networks
  • 9. Gatling • http://gatling.io | https:// github.com/gatling/ • Built on Netty + Akka + Scala • add to sbt - libraryDependencies += "io.gatling.highcharts" % "gatling-charts- highcharts" % "2.0.0-RC5" • Good start http:// www.thoughtworks.com/ insights/blog/gatling-take-your- performance-tests-next-level
  • 10. Why Gatling • Powerful, simple DSL scn.users(10).ramp(30).protocolConfig( httpConf)! • Easy to add security and other elements • Varying transport support • HTTP • Websockets • JMS • We found Jmeter fiddly.
  • 11. Why Gatling (2) • Great Reporting and Charting • Active Users, Requests • Over time • See Example 1 • walk through Details and Global views
  • 12. Anatomy of a Gatling Script
  • 13. Example Transport, and host header cfg
  • 14. Example Transport, and host header cfg endpoint scenario name Req Name Method
  • 15. Example Transport, and host header cfg
  • 16. Making it a bit like flod
  • 17. GITHUB.COM/SPUMKO/FLOD $ flod -n 2000 -t 1500 -c 100..1000 -v http://target-place ! !
  • 18. GITHUB.COM/SPUMKO/FLOD num req per batch range of concurrent request per batch - $ flod -n 2000 -t 1500 -c 100..1000 -v http://target-place ! ! timeout “rate”
  • 19. FLOD OUTPUT ## 6k page results ec2-user@ip-10-199-51-233 node-hapi]$ flod -n 2000 -t 1500 -c 100..1000 -v http://localhost/loremipsum-6k-ish.html This is Flod, version 0.2.2 Copyright 2013 Walmart, http://github.com/spumko/flod ! Benchmarking (hold on)... ! Server Requests/sec Latency (ms) --------------------------------------- ------------ --------------- http://localhost/loremipsum-6k-ish.html 100 96.48 ± 18.54 http://localhost/loremipsum-6k-ish.html 200 164.24 ± 17.03 http://localhost/loremipsum-6k-ish.html 300 263.80 ± 62.44 http://localhost/loremipsum-6k-ish.html 400 359.61 ± 49.20 http://localhost/loremipsum-6k-ish.html 500 437.66 ± 58.69 http://localhost/loremipsum-6k-ish.html 600 481.29 ± 120.04 http://localhost/loremipsum-6k-ish.html 700 606.74 ± 114.45 http://localhost/loremipsum-6k-ish.html 800 555.08 ± 133.74 http://localhost/loremipsum-6k-ish.html 900 674.08 ± 190.91 http://localhost/loremipsum-6k-ish.html 1000 763.27 ± 69.25 ## running with high timeout - doubling responses times vs nginx direct [ec2-user@ip-10-199-51-233 node-hapi]$ ../node_modules/flod/bin/flod -n 2000 -t 4500 -c 100..1000 -v http://localhost:8000 This is Flod, version 0.2.2 Copyright 2013 Walmart, http://github.com/spumko/flod ! Benchmarking (hold on)... ! Server Requests/sec Latency (ms) --------------------- ------------ ---------------- http://localhost:8000 100 200.55 ± 39.40 http://localhost:8000 200 389.54 ± 67.39 http://localhost:8000 300 558.14 ± 112.57 http://localhost:8000 400 777.09 ± 160.01 http://localhost:8000 500 970.61 ± 305.76 http://localhost:8000 600 1032.37 ± 274.44 http://localhost:8000 700 1216.49 ± 249.94 http://localhost:8000 800 1483.31 ± 690.64 http://localhost:8000 900 1559.54 ± 805.31 http://localhost:8000 1000 1909.23 ± 845.81
  • 20. NQF (not quite Flod)
  • 22. Random Wait Test • 100 users, 100 invocations each • ramp to 100 users over 20 seconds • Tests took 1 minute to run • 10k requests
  • 26. Our Application And what we need
  • 27. Security Pass Sensors Employee Devices The Physical World THE REFLEKTOR Security Services AuthZ AuthN … Eventing Engine Bridge Payment Services Access Services Printing Services the Reflektor Bridge and New Services App Services and Resources
  • 29. THE FLOW • The Protocol • Security - Gateway Access • Federated Identity - kinda
  • 30. PROTOCOL Request json body target headers body/post-data loginfo request = { URL = "http://www.citigroup.net/", method = "GET", timeout = 19500, clientInfo = { identifier = “…E”, model = "iPad Simulator", systemName = "iPhone OS", systemVersion = "7.1", }, headers = { Accept = "text/html,application/xhtml +xml,application/xml;q=0.9,*/*;q=0.8", Cookie = "CGPLNG=ENG; JSESSIONID_CGNR3=..”, "User-Agent" = "Mozilla/5.0 (iPad; CPU OS 7_1 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Mobile/ 11D167" }, logEntries = [ { URL = “https://cinternal.site/target/fooa”, downstreamDuration = 656, httpMethod = "GET", roundtripDuration = 3461, statusCode = 200 } ] }
  • 31. RESPONSE body = “<base64>", code = 200, duration = 31, headers = { "Accept-Ranges" = [ "bytes" ], "Content-Length" = [ 225 ], "Content-Type" = [ "text/html" ], Date = [ "Thu, 29 May 2014 15:28:29 GMT" ], Etag = [ ""e1-4e50c74f"" ], "Last-Modified" = [ "Sun, 21 Aug 2011 08:52:31 GMT" ] }, message = "OK" }
  • 33. Lab
  • 34. Invocation • Fixed Endpoint • http://cakohli.local:9001/waitfor/500 • Random Endpoint • http://cakohli.local:9001/wait • Interleave
  • 35. Thank you Scala Dublin and @gilttech and @greheine and Joe McCarthy (@jmcarthy99) and @nounproject
  • 36. NOUN PROJECTS THANKS Smartphone designed by James Fenton from the Noun Project ! Creative Commons – Attribution (CC BY 3.0) Identification designed by Mark Shorter from the Noun Project Ibeacon designed by Stéphanie Rusch from the Nount Project ! Creative Commons – Attribution (CC BY 3.0) Arduino designed by uizin from the Noun Project !