Frisbee β Kubernetes Native Testbed
ποΈ Spin up entire dependency stack
π Setup initial dependency state β easily!
π Test against actual, close to production software
β³ Spend no time writing mocks
πΉοΈ Test actual program behavior and side effects
The effort being put in automating tests should not take over delivering value to users.
Frisbee addresses the key pain points developers and QA engineers face when testing cloud-native applications in the earlier
stages of the software lifecycle. We make it possible to:
- Run tests: create temporary containers for application dependencies, setup their initial state and clean them up in the end.
- Write tests: describe complex topologies, dynamic operating conditions, Chaos Events, and distributed assertions.
- Debug tests: integrate application-specific metrics, monitor site-wide health metrics, and raise notifications on SLA violations.
Frisbee consists of a set of Kubernetes controllers, and YAML-based testplans.
Getting started
Make sure that Microk8s and Helm are installed on
your system, then install the Frisbee dependencies:
# Clone Frisbee repository
>> git clone https://github.com/CARV-ICS-FORTH/frisbee.git
# Install the Frisbee platform
>> helm install my-frisbee charts/platform --dependency-update
# Install the package for monitoring YCSB output
>> helm install my-ycsb charts/ycsb --dependency-update
# Install TiKV store
>> helm install my-tikv charts/tikv --dependency-update
Then run:
# Run Frisbee controller
>> make run
# Deploy the testing plan
>> kubectl apply -f charts/tikv/examples/plan.localhost.yml
If everything went smoothly, you should see a
similar Grafana Dashboard
.
Through these dashboards humans and controllers can examine to check things like completion, health, and SLA compliance.
Client-View (YCSB-Dashboard)
Client-View (Redis-Dashboard)
π Documentation
Frisbee installation and reference documents are available at:
π Quick Start
π Installation
π Test Plans
πββοΈ Getting Help
We are here to help!
π If you face troubles, check the Frequently Asked Questions.
π For feature requests and bugs, file an issue.
π For great new ideas, browse through the GitHub discussions.
π To get updates βοΈ star this repository.
β Contributing
The original intention of our open source project is to lower the threshold of testing distributed systems, so we highly
value the use of the project in enterprises and in academia.
We welcome also every contribution, even if it is just punctuation. Here are some steps to help get you started:
β Read and agree to the Contribution Guidelines.
β Read Frisbee design and development details on the GitHub Wiki.
β Contact us directly for other ways to get involved.
Acknowledgements
This project has received funding from the European Union's Horizon 2020 research and innovation programme under grant
agreement No. 894204 (Ether, H2020-MSCA-IF-2019).