I. Introduction
Nowadays, datacenters (DCs) have become a key component in supporting cloud computing, large-scale online services, and geographically distributed applications. To provide high-quality and non-disruptive network services to end-users, large enterprises such as Google, Facebook, and Amazon have created multiple DCs in different geographic regions and built inter-DC networks to interconnect them. A network service can be symbolized as a service function chain (SFC) or a virtual network functions forwarding graph (VNF-FG). An SFC is composed of an ordered set of VNFs and virtual links (VLs), realized by DC network resources (e.g., bandwidth (BW), central processing unit (CPU) cycles, and memory space) using network function virtualization (NFV). A successful embedding of an SFC requires that both the resource constraints of the infrastructure and the service level agreement (SLA) [1] of the network service be satisfied. To accommodate as many network services as possible with limited resources, efficient and automatic placement of SFCs becomes increasingly important.