Optimal Configuration of Services in Network Function Virtualization
Network Function Virtualization (NFV) helps to deploy the functionality of expensive and unflexible hardware appliances as scalable resources on commodity servers. However, optimal resource provisioning for non-trivial NFV services is still an open problem. While there have been efforts to answer the questions of when to provision additional resources in a running service, and how many resources are needed, the question of what should be provisioned has not been investigated yet. As non-trivial NFV services (e.g., service chains) typically consist of different Virtual Network Functions (VNFs), the answer to this question is not-trivial. Similar to standard Virtual Machines (VMs), each instance of a VNF can be run in different flavours (i.e., resource allocations), and each VNF may consist of arbitrary combinations of multiple of these flavours. Additionally, the final combination of instances typically needs to satisfy a customer Service Level Agreement (SLA). In this work, we offer to service providers an answer to the what to deploy question by introducing Rconf a system that automatically chooses the optimal combination of VNF instance flavours for non-trivial NFV services. In particular, we propose an analytical robust queuing model that is able to accurately model arbitrary real-world VNF instances, and develop a primal-dual algorithm to find the optimal combination of these instances in the sense that it maximizes the overall utilization of resources at the service provider's premises. We validate our system in real-world experiments.