Network Functions Virtualization (NFV) has emerged as a new paradigm for designing, deploying and operating network services. It is a natural evolution of the current trend of applying cloud technologies to Information Technology (IT) services, bringing them to network provider environments. While this is true for the most simple use cases, focused on the IT services network providers rely on, the nature of network services and the physical anchors of network themselves impose additional, unique requirements on the virtualization process in this environment. At the same time, NFV provides an opportunity to network providers, reducing operational costs and bringing the promise of dramatically easing the development of new services, reducing their time-to-market, and opening new possibilities for service provisioning. This chapter analyses these requirements and opportunities and the challenges NFV brings to network providers, and reviews the current state of the art in this new way of dealing with network services.