Skip to content

A toolkit for modeling and simulation of cloud-native applications.

License

Notifications You must be signed in to change notification settings

CyanStarNight/CloudNativeSim

Repository files navigation

CloudNativeSim Logo

GPL licensed Progress Tracker commit PR version GitHub Repo stars

About

CloudNativeSim is a toolkit for modeling and simulation of cloud-native applications. It employs a multi-layered architecture, allowing for high extensibility and customization. Below is an overview of the CloudNativeSim architecture:

Architecture

Through detailed modeling of cloud-native environments and microservices architecture, CloudNativeSim provides these key features:

  • Comprehensive modeling approach
  • High extensibility and customization
  • Simulation of dynamic request generation and dispatching
  • Innovative cloudlet scheduling mechanism
  • Latency calculation based on the critical path
  • QoS metrics feedback
  • New policy interfaces
  • Grafana Dashboard Visualization

If you’re using this simulator, please ★Star this repository to show your interest!

Getting Started

  1. Clone the CloudNativeSim Git repository to local folder:
    git clone https://github.com/CyanStarNight/CloudNativeSim.git
  2. Verify the development environment: Ensure that Java version 17 or higher is installed, the CloudSim 3.0 JAR package is available, and all Maven dependencies are fully imported.
  3. Run the example files (e.g., SockShopExample.java) to get started

Visualization

CloudNativeSim allows users to export simulation results to files and visualize them in Grafana. Follow these steps:

  1. Import the panel styles from the visualization/styles folder into Grafana.
  2. Add fields in the main CloudNativeSim run file to enable data export to files, such as:
    Reporter.writeResourceUsage("path/xxx");
    Reporter.writeStatisticsToCsv(apis, "path/xxx");
  3. If you need to observe service dependencies in Grafana, ensure that the service registration files comply with the NodeGraph requirements.

The visualization results are shown below:

QPS Visualization Service Dependency Visualization

Contributing and Acknowledgement

We welcome your contributions to the project! Please read the CONTRIBUTING.md before you start. The guide includes information on various ways to contribute, such as requesting features, reporting issues, fixing bugs, or adding new features. Special thanks to @beyondHJM for assisting with the design and configuration of the Grafana panels.

Citation

About

A toolkit for modeling and simulation of cloud-native applications.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published