# The Next Generation Platform as A Service: Composition and Deployment of Platforms and Services
## 2 Related Work  
As mentioned in the introduction, most telco-grade platform environments have originated from existing IT-based cloud technologies (e.g., OpenStack, Kubernetes), but have been extended with new features to be suitable for telco environments, such as edge, access, and core networks. The scope of this section is to contextualise telco-grade platform solutions with recent PaaS and NFV related work. The most prominent standardisation effort in the NFV platform area is the ETSI NFV Management and Orchestration (MANO) specification [7], which details an NFV-based platform architecture. There, a fixed set of PaaS related features is coupled tightly to the underlying infrastructure managers. However, unlike NGPaaS, ETSI NFV MANO lacks the option to customise which specific PaaS components are included in a deployment, consequently, the supported virtualisation technologies and infrastructure types cannot be modified easily or swapped. Instead, the MANO functionality focuses on the lifecycle management of specific services, controlled by pre-integrated infrastructure managers and PaaS functions. Different flavours of MANO platforms are available (e.g., OSM [8] or 5 GTANGO [9]), and each one may have proprietary interfaces and service descriptor formats, which can act as a barrier to the integration of other PaaS solutions. The authors in reference [10] and reference [11] show that the characteristics might differ significantly when comparing existing MANO solutions. It may be necessary, depending on the targeted use-case, to augment an existing MANO platform and integrate new functionalities ([10,12]). In addition to MANO platforms, there are many advances are being made in the NFV technology space. One such example is that in addition to common x86 server hardware, the use of FPGAs in data centre infrastructure is being presented as virtualised resources, as demonstrated in reference [13]. In reference [14], a management framework is presented for using FPGA resources in data centres, also enabling FPGAs to run Virtual Network Functions (VNFs). The authors of reference [15] have implemented a framework to design network functions running on split CPU and FPGA architectures--this provides a method to offload computationally-intensive processing of the network functions to the FPGA. The development of improved algorithms to assist in the deployment and operation of virtualised network functions is a highly active research area. A method for customised VNF placement is proposed in 5G networks [16], showing that due to the diverse performance requirements among different 5G scenarios, an adaptive VNF placement approach is needed to accommodate service-specific requirements automatically. In addition to placement, scaling algorithms can also enhance the operation of VNFs. In reference [17], a formal method is described to predict VNF traffic and optimally scale the VNF resources accordingly in an elastic way. Similarly, in reference [18], a novel analytical model based on Stochastic Network Calculus is presented to investigate the end-to-end performance bound of chained VNFs quantitatively. By modelling (non-)bursty network traffic, the proposed analytical model provides an efficient method for service providers to determine which service chaining and placement configuration are more beneficial to meet the SLA requirements in terms of violation error and latency performance. Another operational enhancement is an optimised load balancing system for VNFs, presented in reference [19] and the placement of multiple VNFs in geo-distributed infrastructures is investigated in reference [20]. The latter is particularly applicable in a telecom scenario, where an optimal choice must be made in which central offices the VNFs should run. In additional to VNF placement and scaling, automated healing actions also need to be implemented to quickly analyse and solve any issues with the running network service before performance is degraded.