, and operational/business support systems (OSS/BSS). We elaborate them more as follows. 1.2.2 Network Virtualization Network virtualization gives each customer tenant its own network topology and control over the flow of its traffic. For sharing computing resources, people have been widely used the virtual machine as the standard abstraction. For network virtualization, however, the right abstraction is still a subject of ongoing debate. There are a diverse set of solutions, which differ in the level of concrete details they expose to the individual tenants. In the widely used Amazon EC2, the network is abstracted in the simplest form. All of a tenant's virtual machines are connected with each other using best effort network fabric. VMware [12] offers a simple "one big switch" abstraction, where different rules such as access control or traffic engineering can be programmed by the tenants. The rules are implemented at the network edge (in the virtual switches inside the host operating systems). As more applications move to the cloud, providers must go beyond simple sharing of network bandwidth to support a wider range of abstractions. Recently, SDN has become a natural platform for network virtualization, thanks to the standard interface between controller applications and switch forwarding tables. However, sup- porting a large number of tenants with different topologies and controller applications raises scalability challenges. 1.2.3 Network Functions Virtualization Network Functions Virtualization is a recent trend prompted by technology availability that makes high-performance packet pro- cessing now possible on commodity systems reasonably well, and service providers' desire for virtualization of network functions such as routers, firewalls, network address translation (NAT), and SO on 1 Introduction to avoid vendor lock-in and ability to choose virtualized network functions from different vendors as per the requirements. NFV not only allows service providers the ability to compose network functions but also