The IEEE Software Defined Networks' eLearning Module "An Introduction to Network Function Virtualization (NFV)" covers the context and meaning of NFV and SDN, focusing on the management and orchestration of virtual network functions and their composition in complex network services. Moving from hardware-based appliances towards software-based artifacts requires a complete redesign of legacy network components. Virtualizing a Network Function using virtualization technologies can be easily achieved. This session provides an overview of the ETSI NFV architecture, focusing on the network services management and orchestration aspects, as well as virtualized resource management. Network Slicing in 5G, and Edge Computing, need to be analyzed for addressing requirements at the infrastructure level. An overview about Cloud-Native applications principles and microservices approaches will be given. Those principles are the basis for building highly reliable network services in each of those use cases. This first module will conclude with the benefits and challenges for Network Operators who are currently moving towards this paradigm.