The recent advances in cloud computing are leveraging the design of flexible and programmable virtual network infrastructures as a key enabler of future 5G networks. The SONATA SDK simplifies the workflow of service programmability by providing a set of tools to assist the user in designing and composing network services. Currently, the following SDK features can be highlighted:
- Management of the development workspace handling multiple network service projects as well as user access credentials and configuration for multiple SONATA Service Platforms;
- Communication with Service Platform, enabling user authentication, onboard network services and retrieve existing network services and functions;
- Creation of a network service package, specifying the composition of the entire network service, including functions, virtual machine images, network topology, forwarding chains, required resources, monitoring KPIs, and scaling procedures;
- Monitoring of network services resource usage in order to debug and characterize resource requirements during production;
- Profiling of network service resource demands to aid in capacity planning;
- Validation of network service descriptors to assert an appropriate service composition by analyzing syntax, integrity, network topology, required resources and forwarding chains.
The current blog post is focused on SONATA service validation tool providing a quick grasp on its architecture, features and usage.
The SONATA service validation tool is composed by three main modules, meant to tackle different aspects of a network service description. First, the syntax validation ensures that all descriptors within the network service are in conformity with the designed schemata. Second, the integrity validation will digest the fields in the descriptors and perform an analysis of key mismatch, inconsistent values and missing dependencies. Finally, the third module is dedicated to the network topology and forwarding chain examinations. Here, the network topology graph is analyzed to discover invalid virtual links. The forwarding chain graphs are also verified against incorrect paths and loop cycles.
An important design of SONATA service validation tool is the ability to program/customize validation issues according to the level of importance. Validation issues can be reported as errors, warnings or not to be reported at all. This offers versatility to suite different network service designs and multiple levels of tolerance in validation. As a mere example, suppose that the virtual machine image associated with a function does not yet exist at the time the network service is being developed. In this case, this validation issue can be programmed as a warning or silent, instead of an error. As another example, imagine that a function can make routing decisions which will influence the traffic forwarding path. In such case, the analysis of the forwarding chain graphs may report imprecise validation issues associated with loop cycles.
Network service validation is a powerful feature within the SDK, enabling a pre-evaluation of service mismatches and inconsistencies at an early stage (still during its development). This significantly reduces the interactions between the SDK and the Service Platform, which can increase development efficiency. Nonetheless, this type of comprehensive analysis of network services should also be performed at the NFV Orchestrator (NFVO), avoiding unfruitful resource allocations when services will certainly fail due to poor design. In fact, SONATA’s service validation tool is also deployed as a service inside the Service Platform in order to validate network services during the onboarding procedure. Moreover, the deployment of validation as a service inside the Service Platform leverages the programmability of the validation tool, providing custom validation issues suited to the requirements of the Service Platform.
The SONATA validation tool is packaged with a web Graphical User Interface (GUI) to enhance the visualization of the validation issues, the network topology and the forwarding chains. The validation GUI offers a new way of triggering service validations as well as viewing previous validations, in an easy-to-read and intuitive interface. By using this GUI, service developers have access to an appealing interface showcasing the network topology of the developed network service. This interface allows to see three levels of this topology more precisely at Network Service Level, Virtual Network Function Level and Virtual Machine Level all this at the same time. This GUI also allows displaying the Forwarding Graphs specified in the developed NS allowing the developer to quickly see how will the traffic flow between all the entities that compose a service. Furthermore, errors and warning detected by the validation tool are also visible in this GUI allowing service developers to pinpoint exactly where are these errors situated (which VM, VNF, NS, virtual link). Since the amount of information potentially displayed in the GUI can certainly overwhelm a developer, the GUI allows its users to filter the information allowing the user to either focus on the analysis of a specific validation issue or correlate and analyze two or more different subjects at the same time.
If you wish to know more about SONATA’s validation tool or even desire to try and run this tool be sure to check SONATA’s SDK tool github repository.