# Cloud-Enabled Deployment of 5G Core Network with Analytics Features
## 3 Background  
### Virtualization of a 5G Core Network  
As the evolution of mobile networks progressed, one aspect remained unchanged: the reliance on 'black-box' solutions regarding mobile network components. Vendors provided integrated hardware with dedicated software that could interact properly only with other proprietary equipment. To overcome these limitations, 5G networks utilize the virtualization of their core components and commercial off-the-shelf (COTS) hardware. Virtualization allows for greater flexibility, as Network Functions (NFs) can be dynamically scaled in or out according to the network state [18], while computing tasks can be executed in a cost-effective manner [19; 20]. Furthermore, it reduces the time to market for new services, as the adaptation time of the network architecture is shortened [21]. In principle, virtualization significantly impacts both operational (OPEX) and capital (CAPEX) expenses. The CAPEX associated with deploying 5 GCN is greatly reduced because NFs no longer need to run on dedicated and costly hardware. Additionally, OPEX related to maintaining this aggregation of virtualized resources and adjusting them to provide new services is also minimized. 5G networks have been designed to support deployments that utilize the concept of Network Function Virtualization (NFV) [21; 22]. This virtualization framework describes network node functions as software entities that can run independently of the underlying hardware. There are three main components of the NFV framework:  
* VNF, which is a software implementation of a network component, capable of running on various platforms. * Network Function Virtualization Infrastructure (NFVI) denotes the COTS hardware on which VNFs are deployed. * NFV Management and Orchestration (NFV-MANO) framework to administer VNFs and NFVI [23; 24]. There are two primary methods for deploying NFs. The first method involves deploying NFs using containerized network services [23]. A container is a lightweight, standalone unit of software that encapsulates the runtime environment along with all required dependencies. Implementing core network components as containerized functions in clustered worker nodes facilitates straightforward vertical scaling, increased reliability, and rapid fault recovery [25]. The second method of virtualizing network functions is through the use of virtual machines (VMs). In this deployment model, an NF runs as a process on the guest operating system within a VM. A VM-based NF requires a commodity hardware server and an operating system with its dependencies. Similar to other NFs in a 5 GCN, it may contain redundant operating system features that are unnecessary for its operation [26]. Generally, VM-based VNFs require more disk space because they include an operating system needed to host the NF process. The size of the NF implemented as a VM-based VNF affects both the deployment and migration time. Additionally, hardware virtualization consumes a significant portion of physical resources, such as the CPU. To ensure proper isolation of network functions hosted in virtual machines, VNF VMs are restricted from accessing the resources of the deployment platform. Instead, a hypervisor [23; 27], also known as a virtual machine monitor (VMM), is responsible for scheduling CPU, memory access, and networking for guest virtual machines [28]. Despitethe drawbacks of the virtual machine approach, VNFs have been successfully deployed on VMs in many commercial implementations. As the adoption of network function virtualization concepts in mobile networks has increased, containerized network functions are increasingly replacing VM-based VNFs [29]. The complexity of 5G mobile networks must be distributed across multiple NFs so that each NF serves a specific purpose. For example, one NF may handle authorization for network access, while another NF facilitates the actual access itself. Consequently, the 5 GCN comprises numerous NFs [21], each responsible for a distinct subset of functionalities.