What is AmoebaNet?

AmoebaNet is an SDN-enabled network service that provides "Application-aware" network. It allows BigData Express to program networks at run-time for optimum performance.

AmoebaNet is designed for BigData Express, but it can be independently deployed to support any applications.

AmoebaNet data plane model

AmoebaNet supports two classes of services: priority and best-effort. Priority traffic flows are typically specified with designated rates or bandwidth. To provide QoS guarantees, AmoebaNet applies the data plane model as shown in Figure 1. At each SDN switch, AmoebaNet uses QoS queues to differentiate priority and best-effort traffic; priority traffic is transmitted first. In addition, it meters priority traffic to enfore rate control.

Figure 1 AmoebaNet data plane model

AmoebaNet control plance architecture

Figure 2 illustrates AmoebanNet's control plane architecture. It consists of the following modules:

AMQP APIs. An AMQP interface that allows applications to access AmoebaNet services. AMQP APIs are based on JSON-RPC style communication mechanism which allows dynamic and flexible interaction between application and AmeobaNet. The AMQP interface consists of consumer and publisher components, which enables two-way communication between AmeobaNet and applications. The consumer component manages network service requests from application while the publisher component sends network status/statistics to application.

REST APIs. An alternative REST interface for applications to program network at run-time

AmoebaNet Manager. A module to manage network resources. When it receives network service requests from application, it coordinates with other modules to perform related operations, including QoS-base path calculation, path reservation, path setting up/tearing down, and network status reporting.

QoS-based Routing & Path Computation. The module that calculates available paths between service termination points (STPs). AmoebaNet abstracts an SDN network as a graph. Vertices in the graph represent SDN devices while edges in the graph represent network links. For each edge in the graph, attributes such as bandwidth and delay are obtained through the SDN controller. A cost is assigned to each edge based on available bandwidth or delay of the edge. AmoebaNet utilizes the largest bottleneck bandwidth algorithm (a Dijkstra's shortest path variant) to calculate available paths between STPs, with bandwidth or delay as constraints.

Flow Manager. The module that installs, updates, modifies, and deletes flow rules on underlying network devices. Whenever AmoebaNet receives a reservation request from an application, Flow Manager will perform flow-related operations on involved network devices. In addition, metering (for rate-control) and queuing (for traffic priority) related operations are managed by this flow manager service to support QoS guarantees.

Resource Monitoring. This module monitors and keeps track of network resources.

Topology Manager. The module that provides the global network topology view to AmoebaNet manager. If any changes occur in the underlying network topology, Topology Manager immediately triggers topology change events to AmoebaNet Manager.

Figure 2 AmoebaNet control plance model

AmoebaNet primitives

To target the programmibility problem and realize Network as a Service, AmoebaNet provides a list of primitives to allow applications to program networks at run-time:

  • initial_config(): configure the interfaces/ports of internal switches that are acting as gateways to external networks;

  • lock()/unlock(): lock/unlock AmoebaNet services to avoid unsynchronized access to network resrouces;

  • query_virtual_netslice(): query the setting of a particular virtual network slice;

  • query_path(): query the setting of a particular path;

  • query_host_to_host(): query the maximum available bandwidth between two end hosts;

  • query_host_to_gateway(): query the maximum available bandwidth between a host or a list of hosts to gateway;

  • create_path(): create or reserve a layer 2/3 path between two end points with a specified bandwidth and at a specified time slot;

  • create_virtual_netslice(): given a list of IPs, create or reserve a virtual network slice among them with a specified bandwidth for a specified time slot;

  • update_path(): update or modify a particular path’s setting;

  • update_virtual_netslice(): update or modify a particular virtual network slice's setting;

  • release_path(): tear down a particular path;

  • release_virtual_net_slice(): tear down a particular virtual network slice;

  • release_virtual_net_slice(): register notification of particular network events.

A New Networking Paradigm for Big Data Science

The development of AmoebaNet presents a new network paradigm for big data science (Figure 3). In this paradigm, Science DMZ and Terabit Networks provide high-speed and high-capacity network infrastructures; AmoebaNet, in conjunction with OSCARS/AL2S, orchestrates network resource provisioning to deliver "network as a service" to upper layer science applications, which can intelligently program networks at run-time to suit their needs.

Figure 3 A new network paradigm for big data science

Figure 4 illustrates a deployment example of the new paradigm. A big data science application runs at multiple sites. Each site is an independent administrative domain. To support the science application, each site features a dedicated cluster of high-performance computer systems, and a SDN-enabled LAN or campus network. The dedicated computer systems are deployed using the Science DMZ architecture. The SDN-enabled LAN or campus network consists of either physical or virtualized SDN-enabled switches or routers and connect the dedicated computer systems to a BR -- a border gateway router or switch that connects to the WAN. AmoebaNet is deployed at each site to manage LAN or campus network, with OSCARS/AL2S running within the WAN to provide on-demand guaranteed QoS circuit service between sites.

Figure 4 A typical AmoebaNet use case for big data science

To intelligently program networks at run-time to suit its needs, a science application typically performs the following operations:

  • Estimate and calculate the system-to-system traffic matrix for the application, and the related QoS requirements (e.g. throughput, delay).

  • Calculate the site-to-site traffic matrix of the application, and the related QoS requirements (e.g., throughput, delay).

  • Call ESnet OSCARS or Internet2 AL2S circuit service to set up or modify point-to-point layer 2 circuits between sites.

  • Call AmoebaNet at each site to program LAN or campus network. Traffic between systems in physically disperse sites are multiplexed/de-multiplexed to/from the corresponding point-to-point layer 2 circuits between sites.

  • Last modified
  • 10/09/2018