Recently, network function virtualization has been proposed to transform from network hardware appliances to software middleboxes. Normally, a demand needs to invoke several virtual network functions (VNFs) following the order determined by the service chain along a routing path. In this paper, we study the joint problem of the VNF placement and path selection to better utilize the network. We discover that the relation between the link and server usage plays a crucial role in the problem. Inspired by stress testing, we first propose a systematic way to elastically tune the link and server usage of each demand based on the network status and properties of demands. In particular, we compute a proper routing path length, and decide, for each VNF in the service chain, whether to use additional server resources or to reuse resources provided by existing servers. We then propose a chain deployment algorithm that follows the guidance of this link and server usage. Via simulations, we show that our design effectively adapts resource allocation to network dynamics and, hence, serves more demands than other heuristics.
IEEE-ACM TRANSACTIONS ON NETWORKING, 26(4), 1562-1576