{"id":13667812,"url":"https://github.com/DescartesResearch/TeaStore","last_synced_at":"2025-04-26T18:30:46.084Z","repository":{"id":37927369,"uuid":"100679870","full_name":"DescartesResearch/TeaStore","owner":"DescartesResearch","description":"A micro-service reference test application for model extraction, cloud management, energy efficiency, power prediction, single- and multi-tier auto-scaling","archived":false,"fork":false,"pushed_at":"2025-01-08T16:29:47.000Z","size":107367,"stargazers_count":125,"open_issues_count":20,"forks_count":145,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-01-08T17:44:52.055Z","etag":null,"topics":["benchmark","microservice","model-extraction","performance"],"latest_commit_sha":null,"homepage":"https://se.informatik.uni-wuerzburg.de","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DescartesResearch.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-08-18T06:22:29.000Z","updated_at":"2025-01-08T16:29:54.000Z","dependencies_parsed_at":"2024-08-02T07:02:01.724Z","dependency_job_id":"c04da03c-7d94-49eb-80e8-aa09533b7097","html_url":"https://github.com/DescartesResearch/TeaStore","commit_stats":null,"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DescartesResearch%2FTeaStore","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DescartesResearch%2FTeaStore/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DescartesResearch%2FTeaStore/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DescartesResearch%2FTeaStore/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DescartesResearch","download_url":"https://codeload.github.com/DescartesResearch/TeaStore/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251035127,"owners_count":21526308,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["benchmark","microservice","model-extraction","performance"],"created_at":"2024-08-02T07:00:50.717Z","updated_at":"2025-04-26T18:30:41.075Z","avatar_url":"https://github.com/DescartesResearch.png","language":"Java","funding_links":[],"categories":["Microservices for demo"],"sub_categories":[],"readme":"# TeaStore #  \n\nThe TeaStore is a micro-service reference and test application to be used in benchmarks and tests. The TeaStore emulates a basic web store for automatically generated, tea and tea supplies. As it is primarily a test application, it features UI elements for database generation and service resetting in addition to the store itself.\n\nThe TeaStore is a distributed micro-service application featuring five distinct services plus a registry. Each service may be replicated without limit and deployed on separate devices as desired. Services communicate using REST and using the Netflix [Ribbon](https://github.com/Netflix/ribbon) client side load balancer. Each service also comes in a pre-instrumented variant that uses [Kieker](http://kieker-monitoring.net) to provide detailed information about the TeaStore's actions and behavior.\n\nCheck out our [Getting Started Guide](GET_STARTED.md) for information on how to use the TeaStore:\n\n1. [Deploying the TeaStore](GET_STARTED.md#1-deploying-the-teastore)\n   1. [Run as Multiple Single Service Containers](GET_STARTED.md#11-run-as-multiple-single-service-containers)\n   2. [Run the TeaStore using Docker Compose](GET_STARTED.md#12-run-the-teastore-using-docker-compose)\n   3. [Run the TeaStore on a Kubernetes Cluster](GET_STARTED.md#13-run-the-teastore-on-a-kubernetes-cluster)\n   4. [Run the TeaStore with helm templates](GET_STARTED.md#14-run-the-teastore-with-helm-templates)\n2. [Using the TeaStore for Testing and Benchmarking](GET_STARTED.md#2-using-the-teastore-for-testing-and-benchmarking)\n   1. [Generating Load](GET_STARTED.md#21-generating-load)\n      1. [LIMBO HTTP Load Generator](GET_STARTED.md#211-limbo-http-load-generator)\n      2. [JMeter™](GET_STARTED.md#212-jmeter)\n   2. [Instrumenting the TeaStore](GET_STARTED.md#22-instrumenting-the-teastore)\n      1. [Docker containers with Kieker](#221-docker-containers-with-kieker)\n      2. [OpenTracing with Kubernetes and Istio](GET_STARTED.md#222-opentracing-with-kubernetes-and-istio)\n3. [Building and Customizing the TeaStore](GET_STARTED.md#3-building-and-customizing-the-teastore)\n\n## Cite Us\n\nThe TeaStore was first published in [Proceedings of the 26th IEEE International Symposium on the Modelling, Analysis, and Simulation of Computer and Telecommunication Systems (MASCOTS2018)](https://ieeexplore.ieee.org/document/8526888). If you use the TeaStore please cite the following publication:\n\n    @inproceedings{KiEiScBaGrKo2018-MASCOTS-TeaStore,\n      author = {J{\\'o}akim von Kistowski and Simon Eismann and Norbert Schmitt and Andr{\\'e} Bauer and Johannes Grohmann and Samuel Kounev},\n      title = {{TeaStore: A Micro-Service Reference Application for Benchmarking, Modeling and Resource Management Research}},\n      booktitle = {Proceedings of the 26th IEEE International Symposium on the Modelling, Analysis, and Simulation of Computer and Telecommunication Systems},\n      series = {MASCOTS '18},\n      year = {2018},\n      month = {September},\n      location = {Milwaukee, WI, USA},\n    }\n\nFor an example of a large-scale TeaStore setup we refer to [Microservices: A Performance Tester’s Dream or Nightmare?](https://doi.org/10.1145/3358960.3379124) and the corresponding [replication package](https://doi.org/10.5281/zenodo.3582707).\n\n    @inproceedings{10.1145/3358960.3379124,\n      author = {Eismann, Simon and Bezemer, Cor-Paul and Shang, Weiyi and Okanovi\\'{c}, Du\\v{s}an and van Hoorn, Andr\\'{e}},\n      title = {Microservices: A Performance Tester's Dream or Nightmare?},\n      year = {2020},\n      booktitle = {Proceedings of the ACM/SPEC International Conference on Performance Engineering},\n      pages = {138–149},\n      series = {ICPE '20},\n    }\n\n ## The TeaStore in Action\n The TeaStore is used as the demo application in the [Cisco Full Stack Observability Workshop](https://www.fsolabs.net/) and as a case study in a number of scientific publications:\n * A. Horn, H.M. Fard, F. Wolf. *Multi-objective Hybrid Autoscaling of Microservices in Kubernetes Clusters*. In Euro-Par 2022: Parallel Processing, pp 233–250. 2022. https://doi.org/10.1007/978-3-031-12597-3_15\n * M. Elsaadawy, A. Lohner, R. Wang, J. Wang, and B. Kemme. *DyMonD: dynamic application monitoring and service detection framework*. In Proceedings of the 22nd International Middleware Conference: Demos and Posters, pp- 8-9. 2021. https://doi.org/10.1145/3491086.3492471\n * D. Sokolowski, P. Weisenburger, and G. Salvaneschi. *Automating serverless deployments for DevOps organizations.* In ESEC/FSE 2021: Proceedings of the 29th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, pp. 57-69. 2021. https://doi.org/10.1145/3468264.3468575\n* L. Liao, J. Chen,  H. Li, Y. Zeng, W. Shang, C. Sporea, A. Toma, and S. Sajedi. *Locating Performance Regression Root Causes in the Field Operations of Web-based Systems: An Experience Report.* In IEEE Transactions on Software Engineering. 2021. https://doi.org/10.1109/TSE.2021.3131529\n* J. Flora, P. Gonçalves, M. Teixeira, and N. Antunes. *My Services Got Old! Can Kubernetes Handle the Aging of Microservices?* In IEEE International Symposium on Software Reliability Engineering Workshops. 2021. https://doi.org/10.1109/ISSREW53611.2021.00042\n * M. Torquato, P. Maciel, and M. Vieira. *PyMTDEvaluator: A Tool for Time-Based Moving Target Defense Evaluation: Tool description paper. In IEEE 32nd International Symposium on Software Reliability Engineering*. 2021. https://doi.org/10.1109/ISSRE52982.2021.00045\n * J. Keim, S. Schulz, D. Fuchß, C. Kocher, J. Speit, and A. Koziolek. *Trace Link Recovery for Software Architecture Documentation.* In European Conference on Software Architecture, pp. 101-116. 2021. https://doi.org/10.1007/978-3-030-86044-8_7\n * J. Grohmann, M. Straesser, A. Chalbani, S. Eismann, Y. Arian, N. Herbst, N Peretz, and S. Kounev. 2021. *SuanMing: Explainable Prediction of Performance Degradations in Microservice Applications.* In Proceedings of the ACM/SPEC International Conference on Performance Engineering, pp. 165-176. 2021. https://doi.org/10.1145/3427921.3450248\n * V. Rao, V. Singh, K. S. Goutham, B. U. Kempaiah, R. J. Mampilli, S. Kalambur, and D. Sitaram. 2021. *Scheduling Microservice Containers on Large Core Machines through Placement and Coalescing.*https://jsspp.org/papers21/vishal-rao.pdf\n * D. Monschein, M. Mazkatli, R. Heinrich, and A. Koziolek. 2021. *nabling Consistency between Software Artefacts for Software Adaption and Evolution.*In 2021 IEEE 18th International Conference on Software Architecture (ICSA) (pp. 1-12). https://sdqweb.ipd.kit.edu/publications/pdfs/monschein2021a.pdf\n * S. Eismann, C. Bezemer, W. Shang, D. Okanović, and A. van Hoorn. 2020. *icroservices: A Performance Tester's Dream or Nightmare?*In Proceedings of the ACM/SPEC International Conference on Performance Engineering (ICPE '20). Association for Computing Machinery, New York, NY, USA, 138–149. https://doi.org/10.1145/3358960.3379124\n * J. Grohmann, P. Nicholson, J. Iglesias, S. Kounev, and D. Lugones. 2019. *onitorless: Predicting Performance Degradation in Cloud Applications with Machine Learning.*In Proceedings of the 20th International Middleware Conference (Middleware '19). Association for Computing Machinery, New York, NY, USA, 149–162. https://doi.org/10.1145/3361525.3361543\n * M. Mazkatli, D. Monschein, J. Grohmann and A. Koziolek, *Incremental Calibration of Architectural Performance Models with Parametric Dependencies* 020 IEEE International Conference on Software Architecture (ICSA '2020), Salvador, Brazil, 2020, pp. 23-34, https://doi.org/10.1109/ICSA47634.2020.00011.\n * J. Grohmann, S. Eismann, S. Elflein, J. V. Kistowski, S. Kounev and M. Mazkatli, *Detecting Parametric Dependencies for Performance Models Using Feature Selection Techniques* 2019 IEEE 27th International Symposium on Modeling, Analysis, and Simulation of Computer and Telecommunication Systems (MASCOTS '19), Rennes, France, 2019, pp. 309-322, https://doi.org/10.1109/MASCOTS.2019.00042\n* S. Gholami, A. Goli, C. Bezemer, and H. Khazaei. 2020. *A Framework for Satisfying the Performance Requirements of Containerized Software Systems Through Multi-Versioning.* In Proceedings of the ACM/SPEC International Conference on Performance Engineering (ICPE '20). Association for Computing Machinery, New York, NY, USA, 150–160. https://doi.org/10.1145/3358960.3379125\n* N. Schmitt, L. Iffländer, A. Bauer and S. Kounev, *Online Power Consumption Estimation for Functions in Cloud Applications.* 2019 IEEE International Conference on Autonomic Computing (ICAC '19), Umea, Sweden, 2019, pp. 63-72, https://10.1109/ICAC.2019.00018\n* S. Athlur, N. Sondhi, S. Batra, S. Kalambur and D. Sitaram, *Cache Characterization of Workloads in a Microservice Environment* 2019 IEEE International Conference on Cloud Computing in Emerging Markets (CCEM '19), Bengaluru, India, 2019, pp. 45-50, https://10.1109/CCEM48484.2019.00010\n* S. Caculo, K. Lahiri and S. Kalambur, *Characterizing the Scale-Up Performance of Microservices using TeaStore.* 2020 IEEE International Symposium on Workload Characterization (IISWC '2020), Beijing, China, 2020, pp. 48-59, https://10.1109/IISWC50251.2020.00014\n* A. Goli, N. Mahmoudi, H. Khazaei, and O. Ardakanian. *A Holistic Machine Learning-Based Autoscaling Approach for Microservice Applications.* [preprint](https://www.researchgate.net/profile/Alireza-Goli-2/publication/349550949_A_Holistic_Machine_Learning-Based_Autoscaling_Approach_for_Microservice_Applications/links/6035f80092851c4ed591298d/A-Holistic-Machine-Learning-Based-Autoscaling-Approach-for-Microservice-Applications.pdf)\n* W. Viktorsson, C. Klein and J. Tordsson, *Security-Performance Trade-offs of Kubernetes Container Runtimes.* 2020 28th International Symposium on Modeling, Analysis, and Simulation of Computer and Telecommunication Systems (MASCOTS '2020), Nice, France, 2020, pp. 1-4, doi: https://10.1109/10.1109/MASCOTS50786.2020.9285946\n* J. Martin, A. Kandasamy, and K. Chandrasekaran. *CREW: Cost and Reliability aware Eagle‐Whale optimiser for service placement in Fog.* Software: Practice and Experience 50.12 (2020): 2337-2360. https://doi.org/10.1002/spe.2896\n* M. Tamiru, J. Tordsson, E. Elmroth, and G. Pierre. *An Experimental Evaluation of the Kubernetes Cluster Autoscaler in the Cloud.* In CloudCom 2020-12th IEEE International Conference on Cloud Computing Technology and Science. 2020. https://hal.inria.fr/hal-02958916\n* E. Boza, C. Abad, S. Narayanan, B. Balasubramanian, and M. Jang. 2019. *A Case for Performance-Aware Deployment of Containers.* In Proceedings of the 5th International Workshop on Container Technologies and Container Clouds (WOC '19). Association for Computing Machinery, New York, NY, USA, 25–30. https://doi.org/10.1145/3366615.3368355\n\nIf your paper is missing from this list, open up an issue and we'll add it :)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDescartesResearch%2FTeaStore","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FDescartesResearch%2FTeaStore","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDescartesResearch%2FTeaStore/lists"}