Network Functions Virtualization (NFV) is a networking concept that employs virtual machines to replace actual network hardware. The virtual machines run networking software that enables them to perform network-related processes such as load balancing and routing. By using NFV, network services can be separated from the hardware routers and firewalls, allowing for dynamic provisioning of new services. The NFV infrastructure management can be further improved by integrating the Software-Defined Networking (SDN) approach.