I. Introduction
The infrastructure of telecommunication networks is undergoing a radical transformation towards a massively distributed cloud with network functionalities implemented as virtual network functions (VNFs). When this transition is complete, services will be instantiated as network slices - essentially virtual networks that utilize transport and computing resources in order to provide high-fidelity communications [1]. Unlike their physical counterparts, VNFs can be launched, placed, and scaled flexibly to meet fluctuating workload demands, thus opening new doorways for on-demand resource provisioning. However, quick and accurate resource allocation for multiple network slices is a very challenging task, primarily due to the following reasons:
Each network slice requires specific functionalities, possibly executed in a particular order.
The operation of a network slice involves (and requires the close coordination of) several stakeholders: a) slice owners; b) the cloud provider; and c) the network controller.
Each slice requires two types of resources, bandwidth and processing power. As a result, resource allocation must be balanced between these two components, and notions of fairness and efficiency become much more intricate.