Network virtualization has emerged as a paradigm for cloud computing services by providing key functionalities such as abstraction of network resources kept hidden to the cloud service user, isolation of different cloud computing applications, flexibility in terms of resources granularity, and on-demand setup/teardown of service. In parallel, flex-grid (also known as elastic) optical networks have become an alternative to deal with the constant traffic growth. These advances have triggered research on network virtualization over flex-grid optical networks. Effort has been focused on the design of flexible and virtualized devices, on the definition of network architectures and on virtual network allocation algorithms. In this chapter, a survey on the virtual network allocation algorithms over flexible-grid networks is presented. Proposals are classified according to a taxonomy made of three main categories: performance metrics, operation conditions and the type of service offered to users. Based on such classification, this work also identifies open research areas as multi-objective optimization approaches, distributed architectures, meta-heuristics, reconfiguration and protection mechanisms for virtual networks over elastic optical networks.under the conditions stated in a service level agreement (SLA), having dynamic scaling of resources and transparent access to network services, unaware of the location and hardware/ software characteristics of the required resources [2]. Apart from high bandwidth, cloud computing applications require the following functionalities from the underlying physical network [1]:• Abstraction: The technology/implementation specific details of the physical network resources are hidden to the users, due to the "computing as a utility" philosophy.• Isolation: Different cloud computing applications should not interfere with each other in the access to common physical resources.• Flexible resource granularity: The amount of resources (storage, processing power and bandwidth) required by different cloud computing applications might vary significantly.• On-demand setup/tear down: For efficiency, network resources should be set-up/torn down with a highly dynamic, rapidly reconfigurable and programmable network environment, something not possible with the current status of Internet [3].• Resiliency: Grid/cloud computing applications should continue running in spite of failures affecting the optical network.Network virtualization, which extends the well-known concepts of server and storage virtualization to networks, is envisaged as a key enabling technology for cloud computing services.As such, the benefits of running cloud applications on top of virtual networks (as opposed to on top of virtual servers alone, as usually done [4,5]), was evidenced by several preliminary studies on network virtualization for cloud computing. In Ref.[6], resource allocation of cloud-based data centres services was proposed by abstracting the service requests as virtual network requests. In Ref.[7], a network virt...