SDN makes the network programmable by separating the control plane (routing process) from the underlying data plane (forwarding hardware).
NFV virtualizes functions like load balancing, routing (similar to SDN, relying on no virtualization), and policy management by transferring network functions from dedicated appliances to virtual servers. NFV components are: Virtual Network Functions (VNFs), NFV Infrastructure (NFVI) that is commodity servers, and Management & Orchestration (MANO).https://www.geeksforgeeks.org/difference-between-sdn-and-nfv/
https://info.support.huawei.com/info-finder/encyclopedia/en/NFV.html
Virtual appliance is a pre-configured virtual machine that contains an operating system and a specific application (e.g., firewall, load balancer).