Network functions Virtualization is the notion of replacing dedicated network appliances such as routers and firewalls with software running on general purpose CPUs or virtual machine on shared servers.
NFV dissociate hardware form software, NFV comes under SDN. NFV work as an emulator for SDN. NFV and SDN are independent.
Traditionally you have specialised appliance like firewall, router, load balancer which have their own hardware. With NFV, it moves network functions from appliances to applications that run Common-off-the-self equipment(COTS) for example servers, switches, storage. In cloud computing or any virtual environment provides more network function flexibility.

With software based functions these functions are performed in virtualize network function it had a lot of advantages like flexibility as software and hardware are kept different, its is easy to scale according to your needs right from control plane, also its is cost-effective as the operating network is cheap. NFV have few requirements, some are quite big!
What is NFV Infrastructure
NFVI consist of different layers or sub-components such as hardware resources like computing resources storage resources and network resources.
Second layer is Virtualization layer which separates hardware and replaces it with software third layer is virtualized resources such as virtual compute, network and storage.
NFV is a software implementation is a network function which is capable of running over the NFV infrastructure (NFVI) example firewall, routers.
Sofware-defined networking (SDN)
SDN is defined as separation of networking architecture physically. And centralises the network authority. SDN is an architecture which separates control plane from data plane and centralise the network. SDN control maintain a network and make configuration.
It uses simple packet forwarding hardware, unlike conventional networks.

SDN also communicate between the application control and data planes, all this is done through APIs. These APIs are programmable and are used to make interface between SDN application and control layers. Northbound API is used to communicate with applications in SDN.
With separated control plans, data planes and centralised network controller, the network administration easily configure the network.
SDN application can be deployed through APIs which is fast and efficient as the network administrator no longer need to be dependent on device vendors to embed new features.
VNF Designing with MANO
Management and orchestration supports the management and orchestration of all the network resources including operating VNFs designing, Controlling Network function Virtualization infrastructure(NFVI).
MANO is consist of three elements, NFV orchestrate which manages resources and also manages the software and infrastructure resources. Second is Virtual Network Function Manager (VNFM) which deals with instance termination, scaling and out, and even reporting between NFVI and network management system. At last there is virtual infrastructure manager(VIM) which is similar to VNF as it compute storage and networking resources and NFVI.