frisbee

module
v1.0.26 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 31, 2022 License: Apache-2.0

README ΒΆ

Frisbee – Kubernetes Native Testbed

The effort being put in automating tests should not take over delivering value to users. Frisbee makes it possible to:

🎁 Setup initial dependency stack – easily!

🏭 Test against actual, close to production software - no mocks!

⏳ Replay complex workloads written in an intuitive language!

πŸ—οΈ Combine Chaos Engineering with large-scale performance testing!

πŸ•ΉοΈ Assert actual program behavior and side effects

🧭 Scenarios

TL;DR

  1. Make sure that kubectl and Helm are installed on your system.

  2. Update Helm repo.

>> helm repo add frisbee https://carv-ics-forth.github.io/frisbee/charts
  1. Install Helm Packages.
# Install the platform
>> helm upgrade --install --wait my-frisbee frisbee/platform
# Install the package for monitoring YCSB output
>> helm upgrade --install --wait my-ycsb frisbee/ycsb
# Install TiKV store
>> helm upgrade --install --wait my-tikv frisbee/tikv
  1. Create/Destroy the scenario.
# Create
>> curl -sSL https://raw.githubusercontent.com/CARV-ICS-FORTH/frisbee/main/charts/tikv/examples/scenario.baseline.yml | kubectl -f - apply

# Destroy
>> curl -sSL https://raw.githubusercontent.com/CARV-ICS-FORTH/frisbee/main/charts/tikv/examples/scenario.baseline.yml | kubectl -f - delete --cascade=foreground

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)

image-20211008230432961

Client-View (Redis-Dashboard)

πŸ“™ Documentation

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.

For more information, Frisbee installation and reference documents are available at:

πŸ‘‰ Quick Start

πŸ‘‰ Scenarios

πŸ™‹β€β™‚οΈ 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).

Directories ΒΆ

Path Synopsis
api
v1alpha1
Package v1alpha1 contains API Schema definitions for the Frisbee v1alpha1 API group +kubebuilder:object:generate=true +groupName=frisbee.dev
Package v1alpha1 contains API Schema definitions for the Frisbee v1alpha1 API group +kubebuilder:object:generate=true +groupName=frisbee.dev
cmd
controllers
hack
api-docs/template
Placeholder file to make Go vendor this directory properly.
Placeholder file to make Go vendor this directory properly.
pkg
ui
simple ui - TODO use something more sophisticated :)
simple ui - TODO use something more sophisticated :)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL