ypervisor Bin/Libs Bin/Libs Bin/Libs Host operating system (OS) Host os Hardware Hardware Figure 1.2 NFV software/hardware architecture models. different applications from the cloud. One way to think of containers versus VMs is that VMs run several different operating systems on one compute node, whereas container tech- nology offers the opportunity to virtualize the operating system itself. A VM is a software- based environment geared to simulate a hardware-based environment, for the benefit of the applications it will host. Conventional applications are designed to be managed by an oper- ating system and executed by a set of processor cores. Such applications can run within a VM without any rearchitecture. On the contrary, container technology has been around for more than a decade and is an approach to software development in which pieces of code are packaged in a standardized way SO that they can quickly be plugged in and run on the Linux operating system. This enables portability of code and allows the operating system to be virtualized and share an instance of an operating system in a same way that a VM would divide a server. Therefore instead of virtualizing the hardware like a VM, a container virtua- lizes at the operating system level. Containers run at a layer on top of the host operating system and they share the kernel. Containers have much lower overhead relative to the VMs and much smaller footprint. NFV decouples software implementations of NFs from the compute, storage, and networking resources they use. It thereby expands options for both enterprises and service providers, enabling both to create new capabilities and new services for their customers. With new opportunities come new challenges. By tradition, NF implementations are packaged with the infrastructure they utilize; however, this may not be the case anymore. As the physical net- work is decoupled from the infrastructure and network services, it is necessary to create both new management tools and orchestration solutions for providers to