The JPetStore Suite: A Concise Experiment Setup for Research SSP 2018, Hildesheim Reiner Jung & Marc Adolf 9 th November 2018
Experimental Evaluation U Evaluation of ‚ methods ‚ approaches ‚ techniques ‚ tooling for software qualities Reiner Jung 2 / 15
Experimental Evaluation U Evaluation of ‚ methods Workload Driver ‚ approaches ‚ techniques ‚ tooling for software qualities Application Observation & Analysis Reiner Jung 2 / 15
Lack of a complete experiment suites U SPECjbb Benchmark Netflix Reiner Jung 3 / 15
Requirements U 1. Experiment documentation 2. Experiment setup ‚ Software System & setup instructions ‚ Workload drivers & documentation ‚ Working scenarios which are easy to setup up 3. Tests to support setup 4. Instrumentation examples 5. Different deployments/architectures Reiner Jung 4 / 15
What to do? U ‚ Extend a big widely used case study? ‚ too complicated for a first example ‚ there is no widely USED case study ‚ Use a small open source application? ‚ but small examples are only single service architectures Reiner Jung 5 / 15
JPetStore U Reiner Jung 6 / 15
Distributed JPetStore U <<host>> <<container>> Experiment Host Account <<container>> <<service>> Event <<container>> Collector <<service>> Catalog Database <<service>> Workload <<container>> Driver Order Reiner Jung 7 / 15
Distributed JPetStore U <<host>> <<container>> Experiment Host Account <<container>> <<service>> Event <<container>> Collector <<service>> Catalog Database <<service>> <<service>> Workload Workload <<container>> Driver Driver Order Reiner Jung 7 / 15
Distributed JPetStore U <<host>> <<container>> Experiment Host Account <<container>> <<service>> Event <<container>> Collector <<service>> Catalog Database <<service>> Workload <<container>> Driver Order Reiner Jung 7 / 15
Distributed JPetStore U <<host>> <<container>> Experiment Host Account Account <<container>> <<service>> Event <<container>> Collector <<service>> Catalog Catalog Database <<service>> Workload <<container>> Driver Order Order Reiner Jung 7 / 15
Distributed JPetStore U <<host>> <<container>> Experiment Host Account <<container>> <<service>> Event <<container>> Collector <<service>> <<service>> Catalog Database Database <<service>> Workload <<container>> Driver Order Reiner Jung 7 / 15
Distributed JPetStore U <<host>> <<container>> Experiment Host Account <<container>> <<service>> <<service>> Event Event <<container>> Collector Collector <<service>> Catalog Database <<service>> Workload <<container>> Driver Order Reiner Jung 7 / 15
Distributed JPetStore U <<host>> <<container>> Experiment Host Account <<container>> <<service>> Event <<container>> Collector <<service>> Catalog Database <<service>> Workload <<container>> Driver Order single-jpetstore-iobserve single-jpetstore-kieker single-jpetstore master distributed-jpetstore distributed-jpetstore-kieker distributed-jpetstore-iobserve Reiner Jung 7 / 15
Page Graph U viewCategory, viewProduct, viewItem viewCategory Init Catalog addItemToCart, viewCart editAccount, viewCart, signon, listOrders newOrder=continue signoff viewCart Order editAccount, signon, newOrderForm signoff Account editAccount, signon, Cart signoff signoff, removeItemFromCart, editAccount viewCart, updateCartQuantities Reiner Jung 8 / 15
activityDelay : 1 webDriverConfiguration : baseUrl : http://172.18.0.5:8080/jpetstore-frontend/ type : org.iobserve.selenium.behavior.ChromeDriverFactory driver : /home/reiner/iObserve/experiments/tools/chromedriver timeout : 60000 ... workloads : ... behaviors : ... Workload Driver – Setup U Reiner Jung 9 / 15
workloads : - name : AccountManager intensity : type : org.iobserve.selenium.configuration. ConstantWorkloadIntensity name : AccountManager spawnPerSecond : 0.1 durations : [ 100, 50 ] delays : [ 50, 50 ] Workload Driver – Setup U Reiner Jung 10 / 15
password : "j2ee" username : "j2ee" value : "Christian-Albrechts-Platz 4" attribute : ADDRESS2 parameters : repetition : { min: 1, max: 10 } - name : ChangeAccountInformationTask parameters : repetition : { min: 1, max: 20 } - name : LoginJPetStoreTask subbehaviors : activityDelay : 2 name : AccountManager AccountManager: behaviors : - name : ViewOrderTask Workload Driver – Setup U Reiner Jung 11 / 15
bin/selenium-workloads.sh -c workload-file.yaml \ -d /home/reiner/iObserve/experiments/tools/chromedriver \ -u http://172.17.0.2:8080/jpetstore-frontend/ # -d and -u are optional and overwrite workload settings Workload Driver – Usage & Extension U Run a workload Extending workloads 1. Configuration class IWorkloadIntensity 2. Workload model IWorkloadBalance Reiner Jung 12 / 15
Running JPetStore & Observations U ‚ Execute JPetStore ‚ Local docker execute-jpetstore.sh $WORKLOAD_FILE ‚ Kubernetes execute-kube-jpetstore.sh $WORKLOAD_FILE ‚ Execute Observation ‚ execute-observation.sh $WORKLOAD_FILE Reiner Jung 13 / 15
# docker repositoriy DOCKER_REPO="blade1.se.internal:5000" # logger IP LOGGER=192.168.48.213 # workload driver WORKLOAD_RUNNER="$TOOLS/bin/selenium-experiment-workloads" # webdriver WEB_DRIVER="$TOOLS/chromedriver" # collector COLLECTOR="$TOOLS/bin/collector" Experiment Configuration U Reiner Jung 14 / 15
https://github.com/research-iobserve Conclusion U Features Upcoming ‚ Workloads ‚ Models for privacy ‚ JPetStore variants ‚ Other intensity models ‚ Cloud setups ‚ Additional probes ‚ Documentation ‚ PCM complete models Sources ‚ Version snapshots on Zenodo.org DOI DOI 10.5281/zenodo.1292788 10.5281/zenodo.1292788 ‚ All else on github Reiner Jung 15 / 15
Recommend
More recommend