TeaStore Microservice Benchmark
Informacje podstawowe
- Nazwa: TeaStore — A Micro-Service Reference Application
- Alias: TeaStore
- Dziedzina: Cloud Computing, Serverless, Systems
- Typ: benchmark application (synthetic workload)
Źródło
- URL: https://github.com/DescartesResearch/TeaStore
- Paper: Eismann et al., “TeaStore - A Micro-Service Reference Application,” FAS*W 2019
- Organizacja: Universität Würzburg (Descartes Research Group)
- Rok: 2019
Charakterystyka
- Rozmiar: symulowany sklep z herbatą; 5 mikrousług (WebUI, Auth, Recommender, Image, Persistence)
- Podział: brak podziału train/test — aplikacja benchmark do eksperymentów
- Format: Docker containers / Helm charts / Kubernetes manifests
- Licencja: Apache 2.0
Opis
TeaStore to referencyjny benchmark mikrousługowy symulujący e-commerce. Składa się z 5 niezależnych usług (Java/Spring Boot) i bazy danych. Używany jako SUT (System Under Test) do porównywania architektur: Microservices vs Monolith vs Serverless vs warianty runtime. Wspiera konfigurację przez Helm (np. wyłączenie usługi Recommender).
Standardowe workloady: shaped (dzień/noc), fixed (1000 żądań), pausing (ekspotencjalne przerwy), stress (do 1000 równoległych użytkowników via Locust).
Zastosowania
- Benchmarking efektywności energetycznej architektur cloud-native
- Porównywanie taktyk architektonicznych (Monolith vs Microservices vs Serverless)
- Testowanie narzędzi pomiarowych energii (Kepler, Scaphandre)
- Ewaluacja runtime replacements (OpenJDK vs GraalVM)
Używany w publikacjach
- werner-experimentation-framework-energy-2025 - SUT w showcase CLUE: 5 wariantów architektonicznych × 4 workloady; GraalVM RT najlepszy, KNative SL najgorszy energetycznie
Benchmarki
| Wariant | WR (energy/req) | Latency p50 | Failure Rate | Framework |
|---|---|---|---|---|
| Microservices (baseline) | średni | 0.06–6.31s | 3.5–11.5% | Kubernetes |
| Runtime Improvement (GraalVM) | najniższy | 0.02–1.36s | 2.3–0.03% | Kubernetes |
| Serverless (KNative) | najwyższy | 0.75–4.68s | 5.1–9.3% | KNative |