This document provides an overview of Network Functions Virtualization (NFV), including its technical requirements and challenges. NFV aims to improve network flexibility and reduce costs by using virtualization to separate network functions from dedicated hardware and deploy them as software on commercial off-the-shelf servers. While NFV may lower costs and speeds up service provisioning, challenges include ensuring virtual network functions meet performance requirements, efficiently managing their dynamic instantiation and migration, and addressing security and reliability issues.