  Network Function Virtualization (NFV) is a promising technology that promises
to significantly reduce the operational costs of network services by deploying
virtualized network functions (VNFs) to commodity servers in place of dedicated
hardware middleboxes. The VNFs are typically running on virtual machine
instances in a cloud infrastructure, where the virtualization technology
enables dynamic provisioning of VNF instances, to process the fluctuating
traffic that needs to go through the network functions in a network service. In
this paper, we target dynamic provisioning of enterprise network services -
expressed as one or multiple service chains - in cloud datacenters, and design
efficient online algorithms without requiring any information on future traffic
rates. The key is to decide the number of instances of each VNF type to
provision at each time, taking into consideration the server resource
capacities and traffic rates between adjacent VNFs in a service chain. In the
case of a single service chain, we discover an elegant structure of the problem
and design an efficient randomized algorithm achieving a e/(e-1) competitive
ratio. For multiple concurrent service chains, an online heuristic algorithm is
proposed, which is O(1)-competitive. We demonstrate the effectiveness of our
algorithms using solid theoretical analysis and trace-driven simulations.
