Skip to content

A tool to build custom application simulators through declarative configuration

License

Notifications You must be signed in to change notification settings

cisco-open/app-simulator

Application Simulator

Contributor-Covenant License Maintainer Release

Application Simulator allows you to rapidly create a set of interacting services, databases and load generators to simulate application deployments of any size and form.

Unlike other simulators or demo applications it is not focused around a specific kind of application, like a blog, task list, web shop or banking app. Instead, Application Simulator is driven by configuration files that define the behavior of the components of your application.

This is especially useful for use cases, where you care less about the business logic to be mimicked, but the interaction of the different components that make up an application.

This includes the following use cases:

  • Tailored demo environments for observability, e.g. instrumenting all services with OpenTelemetry and visualizing the data in your preferred backend.
  • Complex simulated environments for in-cluster network experiments, e.g. testing out new features of cilium.

Quick Start

You can use application simulator with your preferred container orchestration, since all components are available as container images. We provide the best experience for docker compose and kubernetes. Pick one of them for a quick start!

Note

You can use the container images published as part of this project without the generators for kubernetes and docker compose. Both are convenience functions!

If you only need a container image that simulates the behavior of an application, check out the standalone container quick start.

Tutorial

After you have tried out application simulator with the quick start, you can learn using it with the step by step tutorial:

  1. Two services
  2. A database and more services
  3. Errors and randomness
  4. Observability with OpenTelemetry

Configuration specification

Application simulator is driven by configuration files that allow you to describe a microservice architecture and then run it with your preferred container orchestration. The configuration file follows a specification.

Contribute

If you'd like to contribute to this project, check out our contribution guidelines.

Support

If you have any questions or concerns, get in touch with us by raising an issue. If you want to report a security issue, please follow our security policy