Software-Defined Internet
NetUber is a research framework for simulating and orchestrating latency-sensitive web service workflows using a fleet of shared virtual routers (VRs) deployed on cloud spot instances. The framework acts as an evaluation platform for a Software-Defined Internet, enabling dynamic, bandwidth-aware, cost-optimized inter-cloud routing.
graph TD
subgraph "Control Plane (SDI Controller)"
ORC[NetUber Orchestrator]
P[Placement Engine]
CP[Connectivity Provider]
end
subgraph "Messaging Bus (JMS / ActiveMQ)"
MB[Topic: netuber.node.ID.cmds]
ST[Topic: netuber.status.>]
end
subgraph "Data Plane (Cloud Nodes)"
LA1[Local Agent - Node A]
LA2[Local Agent - Node B]
VR1[Docker: Virtual Router]
VR2[Docker: Virtual Router]
end
ORC -->|Publish Cmds| MB
MB -->|Consume| LA1
MB -->|Consume| LA2
LA1 -->|Exec| VR1
LA2 -->|Exec| VR2
LA1 -->|Telemetry| ST
LA2 -->|Telemetry| ST
ST -->|Feedback| ORC
- Core Models:
Node,Link,VirtualRouter, andWorkflow. - LatencyAwarePlacement: The engine responsible for calculating optimal deployment maps using bandwidth-aware heuristics and critical path latency verification.
- OverlayManager: Manages the lifecycle of the shared Virtual Router fleet and simulates regional price fluctuations.
- ConnectivityProvider: The Southbound interface using the SDI JSON Protocol over ActiveMQ.
- LocalAgent: A distributed agent running on cloud nodes that executes Docker-based VR deployments and generates BGP configurations.
NetUber provides the following capabilities:
- DAG-Aware Orchestration: Workflows are modeled as Directed Acyclic Graphs (DAGs), enabling complex multi-stage pipelines with specific data volume constraints.
- Dynamic Spot Price Optimization: The orchestrator dynamically evaluates fluctuating spot prices across regions to minimize deployment costs.
- Bandwidth-Aware Routing: Evaluates outbound bandwidth requirements across the service graph to select capable deployment nodes.
- Resilient Recovery Loop: Provides automated recovery that re-places services during cloud spot instance preemption (runtime churn).
- Advanced Latency Verification: Uses critical path analysis to ensure compliance with service-level objectives (SLOs).
- Distributed Control Plane: Uses an event-driven model (ActiveMQ) for real-world orchestration of virtual router fleets.
- Java 11+
- Maven 3.x
- ActiveMQ (Required for the Real SDI implementation. Run locally on
tcp://localhost:61616) - Docker (Required for actual routing container deployment)
To run the distributed system (Agents + Controller):
./run_sdi.shThis script compiles the project, launches Local Agents for three simulated regions, and starts the SDI Controller to orchestrate the fleet.
For a quick verification without distributed agents:
./run_simulation.shFor a detailed guide on deploying NetUber in a real cloud environment, see Tutorial.md.
If you use NetUber or the concept of a Software-Defined Internet in your research, please cite the following papers:
-
Kathiravelu, P., Chiesa, M., Marcos, P., Canini, M. and Veiga, L., 2018, May. Moving bits with a fleet of shared virtual routers. In 2018 IFIP Networking Conference (IFIP Networking) and Workshops (pp. 1-9). IEEE.
-
Kathiravelu, P., Van Roy, P., Veiga, L. and Benkhelifa, E., 2020, April. Latency-sensitive web service workflows: A case for a software-defined internet. In 2020 Seventh International Conference on Software Defined Systems (SDS) (pp. 115-122). IEEE.