Network function virtualization is one of the most relevant enabling technologies for 5G: conceiving a vertical service as a set of virtual network functions (VNFs) makes it possible to implement a service at the network edge in a fast and flexible manner, using computing, networking, and storage resources available therein. However, while deploying the VNFs composing a service, it is critical (i) to meet the key performance indices required by the vertical and (ii) to use the available resources in the most efficient manner so as to both cope with possible resource shortage and minimize the overall deployment cost.
To successfully address the aforementioned issues, several works have tackled the problem of VNF placement at the network edge and, more recently, the problem of VNF sharing, i.e. of reusing the same VNF for multiple concurrent services.
In this article, we first introduce VNF placement in 5G cellular networks and review existing solutions to this aspect. Then we focus on the problem of how to efficiently reuse VNFs and how to adapt the resources assigned to the virtual machines where such VNFs run, so that that the vertical key performance indicators (KPIs) are still satisfied. Importantly, it has been shown that carefully prioritizing the traffic of the services sharing a set of VNFs can lead to a significant cost reduction while still meeting the services KPIs. Such priorities can be set through an efficient algorithm, which provides a solution within a constant factor from the optimum, in polynomial time.