Releases: microsoft/aura-simulator
Aura v0.1.0 — IEEE CLOUD 2026 companion release
Aura v0.1.0 — IEEE CLOUD 2026 companion release
First public release of Aura, an actor-based discrete-event simulation framework for cloud computing research written in Scala 3 with Apache Pekko.
Why Aura
Existing simulators (CloudSim, CloudSim Plus, iFogSim, SimGrid, SimFaaS) each model a single cloud paradigm. Aura unifies five within a single discrete-event simulation engine:
- IaaS — virtual machines, hosts, datacenters
- FaaS / serverless — cold-start modeling, billing, AWS Lambda semantics
- Container orchestration — Kubernetes-style pod scheduling, HPA
- Edge computing — geographic locations, multi-tier hierarchy, latency-aware offloading
- Federated multi-tier cloud — cross-tier task routing and escalation
Plus first-class support for GPU inference simulation (prefill/decode phases, KV cache, continuous batching, energy-aware scheduling) and HPC batch scheduling.
This unification enables a new class of measurement: cross-paradigm interference. Aura quantified a 9.3% energy overhead when serverless function bursts overlap with Kubernetes pod-binding waves on shared infrastructure — an effect invisible to single-paradigm simulators that assume exclusive host access. That finding is the central scientific contribution of the companion paper.
Engineering highlights
- Parallel DES engine — event dispatch via Apache Pekko typed actors with barrier synchronization
- Quiescence-based termination — the coordinator runs until the event queue is naturally empty (or
endTimeis exceeded), with aFinalSnapshothandshake for end-of-sim bookkeeping. No fragile broker-counter signaling. - Type-safe units — opaque types for
MIPS,PEs,MegaBytes,SimTime,MI,Watts, etc. prevent unit confusion at compile time - Context-function DSL — declarative simulation configuration using Scala 3 context functions
- Immutable state — all actor state transitions produce new immutable values; no shared mutable state
- Pure-function policies — allocation, scheduling, scaling, consolidation, and migration policies are plain functions
- Real-world trace replay — Google Cluster and Azure VM trace parsers
- Interactive visualization — HTML reports with Chart.js dashboards; optional Scala.js + Laminar SPA frontend
Stats
- 14 sbt modules
- ~28,000 lines of production Scala 3
- ~15,000 lines of test Scala
- 1,250+ tests across 90+ test suites — 100% deterministic green on Java 17 and Java 21 (Corretto)
- 20 runnable examples covering every paradigm
Companion paper
@inproceedings{cappelletti2026aura,
title = {Aura: A Type-Safe, Multi-Paradigm Cloud Simulation
Framework in Scala 3},
author = {Cappelletti, Andrea},
booktitle = {Proceedings of the 2026 IEEE International Conference
on Cloud Computing (CLOUD)},
year = {2026}
}Quick start
git clone https://github.com/microsoft/aura-simulator
cd aura-simulator
sbt compile
sbt test
sbt "auraExamples/runMain io.aura.examples.BasicIaaSExample"Twenty more examples live in modules/aura-examples.
License
MIT. See LICENSE.
Contributions welcome. Please read CONTRIBUTING.md before opening a PR. External contributors will be asked to sign the Microsoft Contributor License Agreement on first contribution.