Network services are a combination of application and network functions. They offer an end-to-end process while supporting and securing complex data flows. The SDN revolution is shaking up the network infrastructure, but the complexity of the network services is growing up alongside.
First, the trend of micro-services shapes those functions to their bare core features; this allows more flexibility, but complicates their inner workings and increases the number of manipulated components. Second, a network service is a composition of specialized and differentiated security network functions. Reusing the same configuration across several services may not be adapted, as the SDN transformation focuses on adapting the network and its attached security to the task at hand. Moreover, third-party’s VNFCs (Virtual Network Functions Components) might have an unbalanced level of configuration and customization. Third, NFV services will inherit the on-demand and scaling characteristics from the Cloud, which will increase the complexity of their orchestration and maintenance. Finally, the infrastructure itself may be heterogeneous. It can also be split (as SONATA supports it) across many PoPs.
All these characteristics open new challenges and highlight the necessity of autonomous service adaptation. This adaptation must happen not only at the application level (as in the IaaS context), but it also must take place at the network and network function levels. In the 5G vision, the service must continuously and automatically recompose itself, as it needs to match the current or incoming context. SONATA supports those features with the introduction of FSMs (Function Specific Manager) and SSMs (Service Specific Manager) components.
A Management and Orchestration (MANO) framework is the core of the SONATA Service Platform. Service developers can create and ship plugins in a SONATA service package, beside the application and network components (VNFCs). The SONATA Service Platform deploys and isolates these plugins inside the MANO framework. From there, they are integrated in the inner working of the SONATA Service Platform. Therefore, service developers can participate in the management of the corresponding service and customize its lifecycle.
SONATA supports two kinds of plugins, the SSM and the FSM, which operate at the service and function level respectively. The service developer can implement them using a full-fledged programming language. SONATA provides Python skeletons to quickly bootstrap a SSM or a FSM plugin. A plugin can manage, scale, choose the placement of VNFs, or orchestrate and adapt services. For example, it can request a new topology for a service. These features and this level of power and customization will propel the service developer into the 5G vision.
With a SSM, a service developer can create a process to improve the SLAs of a service. They can do so by moving VNFs between the available PoPs or they could also cut the global cost of a running service by adapting the topology to the resource cost. For example, imagine that a service containing three VNFs is deployed on three separate PoPs and that the service is packaged with a custom placement SSM:
A configuration SSM/FSM can adapt a service or function to create a fast path for data. It can identify some service clients that are trustworthy. After this identification, the configuration SSM can move their data to a fast path to lower the service latency.
A set of authentication, protection and classification components could create a VNF. This security oriented VNF would protect end users from external threats:
In this setup, the FSM switches the data corresponding to its trust in the user. But the same principle could be applied to dynamically prioritize critical users.
SONATA allows this flexibility by packaging configuration, placement and orchestration behaviors within the service package. The plugins have a tight integration to a MANO framework. The service developer can fully customize them to the service. They can automatically adapt the application, the network components and links at run-time. The plugin can also be changed at runtime. Those features will help developers and system integrators to enter the SDN era.