In November 2013 the Unify EU project commenced with a vision of implementing full network and service virtualization to enable rich and flexible service creation, deployment and operation. The main objective of Unify was to utilize the potential in virtualization and automation across the whole networking and cloud infrastructure. Telecom providers struggle with flexibility, their provided services have ever increasing complexity and cost. A possible solution can be applying Software Defined Networking (SDN) and Network Function Virtualization (NFV) technologies. By properly utilizing virtualization capabilities, automated, dynamic service creation and rich management features can be realized.
I created a reference implementation for two integral modules in the Unify architecture. These implementations are in the focus of this thesis. A Unify Resource Orchestrator is responsible for producing an optimized resource allocation and deployment for Network Functions using the tools of virtualization. The Resource Orchestrator works on an abstract, virtualized view of a lower layer, such as the infrastructure, and receives a requests from its users containing one or more Network Functions. The implemented Resource Orchestrator is able to map the Network Functions to the lower layer with several algorithms, depending on the optimization target. Related to the orchestration, I also examined the BinPacking decision problem in depth, since the resource allocation problem can be defined as a special case of BinPacking.
Another integral part of the Unify architecture is the Controller Adapter. In my thesis I present a reference implementation for an x86 Controller Adapter, which can be used in a Universal Node. A Universal Node is a compute and networking node capable of running a wide range of Network Functions with high performance. The x86 Controller Adapter is specialized for Universal Nodes equipped with standard Intel x86 hardware. The implemented module is responsible for receiving Network Function allocations from an upper Resource Orchestrator, and deploy these Network Functions in the infrastructure layer. The Controller Adapter is integrated with the previously described Resource Orchestrator, and it is able to deploy a wide range of Network Functions such as Docker containers, Qemu Virtual Machines or software-switch based Network Functions.