On this page:
The Apt Manual
2019-03-19 (b4a2ebc)

The Apt Manual

Robert Ricci,
Leigh Stoller,
Kirk Webb,
Jon Duerig,
Gary Wong,
Keith Downie,
Mike Hibler,
and Eric Eide

Apt is a platform for sharing research; it is open to all researchers, educators, and students. It is built around profiles, which describe experiments; when you instantiate a profile, that specification is realized on one of Apt’s clusters using virtual or physical machines. The creator of a profile may put code, data, and other resources into it, and the profile may consist of a single machine or may describe an entire network.

Basic access to public profiles on Apt is provided without the need to register for an account—this keeps the barriers to accessing research artifacts low. If you find the limited resources that are provided to guest users valuable, you should sign up for a (free) account to get access to more resources and to create profiles of your own.

Setting up the software environment to run research artifacts is often complicated, potentially requiring a specific version of an operating system, dependencies on a large number of packages, and a complicated build and configuration process for the research software.

Setting up the hardware environment can be even more troublesome, especially when one wants to reproduce published results, which may be highly sensitive to the specific hardware they were gathered on. The problem becomes complicated when more than one machine is needed to run the experiment.

Apt’s profiles capture this by describing both the software needed to run an experiment and the hardware (physical or virtual) that the software needs to run. By providing a hardware platform for running these profiles, Apt essentially enables researchers to build their own testbed environments and share them with others, without having to buy, build, or maintain the underlying infrastructure.

Apt is built on Emulab and GENI technologies. It is built and operated by the Flux Research Group, part of the University of Utah’s School of Computing. Apt is supported by the National Science Foundation under award CNS-1338155 and by the University of Utah.

    1 Getting Started

      1.1 Next Steps

    2 Apt Users

      2.1 Register for an Account

        2.1.1 Join an existing project

        2.1.2 Create a new project

    3 Apt and Repeatable Research

    4 Creating Profiles

      4.1 Creating a profile from an existing one

        4.1.1 Preparation and precautions

        4.1.2 Cloning a Profile

        4.1.3 Copying a Profile

        4.1.4 Creating the Profile

        4.1.5 Updating a profile

      4.2 Creating a profile with a GUI

      4.3 Repository-Based Profiles

        4.3.1 Updating Repository-Based Profiles

        4.3.2 Branches and Tags in Repository-Based Profiles

      4.4 Creating a profile from scratch

      4.5 Sharing Profiles

      4.6 Versioned Profiles

    5 Basic Concepts

      5.1 Profiles

        5.1.1 On-demand Profiles

        5.1.2 Persistent Profiles

      5.2 Experiments

        5.2.1 Extending Experiments

      5.3 Projects

      5.4 Physical Machines

      5.5 Virtual Machines and Containers

    6 Describing a profile with python and geni-lib

      6.1 A single XEN VM node

      6.2 A single physical host

      6.3 Two XenVM nodes with a link between them

      6.4 Two ARM64 servers in a LAN

      6.5 A VM with a custom size

      6.6 Set a specific IP address on each node

      6.7 Specify an operating system and set install and execute scripts

      6.8 Profiles with user-specified parameters

      6.9 Add temporary local disk space to a node

      6.10 Creating a reusable dataset

      6.11 Debugging geni-lib profile scripts

    7 Advanced Topics

      7.1 Disk Images

      7.2 RSpecs

      7.3 Public IP Access

        7.3.1 Dynamic Public IP Addresses

      7.4 Markdown

      7.5 Introspection

        7.5.1 Client ID

        7.5.2 Control MAC

        7.5.3 Manifest

        7.5.4 Private key

        7.5.5 Profile parameters

      7.6 User-controlled switches and layer-1 topologies

    8 Hardware

      8.1 Apt Cluster

      8.2 CloudLab Utah

    9 Planned Features

      9.1 Simpler Virtual/Physical Profile Switching

      9.2 Improved Physical Resource Descriptions

    10 Apt OpenStack Tutorial

      10.1 Objectives

      10.2 Prerequisites

      10.3 Logging In

      10.4 Building Your Own OpenStack Cloud

      10.5 Exploring Your Experiment

        10.5.1 Experiment Status

        10.5.2 Profile Instructions

        10.5.3 Topology View

        10.5.4 List View

        10.5.5 Manifest View

        10.5.6 Graphs View

        10.5.7 Actions

        10.5.8 Web-based Shell

        10.5.9 Serial Console

      10.6 Bringing up Instances in OpenStack

      10.7 Administering OpenStack

        10.7.1 Log Into The Control Nodes

        10.7.2 Reboot the Compute Node

      10.8 Terminating the Experiment

      10.9 Taking Next Steps

    11 Getting Help