Using cloud native approach in developing Virtual Network Functions (VNFs) (for NFV) demands better performance in networking within containers and need for orchestration platform for management of lifecycle & communication within containers.
Currently, NFV can be easily deployed within data center level by pushing VNFs into virtual machines in NFV infrastructure. But with emergence of cloud native approach, VNFs should deployed within containers. And more importantly, to fully realize NFV success for 5G telecom network, automation along with performance will be the key factors that will only enable with cloud native approach.
Industry was lagging a platform where these cloud native VNFs can be developed, easily integrate container orchestration platform like Kubernetes and boost interconnect performance within cloud native VNFs deployed using containers on same host.
Here comes an open source Go language based project, Ligato. It can be deployed using Kubernetes. Purpose of this project/platform is to build cloud native VNFs and provide high performance interconnection for cloud native VNFs. Ligato is deployed using Kubernetes. It utilizes Kubernetes for automated deployment and lifecycle management of containers. With Kubernetes, Ligato enables CI/CD process which further add more value to its use for development of VNFs. This further enable code reusability, cost reduction and agile performance of cloud native VNfs. Ligato provided platforms and code samples for developing cloud native VNFs. Ligato consists of plugins which are focused towards specific functionality needed by VNFs. Ligato is integrated with FD.io (Fast Data Input/Output) project for efficient and high performance packet processing in data plane.
Let’s understand the three key plugins used within Ligato
CN-Infra (cloud-native infrastructure) in Ligato is Go language based platform for development of cloud native microservices. It is originally focused towards developing or implementing management/control plance agent for cloud native VNFs. CN-infra contains set of plugins to collectively provide functionality offered by platform. Functionality like loggin, health checks, messaging, front end APIs, etc.
VPP (Vector Packet Processing) is open source packet processing stack introduced by Cisco. It is high performance packet-processing stack that can run on commodity CPUs. VPP agent is built using Go language for implementing control/management plane for VPP based cloud-native VNFs. VPP allows interaction with other containers (Microservices) in the cloud by enabling VPP functionality via higher-level model-driven APIs. APIs are utilized by either external apps or local apps running on same host.
Below figure shows VPP agent in context of cloud native VNF. You can see data plane is implemented using VPP/DPDK and management / control planes are implemented using the VPP agent.
It is used for chaining VNFs, which are based on VPP agent. SFC Controller supports a wide variety of topologies. The controller can effect connectivity for containers on-host, inter-host and host to external router. Ref
You can find description of each of the components in SFC controller here.
SFC Controller support below topologis
NFV will be the key technology for successful 5G enablement for telecom service providers. Emergence of open source cloud native VNF development platform Ligato will be a boon for NFV infrastructure which is leaning towards cloud native approach. Additionally, Ligato explicitly introduces Kubernetes to manage containers which solves automation requirement and enable easy dynamic orchestration. VPP agent, further improves packet processing within containers and overall performance of cloud native VNFs within NFV infrastructure.